diff options
564 files changed, 15501 insertions, 6805 deletions
diff --git a/.gitignore b/.gitignore index 03e3393220..2ad104214e 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ lib*.a /config.log /scummvm /scummvm-static +/ScummVMDockTilePlugin* /config.h /config.mk /.gdb_history @@ -19,6 +20,7 @@ lib*.a /MT32_CONTROL.ROM /MT32_PCM.ROM /ScummVM.app +/scummvm.docktileplugin /scummvm-ps3.pkg /*.ipk /.project @@ -164,6 +166,7 @@ ipch/ *.vcxproj* *.bat *.tss +*.VC.db #Ignore default Visual Studio build folders [Dd]ebug/ @@ -302,6 +302,9 @@ ScummVM Team Frantisek Dufka - (retired) Tarek Soliman + Nintendo 3DS: + Thomas Edvalson + Nintendo 64: Fabio Battaglia @@ -444,6 +447,7 @@ Other contributions Mac OS X: Max Horn - (retired) Oystein Eftevaag + Thierry Crozat Mandriva: Dominik Scherer - (retired) @@ -14,6 +14,7 @@ For a more comprehensive changelog of the latest experimental code, see: General: - Removed TESTING flag from several supported games. - Added Chinese Pinyin translation. + - Fixed cursor stuttering in the launcher that occured on some systems. BBVS: - Fixed game restart. @@ -21,9 +22,29 @@ For a more comprehensive changelog of the latest experimental code, see: CinE: - Fixed sound effect loading. + Drascula: + - Fixed text alignment to be faithful to the original. + - Fixed character walking off screen. + - Fixed loading savegames in the Pendulum scene. + - Fixed wrong background for inventory items during chapter 6 in the + Spanish version. + - Fixed animations speed (they were running two times slower than in the + original engine). + - Fixed noise at start and/or end of speech. This was most noticeable + with the Spanish speech. + - Fixed delay when interacting with the verb menu and the inventory. + - Fixed possibility to pick up the axe in the castle multiple times. + Gob: - Fixed lock up for some games during sound initialization. + KYRA: + - Fixed potential crash when using swamp snake potion on the rat in Hand + of Fate. (NOTE: This fix was included in version 1.8.0, but it was not + added to the NEWS file). + - Fixed missing voice reactions when hitting enemies in CD version of + Lands of Lore. + Lab: - Fixed lock-up during ending sequence. - Improved internal game controls. @@ -32,6 +53,15 @@ For a more comprehensive changelog of the latest experimental code, see: - Fixed user interface colors in the French and German versions of I Have No Mouth and I Must Scream. + SCI: + - Make cursor workarounds work properly on OpenPandora (and other devices, that + support touch screen and analog sticks/mouse at the same time) + - Script patch to fix broken ending battle in multilingual King's Quest 5 + (French, German + Spanish versions are all broken) + - Fixed invalid memory access, when loading broken King's Quest 5 credit music track + - Fixed lowres/hires issues in King's Quest 6 when saving, changing the lowres/hires + setting and restoring the saved game afterwards. + SCUMM: - Fixed detection of Maniac Mansion from Day of the Tentacle in the Windows version of ScummVM. @@ -43,11 +73,20 @@ For a more comprehensive changelog of the latest experimental code, see: - Fixed resource releasing on game exit. - Fixed game restart after language change in-game. - Fixed flickering in main Menu. + - Fixed long save time on Windows. Windows port: - Fixed bug in MIDI device listing affecting cases where MIDI devices were not usable. + Mac OS X port: + - Dock menu for ScummVM now lists recently played games when ScummVM is + not running and allows starting those games. + - Enabled Sparkle application updater. + + GCW0 port: + - Improved support for built-in ScummVM documentation. + 1.8.0 (2016-03-04) New Games: - Added support for Rex Nebular and the Cosmic Gender Bender. @@ -835,7 +835,7 @@ then consult: <http://wiki.scummvm.org/index.php/HOWTO-Mac_Games> Although it primarily talks about SCUMM games, it mentions the -"HFVExplorer" utility which you need to extract the files. Note that you +"HFSExplorer" utility which you need to extract the files. Note that you have to put the speech data "Inherit the Earth Voices" in the same directory as the game data which is stored in: @@ -1205,7 +1205,7 @@ a Macintosh for this, accessing the CD/floppy data might be tricky. The reason for this is that the mac uses a special disk format called HFS which other systems usually do not support. However, there are various free tools which allow reading such HFS volumes. For example -"HFVExplorer" for Windows and "hfsutils" for Linux and other Unix-like +"HFSExplorer" for Windows and "hfsutils" for Linux and other Unix-like operating systems. Most of the newer games on the Macintosh shipped with only a single data @@ -1742,8 +1742,8 @@ The platforms that currently have a different default directory are: $HOME/Documents/ScummVM Savegames/ Other unices: - We follow the XDG Base Directory Specification. This means our - configuration can be found in: + We follow the XDG Base Directory Specification. This means by default + saved games can be found in: $XDG_DATA_HOME/scummvm/saves/ If XDG_DATA_HOME is not defined or empty, ~/.local/share will be used diff --git a/audio/adlib.cpp b/audio/adlib.cpp index f609164495..3e3f5c047c 100644 --- a/audio/adlib.cpp +++ b/audio/adlib.cpp @@ -20,7 +20,6 @@ * */ -#include "audio/softsynth/emumidi.h" #include "common/debug.h" #include "common/error.h" #include "common/scummsys.h" diff --git a/audio/decoders/3do.cpp b/audio/decoders/3do.cpp index 6d558d4c8c..60cc515fdd 100644 --- a/audio/decoders/3do.cpp +++ b/audio/decoders/3do.cpp @@ -25,7 +25,6 @@ #include "common/util.h" #include "audio/decoders/3do.h" -#include "audio/decoders/raw.h" #include "audio/decoders/adpcm_intern.h" namespace Audio { diff --git a/audio/decoders/3do.h b/audio/decoders/3do.h index 7524358543..7f617c6643 100644 --- a/audio/decoders/3do.h +++ b/audio/decoders/3do.h @@ -31,19 +31,12 @@ #include "common/scummsys.h" #include "common/types.h" -#include "common/substream.h" +#include "common/stream.h" #include "audio/audiostream.h" -#include "audio/decoders/raw.h" - -namespace Common { -class SeekableReadStream; -} namespace Audio { -class SeekableAudioStream; - // amount of bytes to be used within the decoder classes as buffers #define AUDIO_3DO_CACHE_SIZE 1024 diff --git a/audio/decoders/aiff.cpp b/audio/decoders/aiff.cpp index e1949ebb07..253b36dec0 100644 --- a/audio/decoders/aiff.cpp +++ b/audio/decoders/aiff.cpp @@ -129,6 +129,8 @@ RewindableAudioStream *makeAIFFStream(Common::SeekableReadStream *stream, Dispos foundSSND = true; /* uint32 offset = */ stream->readUint32BE(); /* uint32 blockAlign = */ stream->readUint32BE(); + if (dataStream) + delete dataStream; dataStream = new Common::SeekableSubReadStream(stream, stream->pos(), stream->pos() + length - 8, disposeAfterUse); break; case MKTAG('F', 'V', 'E', 'R'): @@ -154,7 +156,7 @@ RewindableAudioStream *makeAIFFStream(Common::SeekableReadStream *stream, Dispos return 0; default: debug(1, "Skipping AIFF '%s' chunk", tag2str(tag)); - break; + break; } stream->seek(pos + length + (length & 1)); // ensure we're also word-aligned @@ -203,7 +205,7 @@ RewindableAudioStream *makeAIFFStream(Common::SeekableReadStream *stream, Dispos if (codec == MKTAG('s', 'o', 'w', 't')) rawFlags |= Audio::FLAG_LITTLE_ENDIAN; - return makeRawStream(dataStream, rate, rawFlags); + return makeRawStream(dataStream, rate, rawFlags); } case MKTAG('i', 'm', 'a', '4'): // TODO: Use QT IMA ADPCM @@ -212,7 +214,7 @@ RewindableAudioStream *makeAIFFStream(Common::SeekableReadStream *stream, Dispos case MKTAG('Q', 'D', 'M', '2'): // TODO: Need to figure out how to integrate this // (But hopefully never needed) - warning("Unhandled AIFF-C QDM2 compression"); + warning("Unhandled AIFF-C QDM2 compression"); break; case MKTAG('A', 'D', 'P', '4'): // ADP4 on 3DO diff --git a/audio/decoders/vorbis.h b/audio/decoders/vorbis.h index 2b9f6c3df9..49f770269b 100644 --- a/audio/decoders/vorbis.h +++ b/audio/decoders/vorbis.h @@ -35,6 +35,7 @@ * - sword25 * - touche * - tucker + * - wintermute */ #ifndef AUDIO_VORBIS_H diff --git a/audio/miles_adlib.cpp b/audio/miles_adlib.cpp index bf5c9d4a73..0693d1e7ac 100644 --- a/audio/miles_adlib.cpp +++ b/audio/miles_adlib.cpp @@ -27,7 +27,6 @@ #include "common/textconsole.h" #include "audio/fmopl.h" -#include "audio/softsynth/emumidi.h" namespace Audio { diff --git a/audio/mods/protracker.cpp b/audio/mods/protracker.cpp index 2578e9488a..ce52b61e04 100644 --- a/audio/mods/protracker.cpp +++ b/audio/mods/protracker.cpp @@ -24,8 +24,6 @@ #include "audio/mods/paula.h" #include "audio/mods/module.h" -#include "audio/audiostream.h" - #include "common/textconsole.h" namespace Modules { diff --git a/audio/softsynth/fmtowns_pc98/towns_audio.h b/audio/softsynth/fmtowns_pc98/towns_audio.h index 93eeafb046..0003f02777 100644 --- a/audio/softsynth/fmtowns_pc98/towns_audio.h +++ b/audio/softsynth/fmtowns_pc98/towns_audio.h @@ -23,7 +23,9 @@ #ifndef TOWNS_AUDIO_H #define TOWNS_AUDIO_H -#include "audio/mixer.h" +namespace Audio { +class Mixer; +} class TownsAudioInterfaceInternal; diff --git a/audio/softsynth/fmtowns_pc98/towns_pc98_fmsynth.cpp b/audio/softsynth/fmtowns_pc98/towns_pc98_fmsynth.cpp index 685ee99e6f..d536429f4e 100644 --- a/audio/softsynth/fmtowns_pc98/towns_pc98_fmsynth.cpp +++ b/audio/softsynth/fmtowns_pc98/towns_pc98_fmsynth.cpp @@ -1043,12 +1043,12 @@ void TownsPC98_FmSynth::writeReg(uint8 part, uint8 regAddress, uint8 value) { if (value & 0x10) { _timers[0].smpTillCb = _timers[0].smpPerCb; - _timers[0].smpTillCbRem = _timers[0].smpTillCbRem; + _timers[0].smpTillCbRem = _timers[0].smpPerCbRem; } if (value & 0x20) { _timers[1].smpTillCb = _timers[1].smpPerCb; - _timers[1].smpTillCbRem = _timers[1].smpTillCbRem; + _timers[1].smpTillCbRem = _timers[1].smpPerCbRem; } } else if (l == 2) { // LFO diff --git a/backends/graphics/dinguxsdl/dinguxsdl-graphics.cpp b/backends/graphics/dinguxsdl/dinguxsdl-graphics.cpp index 0b9cc0c7e8..7a248f1859 100644 --- a/backends/graphics/dinguxsdl/dinguxsdl-graphics.cpp +++ b/backends/graphics/dinguxsdl/dinguxsdl-graphics.cpp @@ -35,6 +35,10 @@ static const OSystem::GraphicsMode s_supportedGraphicsModes[] = { {0, 0, 0} }; +#ifndef USE_SCALERS +#define DownscaleAllByHalf 0 +#endif + DINGUXSdlGraphicsManager::DINGUXSdlGraphicsManager(SdlEventSource *boss, SdlWindow *window) : SurfaceSdlGraphicsManager(boss, window) { } @@ -61,9 +65,11 @@ bool DINGUXSdlGraphicsManager::setGraphicsMode(int mode) { case GFX_NORMAL: newScaleFactor = 1; break; +#ifdef USE_SCALERS case GFX_HALF: newScaleFactor = 1; break; +#endif default: warning("unknown gfx mode %d", mode); return false; @@ -89,9 +95,11 @@ void DINGUXSdlGraphicsManager::setGraphicsModeIntern() { case GFX_NORMAL: newScalerProc = Normal1x; break; +#ifdef USE_SCALERS case GFX_HALF: newScalerProc = DownscaleAllByHalf; break; +#endif default: error("Unknown gfx mode %d", _videoMode.mode); diff --git a/backends/graphics/opengl/pipelines/shader.cpp b/backends/graphics/opengl/pipelines/shader.cpp index 8e38458f73..a2dabb7c22 100644 --- a/backends/graphics/opengl/pipelines/shader.cpp +++ b/backends/graphics/opengl/pipelines/shader.cpp @@ -56,6 +56,8 @@ void ShaderPipeline::activateInternal() { } _activeShader->activate(); + + GL_CALL(glVertexAttribPointer(_colorAttribLocation, 4, GL_FLOAT, GL_FALSE, 0, _colorAttributes)); } void ShaderPipeline::deactivateInternal() { @@ -74,8 +76,6 @@ void ShaderPipeline::setColor(GLfloat r, GLfloat g, GLfloat b, GLfloat a) { *dst++ = b; *dst++ = a; } - - GL_CALL(glVertexAttribPointer(_colorAttribLocation, 4, GL_FLOAT, GL_FALSE, 0, _colorAttributes)); } void ShaderPipeline::drawTexture(const GLTexture &texture, const GLfloat *coordinates) { diff --git a/backends/graphics/opengl/shader.cpp b/backends/graphics/opengl/shader.cpp index 27981f25dc..0b4c677d70 100644 --- a/backends/graphics/opengl/shader.cpp +++ b/backends/graphics/opengl/shader.cpp @@ -37,7 +37,7 @@ namespace { #pragma mark - Builtin Shader Sources - -const char *const g_defaultVertexShader = +const char *const g_defaultVertexShader = "attribute vec4 position;\n" "attribute vec2 texCoordIn;\n" "attribute vec4 blendColorIn;\n" @@ -286,6 +286,9 @@ GLshader Shader::compileShader(const char *source, GLenum shaderType) { } ShaderManager::ShaderManager() : _initializeShaders(true) { + for (int i = 0; i < ARRAYSIZE(_builtIn); ++i) { + _builtIn[i] = nullptr; + } } ShaderManager::~ShaderManager() { diff --git a/backends/graphics/opengl/texture.cpp b/backends/graphics/opengl/texture.cpp index 8b94549971..33598b5488 100644 --- a/backends/graphics/opengl/texture.cpp +++ b/backends/graphics/opengl/texture.cpp @@ -509,6 +509,7 @@ TextureCLUT8GPU::TextureCLUT8GPU() // Setup pipeline. _clut8Pipeline->setFramebuffer(_target); _clut8Pipeline->setPaletteTexture(&_paletteTexture); + _clut8Pipeline->setColor(1.0f, 1.0f, 1.0f, 1.0f); } TextureCLUT8GPU::~TextureCLUT8GPU() { diff --git a/backends/platform/3ds/3ds.mk b/backends/platform/3ds/3ds.mk new file mode 100644 index 0000000000..7ab58995f6 --- /dev/null +++ b/backends/platform/3ds/3ds.mk @@ -0,0 +1,64 @@ +TARGET := scummvm + +APP_TITLE := ScummVM +APP_DESCRIPTION := Point-and-click adventure game engines +APP_AUTHOR := ScummVM Team +APP_ICON := backends/platform/3ds/app/icon.png + +APP_RSF := backends/platform/3ds/app/scummvm.rsf +APP_BANNER_IMAGE:= backends/platform/3ds/app/banner.png +APP_BANNER_AUDIO:= backends/platform/3ds/app/banner.wav + +ARCH := -march=armv6k -mtune=mpcore -mfloat-abi=hard -mtp=soft +CXXFLAGS += -std=gnu++11 +ASFLAGS += -mfloat-abi=hard +LDFLAGS += -specs=3dsx.specs $(ARCH) -L$(DEVKITPRO)/libctru/lib -L$(DEVKITPRO)/portlibs/3ds/lib + +.PHONY: clean_3ds + +clean: clean_3ds + +clean_3ds: + $(RM) $(TARGET).3dsx + $(RM) $(TARGET).cia + +$(TARGET).smdh: $(APP_ICON) + @bannertool makesmdh -s "$(APP_TITLE)" -l "$(APP_DESCRIPTION)" -p "$(APP_AUTHOR)" -i $(APP_ICON) -o $@ + @echo built ... $(notdir $@) + +$(TARGET).3dsx: $(EXECUTABLE) $(TARGET).smdh + @3dsxtool $< $@ --smdh=$(TARGET).smdh + @echo built ... $(notdir $@) + +$(TARGET).bnr: $(APP_BANNER_IMAGE) $(APP_BANNER_AUDIO) + @bannertool makebanner -o $@ -i $(APP_BANNER_IMAGE) -a $(APP_BANNER_AUDIO) + @echo built ... $(notdir $@) + +$(TARGET).cia: $(EXECUTABLE) $(APP_RSF) $(TARGET).smdh $(TARGET).bnr + @makerom -f cia -target t -exefslogo -o $@ -elf $(EXECUTABLE) -rsf $(APP_RSF) -banner $(TARGET).bnr -icon $(TARGET).smdh + @echo built ... $(notdir $@) + +#--------------------------------------------------------------------------------- +# rules for assembling GPU shaders +#--------------------------------------------------------------------------------- +define shader-as + $(eval FILEPATH := $(patsubst %.shbin.o,%.shbin,$@)) + $(eval FILE := $(patsubst %.shbin.o,%.shbin,$(notdir $@))) + picasso -o $(FILEPATH) $1 + bin2s $(FILEPATH) | $(AS) -o $@ + echo "extern const u8" `(echo $(FILE) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`"_end[];" > `(echo $(FILEPATH) | tr . _)`.h + echo "extern const u8" `(echo $(FILE) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`"[];" >> `(echo $(FILEPATH) | tr . _)`.h + echo "extern const u32" `(echo $(FILE) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`_size";" >> `(echo $(FILEPATH) | tr . _)`.h +endef + +%.shbin.o : %.v.pica %.g.pica + @echo $(notdir $^) + @$(call shader-as,$^) + +%.shbin.o : %.v.pica + @echo $(notdir $<) + @$(call shader-as,$<) + +%.shbin.o : %.shlist + @echo $(notdir $<) + @$(call shader-as,$(foreach file,$(shell cat $<),$(dir $<)/$(file))) diff --git a/backends/platform/3ds/README b/backends/platform/3ds/README new file mode 100644 index 0000000000..516e694f64 --- /dev/null +++ b/backends/platform/3ds/README @@ -0,0 +1,185 @@ +ScummVM 3DS README +------------------------------------------------------------------------ + +Table of Contents: +------------------ +1.0) Installation + * 1.1 3DSX installation + * 1.2 CIA installation +2.0) Controls + * 2.1 Default key mappings + * 2.2 Hover mode + * 2.3 Drag mode +3.0) Supported Games +4.0) Compiling + * 4.1 Prerequisites + * * 4.1.1 Compiling third-party libraries + * 4.2 Compiling ScummVM + * 4.3 Warning for 3DSX build + + + +1.0) Installation +----------------- +There are two possible formats to be used: 3DSX and CIA (recommended). +The 3DSX format is exclusively used by the Homebrew Launcher and its derivatives. +The CIA format can be installed directly to the 3DS home menu and can be launched +using any CFW (Custom Firmware) of your choice. + +Installing the Homebrew Launcher or any CFW is beyond the scope of this README. +Look elsewhere to see how to install those if you do not already have them set up. + + +1.1) 3DSX installation +---------------- +The CIA format is recommended for stability and maximum game support. If that is +not an option, you will need one of a collection of 3DS titles installed on your +system in order to properly launch ScummVM as a 3DSX. This is because the +Homebrew Launcher hijacks other processes to run 3DSX homebrew, and ScummVM is a +particularly large homebrew that can't be launched with the resources provided +by standard system applications. + +You will need one of the following (installed or physically in cart slot): + +- Youtube +- Monster Hunter 4 Ultimate Special Demo +- Monster Hunter 4 Ultimate +- Monster Hunter 4G +- Super Smash Bros. for Nintendo 3DS Demo +- Super Smash Bros. for Nintendo 3DS Special Demo +- Super Smash Bros. for Nintendo 3DS + +Once you have one of the above, you need to merely extract all ScummVM 3DS files +to the root of your SD card so that all files reside in the /3ds/scummvm/ directory. + + +1.2) CIA installation +--------------------- +The CIA format requires a DSP binary dump saved on your SD card as /3ds/dspfirm.cdc +for proper audio support. You can search online to find software to dump this. +Not having this file will cause many problems with games that need audio, sometimes +even crashing, so this is NOT considered optional. + +Using any CIA installation software (search elsewhere for that), you need to install +the scummvm.cia file. Then, just like what is done with the 3DSX installation, you +need to extract all ScummVM 3DS files (scummvm.cia excluded) to the root of your SD +card so that all files reside in the /3ds/scummvm/ directory. + + + +2.0) Controls +------------- + +2.1) Default key mappings +------------------------- +The D-Pad and A/B/X/Y buttons have mirrored usage. So they do the same things +depending on if you're right or left-handed. + +| Buttons | Function | +|------------|--------------------------------| +| A / D-left | Left-click | +| X / D-up | Right-click | +| B / D-down | ESC (skips cutscenes and such) | +| L | Use virtual keyboard | +| R | Toggle hover/drag modes | +| Start | Open game menu | +| Select | Open 3DS config menu | +| Circle Pad | Move the cursor | + + +2.2) Hover mode +--------------- +When you use the touchscreen, you are simulating the mere moving of the mouse. You +can click only with taps, meaning it is impossible to drag stuff or hold down a +mouse button without using buttons mapped to right/left-click. + + +2.3) Drag mode +-------------- +Every time you touch and release the touchscreen, you are simulating the click and +release of the mouse buttons. At the moment, this is only a left-click. + + + +3.0) Supported Games +-------------------- +The full game engine compatibility list can be found here: +http://scummvm.org/compatibility/ + +While all the above games should run on the 3DS (report if they do not), there are +many games which are unplayable due to the lack of CPU speed on the 3DS. So if +you play any games that run really slow, this is not considered a bug, but rather +a hardware limitation. Though possible GPU optimizations are always in the works. +The New 3DS console has much better performance, but there are still many newer and +high-resolution games that cannot be played. A list of these unplayable games and +game engines will eventually be listed here. + + + +4.0) Compiling +-------------- + +4.1) Prerequisites +------------------ + - devkitARM (presumably with libctru, picasso and such) + - citro3d + - Optional: You should compile third-party libraries for the 3ds (commonly referred + to as portlibs in the devkitPRO community). Some games requires these to operate + properly. + + +4.1.1) Compiling third-party libraries +-------------------------------------- +Most libraries used can be compiled with same commands and configuration flags. + +It is assumed that you have these environment variables defined: + - DEVKITPRO Your root devkitPro directory + - DEVKITARM Your root devkitARM directory (probably same as $DEVKITPRO/devkitARM) + - CTRULIB Your root libctru directory (probably same as $DEVKITPRO/libctru) + +In the source directory of the library: + - $ export PORTLIBS=$DEVKITPRO/portlibs/armv6k + - $ export PATH=$DEVKITARM/bin:$PATH + - $ export PKG_CONFIG_PATH=$PORTLIBS/lib/pkgconfig + - $ export CFLAGS="-g -march=armv6k -mtune=mpcore -mfloat-abi=hard -O2 + -mword-relocations -ffunction-sections -fdata-sections" + - $ export CPPFLAGS="-I$PORTLIBS/include -I$CTRULIB/include" + - $ export LDFLAGS="-L$PORTLIBS/lib" + - $ mkdir -p $PORTLIBS + - $ ./configure --prefix=$PORTLIBS --host=arm-none-eabi --disable-shared + --enable-static + - $ make + - $ make install + +Useful libraries (and special config flags needed): + - zlib + - libpng + - libjpeg + - freetype2 --without-bzip2 --without-harfbuzz + - libmad + - tremor + - flac --disable-cpplibs --without-flac + - faad + + +4.2) Compiling ScummVM +---------------------- + - $ ./configure --host=3ds + - $ make + +Additionally compile to specific formats to be used on the 3ds: + - $ make scummvm.3dsx + - $ make scummvm.cia + + +4.3) Warning for 3DSX build +--------------------------- +The above configuration command will include all game engines by default and will +likely be too massive to run using the 3DSX format. Until dynamic modules are figured +out, you should configure engines like this for 3DSX builds: + + - $ ./configure --host=3ds --disable-all-engines--enable-engine=scumm-7-8,myst,riven, + sword1,sword2,sword25,sci,lure,sky,agi,agos + +Choose whatever engines you want, but if the ELF's .text section exceeds ~10MB, it +won't be playable unless it's a CIA. diff --git a/backends/platform/3ds/app/banner.png b/backends/platform/3ds/app/banner.png Binary files differnew file mode 100644 index 0000000000..a3b02150ec --- /dev/null +++ b/backends/platform/3ds/app/banner.png diff --git a/backends/platform/3ds/app/banner.wav b/backends/platform/3ds/app/banner.wav Binary files differnew file mode 100644 index 0000000000..e0b684b62f --- /dev/null +++ b/backends/platform/3ds/app/banner.wav diff --git a/backends/platform/3ds/app/icon.png b/backends/platform/3ds/app/icon.png Binary files differnew file mode 100644 index 0000000000..07022fbac1 --- /dev/null +++ b/backends/platform/3ds/app/icon.png diff --git a/backends/platform/3ds/app/scummvm.rsf b/backends/platform/3ds/app/scummvm.rsf new file mode 100644 index 0000000000..a4518949bb --- /dev/null +++ b/backends/platform/3ds/app/scummvm.rsf @@ -0,0 +1,219 @@ +BasicInfo: + Title : ScummVM + ProductCode : ScummVM + Logo : Nintendo # Nintendo / Licensed / Distributed / iQue / iQueForSystem + +TitleInfo: + Category : Application + UniqueId : 0xFF321 + +Option: + UseOnSD : true # true if App is to be installed to SD + FreeProductCode : true # Removes limitations on ProductCode + MediaFootPadding : false # If true CCI files are created with padding + EnableCrypt : false # Enables encryption for NCCH and CIA + EnableCompress : false # Compresses where applicable (currently only exefs:/.code) + +AccessControlInfo: + CoreVersion : 2 + + # Exheader Format Version + DescVersion : 2 + + # Minimum Required Kernel Version (below is for 4.5.0) + ReleaseKernelMajor : "02" + ReleaseKernelMinor : "33" + + # ExtData + UseExtSaveData : false # enables ExtData + #ExtSaveDataId : 0x300 # only set this when the ID is different to the UniqueId + + # FS:USER Archive Access Permissions + # Uncomment as required + FileSystemAccess: + #- CategorySystemApplication + #- CategoryHardwareCheck + #- CategoryFileSystemTool + #- Debug + #- TwlCardBackup + #- TwlNandData + #- Boss + - DirectSdmc + #- Core + #- CtrNandRo + #- CtrNandRw + #- CtrNandRoWrite + #- CategorySystemSettings + #- CardBoard + #- ExportImportIvs + #- DirectSdmcWrite + #- SwitchCleanup + #- SaveDataMove + #- Shop + #- Shell + #- CategoryHomeMenu + + # Process Settings + MemoryType : Application # Application/System/Base + SystemMode : 64MB # 64MB(Default)/96MB/80MB/72MB/32MB + IdealProcessor : 0 + AffinityMask : 1 + Priority : 16 + MaxCpu : 0 # Let system decide + HandleTableSize : 0x200 + DisableDebug : false + EnableForceDebug : false + CanWriteSharedPage : true + CanUsePrivilegedPriority : false + CanUseNonAlphabetAndNumber : true + PermitMainFunctionArgument : true + CanShareDeviceMemory : true + RunnableOnSleep : false + SpecialMemoryArrange : true + + # New3DS Exclusive Process Settings + SystemModeExt : 124MB # Legacy(Default)/124MB/178MB Legacy:Use Old3DS SystemMode + CpuSpeed : 804MHz # 268MHz(Default)/804MHz + EnableL2Cache : true # false(default)/true + CanAccessCore2 : true + + # Virtual Address Mappings + IORegisterMapping: + - 1ff00000-1ff7ffff # DSP memory + MemoryMapping: + - 1f000000-1f5fffff:r # VRAM + + # Accessible SVCs, <Name>:<ID> + SystemCallAccess: + ArbitrateAddress: 34 + Break: 60 + CancelTimer: 28 + ClearEvent: 25 + ClearTimer: 29 + CloseHandle: 35 + ConnectToPort: 45 + ControlMemory: 1 + CreateAddressArbiter: 33 + CreateEvent: 23 + CreateMemoryBlock: 30 + CreateMutex: 19 + CreateSemaphore: 21 + CreateThread: 8 + CreateTimer: 26 + DuplicateHandle: 39 + ExitProcess: 3 + ExitThread: 9 + GetCurrentProcessorNumber: 17 + GetHandleInfo: 41 + GetProcessId: 53 + GetProcessIdOfThread: 54 + GetProcessIdealProcessor: 6 + GetProcessInfo: 43 + GetResourceLimit: 56 + GetResourceLimitCurrentValues: 58 + GetResourceLimitLimitValues: 57 + GetSystemInfo: 42 + GetSystemTick: 40 + GetThreadContext: 59 + GetThreadId: 55 + GetThreadIdealProcessor: 15 + GetThreadInfo: 44 + GetThreadPriority: 11 + MapMemoryBlock: 31 + OutputDebugString: 61 + QueryMemory: 2 + ReleaseMutex: 20 + ReleaseSemaphore: 22 + SendSyncRequest1: 46 + SendSyncRequest2: 47 + SendSyncRequest3: 48 + SendSyncRequest4: 49 + SendSyncRequest: 50 + SetThreadPriority: 12 + SetTimer: 27 + SignalEvent: 24 + SleepThread: 10 + UnmapMemoryBlock: 32 + WaitSynchronization1: 36 + WaitSynchronizationN: 37 + Backdoor: 123 + + # Service List + # Maximum 34 services (32 if firmware is prior to 9.3.0) + ServiceAccessControl: + - cfg:u + - fs:USER + - gsp::Gpu + - hid:USER + - ndm:u + - pxi:dev + - APT:U + - ac:u + - act:u + - am:net + - boss:U + - cam:u + - cecd:u + - dsp::DSP + - frd:u + - http:C + - ir:USER + - ir:u + - ir:rst + - ldr:ro + - mic:u + - news:u + - nim:aoc + - nwm::UDS + - ptm:u + - qtm:u + - soc:U + - ssl:C + - y2r:u + - gsp::Lcd + + +SystemControlInfo: + SaveDataSize: 0K + RemasterVersion: 0 + StackSize: 0x40000 + + # Modules that run services listed above should be included below + # Maximum 48 dependencies + # If a module is listed that isn't present on the 3DS, the title will get stuck at the logo (3ds waves) + # So act, nfc and qtm are commented for 4.x support. Uncomment if you need these. + # <module name>:<module titleid> + Dependency: + ac: 0x0004013000002402 + #act: 0x0004013000003802 + am: 0x0004013000001502 + boss: 0x0004013000003402 + camera: 0x0004013000001602 + cecd: 0x0004013000002602 + cfg: 0x0004013000001702 + codec: 0x0004013000001802 + csnd: 0x0004013000002702 + dlp: 0x0004013000002802 + dsp: 0x0004013000001a02 + friends: 0x0004013000003202 + gpio: 0x0004013000001b02 + gsp: 0x0004013000001c02 + hid: 0x0004013000001d02 + http: 0x0004013000002902 + i2c: 0x0004013000001e02 + ir: 0x0004013000003302 + mcu: 0x0004013000001f02 + mic: 0x0004013000002002 + ndm: 0x0004013000002b02 + news: 0x0004013000003502 + #nfc: 0x0004013000004002 + nim: 0x0004013000002c02 + nwm: 0x0004013000002d02 + pdn: 0x0004013000002102 + ps: 0x0004013000003102 + ptm: 0x0004013000002202 + #qtm: 0x0004013020004202 + ro: 0x0004013000003702 + socket: 0x0004013000002e02 + spi: 0x0004013000002302 + ssl: 0x0004013000002f02 diff --git a/backends/platform/3ds/config.cpp b/backends/platform/3ds/config.cpp new file mode 100644 index 0000000000..117b979d9f --- /dev/null +++ b/backends/platform/3ds/config.cpp @@ -0,0 +1,87 @@ +/* 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 "config.h" +#include "osystem.h" +#include "options-dialog.h" +#include "common/config-manager.h" +#include <3ds.h> + +namespace _3DS { + +Config config; +static Common::String prefix = "3ds_"; + +static bool confGetBool(Common::String key, bool defaultVal) { + if (ConfMan.hasKey(prefix + key)) + return ConfMan.getBool(prefix + key); + return defaultVal; +} + +static void confSetBool(Common::String key, bool val) { + ConfMan.setBool(prefix + key, val); +} + +static int confGetInt(Common::String key, int defaultVal) { + if (ConfMan.hasKey(prefix + key)) + return ConfMan.getInt(prefix + key); + return defaultVal; +} + +static void confSetInt(Common::String key, int val) { + ConfMan.setInt(prefix + key, val); +} + +void loadConfig() { + config.showCursor = confGetBool("showcursor", true); + config.snapToBorder = confGetBool("snaptoborder", true); + config.stretchToFit = confGetBool("stretchtofit", false); + config.sensitivity = confGetInt("sensitivity", -5); + config.screen = confGetInt("screen", kScreenBoth); + + // Turn off the backlight of any screen not used + if (R_SUCCEEDED(gspLcdInit())) { + if (config.screen == kScreenTop) { + GSPLCD_PowerOnBacklight(GSPLCD_SCREEN_TOP); + GSPLCD_PowerOffBacklight(GSPLCD_SCREEN_BOTTOM); + } else if (config.screen == kScreenBottom) { + GSPLCD_PowerOnBacklight(GSPLCD_SCREEN_BOTTOM); + GSPLCD_PowerOffBacklight(GSPLCD_SCREEN_TOP); + } else + GSPLCD_PowerOnBacklight(GSPLCD_SCREEN_BOTH); + gspLcdExit(); + } + + OSystem_3DS *osys = (OSystem_3DS *)g_system; + osys->updateConfig(); +} + +void saveConfig() { + confSetBool("showcursor", config.showCursor); + confSetBool("snaptoborder", config.snapToBorder); + confSetBool("stretchtofit", config.stretchToFit); + confSetInt("sensitivity", config.sensitivity); + confSetInt("screen", config.screen); + ConfMan.flushToDisk(); +} + +} // namespace _3DS diff --git a/backends/platform/3ds/config.h b/backends/platform/3ds/config.h new file mode 100644 index 0000000000..c8b75736ad --- /dev/null +++ b/backends/platform/3ds/config.h @@ -0,0 +1,45 @@ +/* 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 CONFIG_3DS_H +#define CONFIG_3DS_H + +#include "common/str.h" + +namespace _3DS { + +struct Config { + bool showCursor; + bool snapToBorder; + bool stretchToFit; + int sensitivity; + int screen; +}; + +extern Config config; + +void loadConfig(); +void saveConfig(); + +} // namespace _3DS + +#endif // CONFIG_3DS_H diff --git a/backends/platform/3ds/gui.cpp b/backends/platform/3ds/gui.cpp new file mode 100644 index 0000000000..0883d5a102 --- /dev/null +++ b/backends/platform/3ds/gui.cpp @@ -0,0 +1,46 @@ +/* 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 "backends/platform/3ds/gui.h" +#include "common/system.h" + +StatusMessageDialog* StatusMessageDialog::_opened = 0; + +StatusMessageDialog::StatusMessageDialog(const Common::String &message, uint32 duration) + : MessageDialog(message, 0, 0) { + _timer = g_system->getMillis() + duration; + if (_opened) + _opened->close(); + _opened = this; +} + +void StatusMessageDialog::handleTickle() { + MessageDialog::handleTickle(); + if (g_system->getMillis() > _timer) + close(); +} + +void StatusMessageDialog::close() { + GUI::Dialog::close(); + if (_opened) + _opened = 0; +} diff --git a/backends/platform/3ds/gui.h b/backends/platform/3ds/gui.h new file mode 100644 index 0000000000..66c6547139 --- /dev/null +++ b/backends/platform/3ds/gui.h @@ -0,0 +1,41 @@ +/* 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 GUI_3DS_H +#define GUI_3DS_H + +#include "gui/message.h" + +class StatusMessageDialog : public GUI::MessageDialog { +public: + StatusMessageDialog(const Common::String &message, uint32 duration); + + void handleTickle(); + +protected: + virtual void close(); + + uint32 _timer; + static StatusMessageDialog* _opened; +}; + +#endif // GUI_3DS_H diff --git a/backends/platform/3ds/main.cpp b/backends/platform/3ds/main.cpp new file mode 100644 index 0000000000..6cc2c5cf5d --- /dev/null +++ b/backends/platform/3ds/main.cpp @@ -0,0 +1,54 @@ +/* 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 "osystem.h" +#include <3ds.h> + +int main(int argc, char *argv[]) { + // Initialize basic libctru stuff + gfxInitDefault(); + cfguInit(); + osSetSpeedupEnable(true); +// consoleInit(GFX_TOP, NULL); + + g_system = new _3DS::OSystem_3DS(); + assert(g_system); + + // Invoke the actual ScummVM main entry point +// if (argc > 2) +// res = scummvm_main(argc-2, &argv[2]); +// else +// res = scummvm_main(argc, argv); + scummvm_main(0, nullptr); + + delete dynamic_cast<_3DS::OSystem_3DS*>(g_system); + + // Turn on both screen backlights before exiting. + if (R_SUCCEEDED(gspLcdInit())) { + GSPLCD_PowerOnBacklight(GSPLCD_SCREEN_BOTH); + gspLcdExit(); + } + + cfguExit(); + gfxExit(); + return 0; +} diff --git a/backends/platform/3ds/module.mk b/backends/platform/3ds/module.mk new file mode 100644 index 0000000000..3eb15aef81 --- /dev/null +++ b/backends/platform/3ds/module.mk @@ -0,0 +1,18 @@ +MODULE := backends/platform/3ds + +MODULE_OBJS := \ + main.o \ + shader.shbin.o \ + sprite.o \ + gui.o \ + config.o \ + options-dialog.o \ + osystem.o \ + osystem-graphics.o \ + osystem-audio.o \ + osystem-events.o + +# We don't use rules.mk but rather manually update OBJS and MODULE_DIRS. +MODULE_OBJS := $(addprefix $(MODULE)/, $(MODULE_OBJS)) +OBJS := $(MODULE_OBJS) $(OBJS) +MODULE_DIRS += $(sort $(dir $(MODULE_OBJS))) diff --git a/backends/platform/3ds/options-dialog.cpp b/backends/platform/3ds/options-dialog.cpp new file mode 100644 index 0000000000..0f8bfd0c66 --- /dev/null +++ b/backends/platform/3ds/options-dialog.cpp @@ -0,0 +1,98 @@ +/* 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 "options-dialog.h" +#include "config.h" +#include "gui/dialog.h" +#include "gui/gui-manager.h" +#include "gui/widgets/list.h" +#include "gui/widgets/tab.h" +#include "osystem.h" +#include "engines/scumm/scumm.h" +#include "gui/widgets/popup.h" + +#include "common/translation.h" + +namespace _3DS { + +bool optionMenuOpened = false; + +OptionsDialog::OptionsDialog() : GUI::Dialog(20, 20, 280, 200) { + + optionMenuOpened = true; + + new GUI::ButtonWidget(this, 120, 180, 72, 16, _("~C~lose"), 0, GUI::kCloseCmd); + new GUI::ButtonWidget(this, 200, 180, 72, 16, _("~S~ave"), 0, GUI::kOKCmd); + + _showCursorCheckbox = new GUI::CheckboxWidget(this, 5, 5, 130, 20, _("Show mouse cursor"), 0, 0, 'T'); + _showCursorCheckbox->setState(config.showCursor); + + _snapToBorderCheckbox = new GUI::CheckboxWidget(this, 5, 22, 130, 20, _("Snap to edges"), 0, 0, 'T'); + _snapToBorderCheckbox->setState(config.snapToBorder); + + _stretchToFitCheckbox = new GUI::CheckboxWidget(this, 140, 5, 130, 20, _("Stretch to fit"), 0, 0, 'T'); + _stretchToFitCheckbox->setState(config.stretchToFit); + + new GUI::StaticTextWidget(this, 0, 60, 110, 15, _("Use Screen:"), Graphics::kTextAlignRight); + _screenRadioGroup = new GUI::RadiobuttonGroup(this, kScreenRadioGroup); + _screenTopRadioWidget = new GUI::RadiobuttonWidget(this, 120, 50, 60, 20, _screenRadioGroup, kScreenTop, _("Top")); + _screenBottomRadioWidget = new GUI::RadiobuttonWidget(this, 190, 50, 80, 20, _screenRadioGroup, kScreenBottom, _("Bottom")); + _screenBothRadioWidget = new GUI::RadiobuttonWidget(this, 155, 70, 80, 20, _screenRadioGroup, kScreenBoth, _("Both")); + _screenRadioGroup->setValue(config.screen); + + new GUI::StaticTextWidget(this, 0, 100, 110, 15, _("C-Pad Sensitivity:"), Graphics::kTextAlignRight); + _sensitivity = new GUI::SliderWidget(this, 115, 100, 160, 15, "TODO: Add tooltip", 1); + _sensitivity->setMinValue(-15); + _sensitivity->setMaxValue(30); + _sensitivity->setValue(config.sensitivity); + _sensitivity->setFlags(GUI::WIDGET_CLEARBG); +} + +OptionsDialog::~OptionsDialog() { + optionMenuOpened = false; +} + +void OptionsDialog::updateConfigManager() { + config.showCursor = _showCursorCheckbox->getState(); + config.snapToBorder = _snapToBorderCheckbox->getState(); + config.stretchToFit = _stretchToFitCheckbox->getState(); + config.sensitivity = _sensitivity->getValue(); + config.screen = _screenRadioGroup->getValue(); + saveConfig(); + loadConfig(); +} + +void OptionsDialog::handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data) { + switch(cmd) { + case GUI::kOKCmd: + updateConfigManager(); + // Fall through + case GUI::kCloseCmd: + close(); + break; + default: + Dialog::handleCommand(sender, cmd, data); + break; + } +} + +} // namespace _3DS diff --git a/backends/platform/3ds/options-dialog.h b/backends/platform/3ds/options-dialog.h new file mode 100644 index 0000000000..6673b88e7b --- /dev/null +++ b/backends/platform/3ds/options-dialog.h @@ -0,0 +1,70 @@ +/* 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 OPTIONS_DIALOG_3DS_H +#define OPTIONS_DIALOG_3DS_H + + +#include "common/scummsys.h" +#include "common/str.h" +#include "gui/object.h" +#include "gui/widget.h" +#include "gui/dialog.h" +#include "gui/widgets/tab.h" +#include "scumm/dialogs.h" + +namespace _3DS { + +enum { + kSave = 0x10000000, + kScreenRadioGroup, + kScreenTop, + kScreenBottom, + kScreenBoth, +}; + +extern bool optionMenuOpened; + +class OptionsDialog : public GUI::Dialog { + +public: + OptionsDialog(); + ~OptionsDialog(); + +protected: + virtual void handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data); + void updateConfigManager(); + + GUI::SliderWidget *_sensitivity; + GUI::CheckboxWidget *_showCursorCheckbox; + GUI::CheckboxWidget *_snapToBorderCheckbox; + GUI::CheckboxWidget *_stretchToFitCheckbox; + + GUI::RadiobuttonGroup *_screenRadioGroup; + GUI::RadiobuttonWidget *_screenTopRadioWidget; + GUI::RadiobuttonWidget *_screenBottomRadioWidget; + GUI::RadiobuttonWidget *_screenBothRadioWidget; +}; + +} // namespace _3DS + +#endif // OPTIONS_DIALOG_3DS_H diff --git a/backends/platform/3ds/osystem-audio.cpp b/backends/platform/3ds/osystem-audio.cpp new file mode 100644 index 0000000000..17e419c36d --- /dev/null +++ b/backends/platform/3ds/osystem-audio.cpp @@ -0,0 +1,110 @@ +/* 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 "osystem.h" +#include "audio/mixer.h" + +namespace _3DS { + +static bool hasAudio = false; + +static void audioThreadFunc(void *arg) { + Audio::MixerImpl *mixer = (Audio::MixerImpl *)arg; + OSystem_3DS *osys = (OSystem_3DS *)g_system; + + int i; + const int channel = 0; + int bufferIndex = 0; + const int bufferCount = 3; + const int bufferSize = 80000; // Can't be too small, based on delayMillis duration + const int sampleRate = mixer->getOutputRate(); + int sampleLen = 0; + uint32 lastTime = osys->getMillis(true); + uint32 time = lastTime; + ndspWaveBuf buffers[bufferCount]; + + for (i = 0; i < bufferCount; ++i) { + memset(&buffers[i], 0, sizeof(ndspWaveBuf)); + buffers[i].data_vaddr = linearAlloc(bufferSize); + buffers[i].looping = false; + buffers[i].status = NDSP_WBUF_FREE; + } + + ndspChnReset(channel); + ndspChnSetInterp(channel, NDSP_INTERP_LINEAR); + ndspChnSetRate(channel, sampleRate); + ndspChnSetFormat(channel, NDSP_FORMAT_STEREO_PCM16); + + while (!osys->exiting) { + osys->delayMillis(100); // Note: Increasing the delay requires a bigger buffer + + time = osys->getMillis(true); + sampleLen = (time - lastTime) * 22 * 4; // sampleRate / 1000 * channelCount * sizeof(int16); + lastTime = time; + + if (!osys->sleeping && sampleLen > 0) { + bufferIndex++; + bufferIndex %= bufferCount; + ndspWaveBuf *buf = &buffers[bufferIndex]; + + buf->nsamples = mixer->mixCallback(buf->data_adpcm, sampleLen); + if (buf->nsamples > 0) { + DSP_FlushDataCache(buf->data_vaddr, bufferSize); + ndspChnWaveBufAdd(channel, buf); + } + } + } + + for (i = 0; i < bufferCount; ++i) + linearFree(buffers[i].data_pcm8); +} + +void OSystem_3DS::initAudio() { + _mixer = new Audio::MixerImpl(this, 22050); + + hasAudio = R_SUCCEEDED(ndspInit()); + _mixer->setReady(false); + + if (hasAudio) { + s32 prio = 0; + svcGetThreadPriority(&prio, CUR_THREAD_HANDLE); + audioThread = threadCreate(&audioThreadFunc, _mixer, 32 * 1048, prio - 1, -2, false); + } +} + +void OSystem_3DS::destroyAudio() { + if (hasAudio) { + threadJoin(audioThread, U64_MAX); + threadFree(audioThread); + ndspExit(); + } + + delete _mixer; + _mixer = 0; +} + +Audio::Mixer *OSystem_3DS::getMixer() { + assert(_mixer); + return _mixer; +} + +} // namespace _3DS diff --git a/backends/platform/3ds/osystem-events.cpp b/backends/platform/3ds/osystem-events.cpp new file mode 100644 index 0000000000..ae8a9b8b2b --- /dev/null +++ b/backends/platform/3ds/osystem-events.cpp @@ -0,0 +1,302 @@ +/* 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 "backends/timer/default/default-timer.h" +#include "engines/engine.h" +#include "gui.h" +#include "options-dialog.h" +#include "config.h" +#include "osystem.h" + +namespace _3DS { + +static Common::Mutex *eventMutex; +static InputMode inputMode = MODE_DRAG; +static aptHookCookie cookie; +static bool optionMenuOpening = false; +static Common::String messageOSD; +static bool showMessageOSD = false; + +static void pushEventQueue(Common::Queue<Common::Event> *queue, Common::Event &event) { + Common::StackLock lock(*eventMutex); + queue->push(event); +} + +static void eventThreadFunc(void *arg) { + OSystem_3DS *osys = (OSystem_3DS *)g_system; + auto eventQueue = (Common::Queue<Common::Event> *)arg; + + uint32 touchStartTime = osys->getMillis(); + touchPosition lastTouch = {0, 0}; + bool isRightClick = false; + float cursorX = 0; + float cursorY = 0; + float cursorDeltaX = 0; + float cursorDeltaY = 0; + int circleDeadzone = 20; + int borderSnapZone = 6; + Common::Event event; + + while (!osys->exiting) { + do { + osys->delayMillis(10); + } while (osys->sleeping && !osys->exiting); + + hidScanInput(); + touchPosition touch; + circlePosition circle; + u32 held = hidKeysHeld(); + u32 keysPressed = hidKeysDown(); + u32 keysReleased = hidKeysUp(); + + // C-Pad used to control the cursor + hidCircleRead(&circle); + if (circle.dx < circleDeadzone && circle.dx > -circleDeadzone) + circle.dx = 0; + if (circle.dy < circleDeadzone && circle.dy > -circleDeadzone) + circle.dy = 0; + cursorDeltaX = (0.0002f + config.sensitivity / 100000.f) * circle.dx * abs(circle.dx); + cursorDeltaY = (0.0002f + config.sensitivity / 100000.f) * circle.dy * abs(circle.dy); + + // Touch screen events + if (held & KEY_TOUCH) { + hidTouchRead(&touch); + if (config.snapToBorder) { + if (touch.px < borderSnapZone) + touch.px = 0; + if (touch.px > 319 - borderSnapZone) + touch.px = 319; + if (touch.py < borderSnapZone) + touch.py = 0; + if (touch.py > 239 - borderSnapZone) + touch.py = 239; + } + cursorX = touch.px; + cursorY = touch.py; + osys->transformPoint(touch); + + osys->warpMouse(touch.px, touch.py); + event.mouse.x = touch.px; + event.mouse.y = touch.py; + + if (keysPressed & KEY_TOUCH) { + touchStartTime = osys->getMillis(); + isRightClick = (held & KEY_X || held & KEY_DUP); + if (inputMode == MODE_DRAG) { + event.type = isRightClick ? Common::EVENT_RBUTTONDOWN : Common::EVENT_LBUTTONDOWN; + pushEventQueue(eventQueue, event); + } + } else if (touch.px != lastTouch.px || touch.py != lastTouch.py) { + event.type = Common::EVENT_MOUSEMOVE; + pushEventQueue(eventQueue, event); + } + + lastTouch = touch; + } else if (keysReleased & KEY_TOUCH) { + event.mouse.x = lastTouch.px; + event.mouse.y = lastTouch.py; + if (inputMode == MODE_DRAG) { + event.type = isRightClick ? Common::EVENT_RBUTTONUP : Common::EVENT_LBUTTONUP; + pushEventQueue(eventQueue, event); + } else if (osys->getMillis() - touchStartTime < 200) { + // Process click in MODE_HOVER + event.type = Common::EVENT_MOUSEMOVE; + pushEventQueue(eventQueue, event); + event.type = isRightClick ? Common::EVENT_RBUTTONDOWN : Common::EVENT_LBUTTONDOWN; + pushEventQueue(eventQueue, event); + event.type = isRightClick ? Common::EVENT_RBUTTONUP : Common::EVENT_LBUTTONUP; + pushEventQueue(eventQueue, event); + } + } else if (cursorDeltaX != 0 || cursorDeltaY != 0) { + cursorX += cursorDeltaX; + cursorY -= cursorDeltaY; + if (cursorX < 0) cursorX = 0; + if (cursorY < 0) cursorY = 0; + if (cursorX > 320) cursorX = 320; + if (cursorY > 240) cursorY = 240; + lastTouch.px = cursorX; + lastTouch.py = cursorY; + osys->transformPoint(lastTouch); + osys->warpMouse(lastTouch.px, lastTouch.py); + event.mouse.x = lastTouch.px; + event.mouse.y = lastTouch.py; + event.type = Common::EVENT_MOUSEMOVE; + pushEventQueue(eventQueue, event); + } + + // Button events + if (keysPressed & KEY_R) { + if (inputMode == MODE_DRAG) { + inputMode = MODE_HOVER; + osys->displayMessageOnOSD("Hover Mode"); + } else { + inputMode = MODE_DRAG; + osys->displayMessageOnOSD("Drag Mode"); + } + } + if (keysPressed & KEY_A || keysPressed & KEY_DLEFT || keysReleased & KEY_A || keysReleased & KEY_DLEFT) { + // SIMULATE LEFT CLICK + event.mouse.x = lastTouch.px; + event.mouse.y = lastTouch.py; + if (keysPressed & KEY_A || keysPressed & KEY_DLEFT) + event.type = Common::EVENT_LBUTTONDOWN; + else + event.type = Common::EVENT_LBUTTONUP; + pushEventQueue(eventQueue, event); + } + if (keysPressed & KEY_X || keysPressed & KEY_DUP || keysReleased & KEY_X || keysReleased & KEY_DUP) { + // SIMULATE RIGHT CLICK + event.mouse.x = lastTouch.px; + event.mouse.y = lastTouch.py; + if (keysPressed & KEY_X || keysPressed & KEY_DUP) + event.type = Common::EVENT_RBUTTONDOWN; + else + event.type = Common::EVENT_RBUTTONUP; + pushEventQueue(eventQueue, event); + } + if (keysPressed & KEY_L) { + event.type = Common::EVENT_VIRTUAL_KEYBOARD; + pushEventQueue(eventQueue, event); + } + if (keysPressed & KEY_START) { + event.type = Common::EVENT_MAINMENU; + pushEventQueue(eventQueue, event); + } + if (keysPressed & KEY_SELECT) { + if (!optionMenuOpened) + optionMenuOpening = true; + } + if (keysPressed & KEY_B || keysReleased & KEY_B || keysPressed & KEY_DDOWN || keysReleased & KEY_DDOWN) { + if (keysPressed & KEY_B || keysPressed & KEY_DDOWN) + event.type = Common::EVENT_KEYDOWN; + else + event.type = Common::EVENT_KEYUP; + event.kbd.keycode = Common::KEYCODE_ESCAPE; + event.kbd.ascii = Common::ASCII_ESCAPE; + event.kbd.flags = 0; + pushEventQueue(eventQueue, event); + } + + // TODO: EVENT_PREDICTIVE_DIALOG + // EVENT_SCREEN_CHANGED + } +} + +static void aptHookFunc(APT_HookType hookType, void *param) { + OSystem_3DS *osys = (OSystem_3DS *)g_system; + + switch (hookType) { + case APTHOOK_ONSUSPEND: + case APTHOOK_ONSLEEP: + if (g_engine) + g_engine->pauseEngine(true); + osys->sleeping = true; + if (R_SUCCEEDED(gspLcdInit())) { + GSPLCD_PowerOnBacklight(GSPLCD_SCREEN_BOTH); + gspLcdExit(); + } + break; + case APTHOOK_ONRESTORE: + case APTHOOK_ONWAKEUP: + if (g_engine) + g_engine->pauseEngine(false); + osys->sleeping = false; + loadConfig(); + break; + default: { + Common::StackLock lock(*eventMutex); + Common::Event event; + event.type = Common::EVENT_QUIT; + g_system->getEventManager()->pushEvent(event); + } + } +} + +static void timerThreadFunc(void *arg) { + OSystem_3DS *osys = (OSystem_3DS *)arg; + DefaultTimerManager *tm = (DefaultTimerManager *)osys->getTimerManager(); + while (!osys->exiting) { + g_system->delayMillis(10); + tm->handler(); + } +} + +void OSystem_3DS::initEvents() { + eventMutex = new Common::Mutex(); + s32 prio = 0; + svcGetThreadPriority(&prio, CUR_THREAD_HANDLE); + _timerThread = threadCreate(&timerThreadFunc, this, 32 * 1024, prio - 1, -2, false); + _eventThread = threadCreate(&eventThreadFunc, &_eventQueue, 32 * 1024, prio - 1, -2, false); + + aptHook(&cookie, aptHookFunc, this); +} + +void OSystem_3DS::destroyEvents() { + threadJoin(_timerThread, U64_MAX); + threadFree(_timerThread); + + threadJoin(_eventThread, U64_MAX); + threadFree(_eventThread); + delete eventMutex; +} + +void OSystem_3DS::transformPoint(touchPosition &point) { + if (!_overlayVisible) { + point.px = static_cast<float>(point.px) / _gameBottomTexture.getScaleX() - _gameBottomX; + point.py = static_cast<float>(point.py) / _gameBottomTexture.getScaleY() - _gameBottomY; + } +} + +void OSystem_3DS::displayMessageOnOSD(const char *msg) { + messageOSD = msg; + showMessageOSD = true; +} + +bool OSystem_3DS::pollEvent(Common::Event &event) { + if (showMessageOSD) { + showMessageOSD = false; + StatusMessageDialog dialog(messageOSD, 800); + dialog.runModal(); + } + + aptMainLoop(); // Call apt hook when necessary + + if (optionMenuOpening) { + optionMenuOpening = false; + OptionsDialog dialog; + if (g_engine) + g_engine->pauseEngine(true); + dialog.runModal(); + if (g_engine) + g_engine->pauseEngine(false); + } + + Common::StackLock lock(*eventMutex); + + if (_eventQueue.empty()) + return false; + + event = _eventQueue.pop(); + return true; +} + +} // namespace _3DS diff --git a/backends/platform/3ds/osystem-graphics.cpp b/backends/platform/3ds/osystem-graphics.cpp new file mode 100644 index 0000000000..0cfd70c9cd --- /dev/null +++ b/backends/platform/3ds/osystem-graphics.cpp @@ -0,0 +1,517 @@ +/* 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 "backends/platform/3ds/osystem.h" +#include "backends/platform/3ds/shader_shbin.h" +#include "common/rect.h" +#include "options-dialog.h" +#include "config.h" + +// Used to transfer the final rendered display to the framebuffer +#define DISPLAY_TRANSFER_FLAGS \ + (GX_TRANSFER_FLIP_VERT(0) | GX_TRANSFER_OUT_TILED(0) | \ + GX_TRANSFER_RAW_COPY(0) | GX_TRANSFER_IN_FORMAT(GX_TRANSFER_FMT_RGBA8) | \ + GX_TRANSFER_OUT_FORMAT(GX_TRANSFER_FMT_RGB8) | \ + GX_TRANSFER_SCALING(GX_TRANSFER_SCALE_NO)) + +namespace _3DS { + +void OSystem_3DS::initGraphics() { + _pfGame = Graphics::PixelFormat::createFormatCLUT8(); + _pfGameTexture = Graphics::PixelFormat(4, 8, 8, 8, 8, 24, 16, 8, 0); + + C3D_Init(C3D_DEFAULT_CMDBUF_SIZE); + + // Initialize the render targets + _renderTargetTop = + C3D_RenderTargetCreate(240, 400, GPU_RB_RGBA8, GPU_RB_DEPTH24_STENCIL8); + C3D_RenderTargetSetClear(_renderTargetTop, C3D_CLEAR_ALL, 0x0000000, 0); + C3D_RenderTargetSetOutput(_renderTargetTop, GFX_TOP, GFX_LEFT, + DISPLAY_TRANSFER_FLAGS); + + _renderTargetBottom = + C3D_RenderTargetCreate(240, 320, GPU_RB_RGBA8, GPU_RB_DEPTH24_STENCIL8); + C3D_RenderTargetSetClear(_renderTargetBottom, C3D_CLEAR_ALL, 0x00000000, 0); + C3D_RenderTargetSetOutput(_renderTargetBottom, GFX_BOTTOM, GFX_LEFT, + DISPLAY_TRANSFER_FLAGS); + + // Load and bind simple default shader (shader.v.pica) + _dvlb = DVLB_ParseFile((u32*)shader_shbin, shader_shbin_size); + shaderProgramInit(&_program); + shaderProgramSetVsh(&_program, &_dvlb->DVLE[0]); + C3D_BindProgram(&_program); + + _projectionLocation = shaderInstanceGetUniformLocation(_program.vertexShader, "projection"); + _modelviewLocation = shaderInstanceGetUniformLocation(_program.vertexShader, "modelView"); + + C3D_AttrInfo *attrInfo = C3D_GetAttrInfo(); + AttrInfo_Init(attrInfo); + AttrInfo_AddLoader(attrInfo, 0, GPU_FLOAT, 3); // v0=position + AttrInfo_AddLoader(attrInfo, 1, GPU_FLOAT, 2); // v1=texcoord + + Mtx_OrthoTilt(&_projectionTop, 0.0, 400.0, 240.0, 0.0, 0.0, 1.0); + Mtx_OrthoTilt(&_projectionBottom, 0.0, 320.0, 240.0, 0.0, 0.0, 1.0); + + C3D_TexEnv *env = C3D_GetTexEnv(0); + C3D_TexEnvSrc(env, C3D_Both, GPU_TEXTURE0, 0, 0); + C3D_TexEnvOp(env, C3D_Both, 0, 0, 0); + C3D_TexEnvFunc(env, C3D_Both, GPU_REPLACE); + + C3D_DepthTest(false, GPU_GEQUAL, GPU_WRITE_ALL); + C3D_CullFace(GPU_CULL_NONE); +} + +void OSystem_3DS::destroyGraphics() { + _gameScreen.free(); + _gameTopTexture.free(); + _gameBottomTexture.free(); + _overlay.free(); + + shaderProgramFree(&_program); + DVLB_Free(_dvlb); + + C3D_RenderTargetDelete(_renderTargetTop); + C3D_RenderTargetDelete(_renderTargetBottom); + + C3D_Fini(); +} + +bool OSystem_3DS::hasFeature(OSystem::Feature f) { + return (f == OSystem::kFeatureCursorPalette || + f == OSystem::kFeatureOverlaySupportsAlpha); +} + +void OSystem_3DS::setFeatureState(OSystem::Feature f, bool enable) { + switch (f) { + case OSystem::kFeatureCursorPalette: + _cursorPaletteEnabled = enable; + flushCursor(); + break; + default: + break; + } +} + +bool OSystem_3DS::getFeatureState(OSystem::Feature f) { + switch (f) { + case OSystem::kFeatureCursorPalette: + return _cursorPaletteEnabled; + default: + return false; + } +} + +const OSystem::GraphicsMode * +OSystem_3DS::getSupportedGraphicsModes() const { + return s_graphicsModes; +} + +int OSystem_3DS::getDefaultGraphicsMode() const { + return GFX_LINEAR; +} + +bool OSystem_3DS::setGraphicsMode(int mode) { + return true; +} + +void OSystem_3DS::resetGraphicsScale() { + debug("resetGraphicsScale"); +} + +int OSystem_3DS::getGraphicsMode() const { + return GFX_LINEAR; +} +void OSystem_3DS::initSize(uint width, uint height, + const Graphics::PixelFormat *format) { + debug("3ds initsize w:%d h:%d", width, height); + _gameWidth = width; + _gameHeight = height; + _gameTopTexture.create(width, height, _pfGameTexture); + _overlay.create(getOverlayWidth(), getOverlayHeight(), _pfGameTexture); + + if (format) { + debug("pixelformat: %d %d %d %d %d", format->bytesPerPixel, format->rBits(), format->gBits(), format->bBits(), format->aBits());; + _pfGame = *format; + } + + _gameScreen.create(width, height, _pfGame); + + _focusDirty = true; + _focusRect = Common::Rect(_gameWidth, _gameHeight); + + updateSize(); +} + +void OSystem_3DS::updateSize() { + if (config.stretchToFit) { + _gameTopX = _gameTopY = _gameBottomX = _gameBottomY = 0; + _gameTopTexture.setScale(400.f / _gameWidth, 240.f / _gameHeight); + _gameBottomTexture.setScale(320.f / _gameWidth, 240.f / _gameHeight); + } else { + float ratio = static_cast<float>(_gameWidth) / _gameHeight; + + if (ratio > 400.f / 240.f) { + float r = 400.f / _gameWidth; + _gameTopTexture.setScale(r, r); + _gameTopX = 0; + _gameTopY = (240.f - r * _gameHeight) / 2.f; + } else { + float r = 240.f / _gameHeight; + _gameTopTexture.setScale(r, r); + _gameTopY = 0; + _gameTopX = (400.f - r * _gameWidth) / 2.f; + } + if (ratio > 320.f / 240.f) { + float r = 320.f / _gameWidth; + _gameBottomTexture.setScale(r, r); + _gameBottomX = 0; + _gameBottomY = (240.f - r * _gameHeight) / 2.f; + } else { + float r = 240.f / _gameHeight; + _gameBottomTexture.setScale(r, r); + _gameBottomY = 0; + _gameBottomX = (320.f - r * _gameWidth) / 2.f; + } + } + _gameTopTexture.setPosition(_gameTopX, _gameTopY); + _gameBottomTexture.setPosition(_gameBottomX, _gameBottomY); + if (_overlayVisible) + _cursorTexture.setScale(1.f, 1.f); + else if (config.screen == kScreenTop) + _cursorTexture.setScale(_gameTopTexture.getScaleX(), _gameTopTexture.getScaleY()); + else + _cursorTexture.setScale(_gameBottomTexture.getScaleX(), _gameBottomTexture.getScaleY()); +} + +Common::List<Graphics::PixelFormat> OSystem_3DS::getSupportedFormats() const { + Common::List<Graphics::PixelFormat> list; + list.push_back(Graphics::PixelFormat(4, 8, 8, 8, 8, 24, 16, 8, 0)); // GPU_RGBA8 + list.push_back(Graphics::PixelFormat(2, 5, 6, 5, 0, 11, 5, 0, 0)); // GPU_RGB565 +// list.push_back(Graphics::PixelFormat(3, 0, 0, 0, 8, 0, 8, 16, 0)); // GPU_RGB8 + list.push_back(Graphics::PixelFormat(2, 5, 5, 5, 0, 10, 5, 0, 0)); // RGB555 (needed for FMTOWNS?) + list.push_back(Graphics::PixelFormat(2, 5, 5, 5, 1, 11, 6, 1, 0)); // GPU_RGBA5551 + list.push_back(Graphics::PixelFormat::createFormatCLUT8()); + return list; +} + +void OSystem_3DS::beginGFXTransaction() { + // +} +OSystem::TransactionError OSystem_3DS::endGFXTransaction() { + return OSystem::kTransactionSuccess; +} + +void OSystem_3DS::setPalette(const byte *colors, uint start, uint num) { + assert(start + num <= 256); + memcpy(_palette + 3 * start, colors, 3 * num); + + // Manually update all color that were changed + if (_gameScreen.format.bytesPerPixel == 1) { + flushGameScreen(); + } +} +void OSystem_3DS::grabPalette(byte *colors, uint start, uint num) { + assert(start + num <= 256); + memcpy(colors, _palette + 3 * start, 3 * num); +} + +void OSystem_3DS::copyRectToScreen(const void *buf, int pitch, int x, + int y, int w, int h) { + Common::Rect rect(x, y, x+w, y+h); + _gameScreen.copyRectToSurface(buf, pitch, x, y, w, h); + Graphics::Surface subSurface = _gameScreen.getSubArea(rect); + + Graphics::Surface *convertedSubSurface = subSurface.convertTo(_pfGameTexture, _palette); + _gameTopTexture.copyRectToSurface(*convertedSubSurface, x, y, Common::Rect(w, h)); + + convertedSubSurface->free(); + delete convertedSubSurface; + _gameTopTexture.markDirty(); +} + +void OSystem_3DS::flushGameScreen() { + Graphics::Surface *converted = _gameScreen.convertTo(_pfGameTexture, _palette); + _gameTopTexture.copyRectToSurface(*converted, 0, 0, Common::Rect(converted->w, converted->h)); + _gameTopTexture.markDirty(); + converted->free(); + delete converted; +} + +Graphics::Surface *OSystem_3DS::lockScreen() { + return &_gameScreen; +} +void OSystem_3DS::unlockScreen() { + flushGameScreen(); +} + +void OSystem_3DS::updateScreen() { + + if (sleeping || exiting) + return; + +// updateFocus(); + + C3D_FrameBegin(C3D_FRAME_SYNCDRAW); + // Render top screen + C3D_FrameDrawOn(_renderTargetTop); + if (config.screen == kScreenTop || config.screen == kScreenBoth) { + C3D_FVUnifMtx4x4(GPU_VERTEX_SHADER, _projectionLocation, &_projectionTop); + C3D_FVUnifMtx4x4(GPU_VERTEX_SHADER, _modelviewLocation, _gameTopTexture.getMatrix()); + _gameTopTexture.render(); + _gameTopTexture.render(); + if (_overlayVisible && config.screen == kScreenTop) { + C3D_FVUnifMtx4x4(GPU_VERTEX_SHADER, _modelviewLocation, _overlay.getMatrix()); + _overlay.render(); + } + if (_cursorVisible && config.showCursor && config.screen == kScreenTop) { + C3D_FVUnifMtx4x4(GPU_VERTEX_SHADER, _modelviewLocation, _cursorTexture.getMatrix()); + _cursorTexture.render(); + } + } + + // Render bottom screen + C3D_FrameDrawOn(_renderTargetBottom); + if (config.screen == kScreenBottom || config.screen == kScreenBoth) { + C3D_FVUnifMtx4x4(GPU_VERTEX_SHADER, _projectionLocation, &_projectionBottom); + C3D_FVUnifMtx4x4(GPU_VERTEX_SHADER, _modelviewLocation, _gameBottomTexture.getMatrix()); + _gameTopTexture.render(); + _gameTopTexture.render(); + if (_overlayVisible) { + C3D_FVUnifMtx4x4(GPU_VERTEX_SHADER, _modelviewLocation, _overlay.getMatrix()); + _overlay.render(); + } + if (_cursorVisible && config.showCursor) { + C3D_FVUnifMtx4x4(GPU_VERTEX_SHADER, _modelviewLocation, _cursorTexture.getMatrix()); + _cursorTexture.render(); + } + } + C3D_FrameEnd(0); +} + +void OSystem_3DS::setShakePos(int shakeOffset) { + // TODO: implement this in overlay, top screen, and mouse too + _screenShakeOffset = shakeOffset; + _gameTopTexture.setPosition(_gameTopX, _gameTopY + _gameTopTexture.getScaleY() * shakeOffset); + _gameBottomTexture.setPosition(_gameBottomX, _gameBottomY + _gameBottomTexture.getScaleY() * shakeOffset); +} + +void OSystem_3DS::setFocusRectangle(const Common::Rect &rect) { + debug("setfocus: %d %d %d %d", rect.left, rect.top, rect.width(), rect.height()); + _focusRect = rect; + _focusDirty = true; + _focusClearTime = 0; +} + +void OSystem_3DS::clearFocusRectangle() { + _focusClearTime = getMillis(); +} + +void OSystem_3DS::updateFocus() { + + if (_focusClearTime && getMillis() - _focusClearTime > 5000) { + _focusClearTime = 0; + _focusDirty = true; + _focusRect = Common::Rect(_gameWidth, _gameHeight); + } + + if (_focusDirty) { + float duration = 1.f / 20.f; // Focus animation in frame duration + float w = 400.f; + float h = 240.f; + float ratio = _focusRect.width() / _focusRect.height(); + if (ratio > w/h) { + _focusTargetScaleX = w / _focusRect.width(); + float newHeight = (float)_focusRect.width() / w/h; + _focusTargetScaleY = h / newHeight; + _focusTargetPosX = _focusTargetScaleX * _focusRect.left; + _focusTargetPosY = _focusTargetScaleY * ((float)_focusRect.top - (newHeight - _focusRect.height())/2.f); + } else { + _focusTargetScaleY = h / _focusRect.height(); + float newWidth = (float)_focusRect.height() * w/h; + _focusTargetScaleX = w / newWidth; + _focusTargetPosY = _focusTargetScaleY * _focusRect.top; + _focusTargetPosX = _focusTargetScaleX * ((float)_focusRect.left - (newWidth - _focusRect.width())/2.f); + } + if (_focusTargetPosX < 0 && _focusTargetScaleY != 240.f / _gameHeight) + _focusTargetPosX = 0; + if (_focusTargetPosY < 0 && _focusTargetScaleX != 400.f / _gameWidth) + _focusTargetPosY = 0; + _focusStepPosX = duration * (_focusTargetPosX - _focusPosX); + _focusStepPosY = duration * (_focusTargetPosY - _focusPosY); + _focusStepScaleX = duration * (_focusTargetScaleX - _focusScaleX); + _focusStepScaleY = duration * (_focusTargetScaleY - _focusScaleY); + } + + if (_focusDirty || _focusPosX != _focusTargetPosX || _focusPosY != _focusTargetPosY || + _focusScaleX != _focusTargetScaleX || _focusScaleY != _focusTargetScaleY) { + _focusDirty = false; + + if ((_focusStepPosX > 0 && _focusPosX > _focusTargetPosX) || (_focusStepPosX < 0 && _focusPosX < _focusTargetPosX)) + _focusPosX = _focusTargetPosX; + else if (_focusPosX != _focusTargetPosX) + _focusPosX += _focusStepPosX; + + if ((_focusStepPosY > 0 && _focusPosY > _focusTargetPosY) || (_focusStepPosY < 0 && _focusPosY < _focusTargetPosY)) + _focusPosY = _focusTargetPosY; + else if (_focusPosY != _focusTargetPosY) + _focusPosY += _focusStepPosY; + + if ((_focusStepScaleX > 0 && _focusScaleX > _focusTargetScaleX) || (_focusStepScaleX < 0 && _focusScaleX < _focusTargetScaleX)) + _focusScaleX = _focusTargetScaleX; + else if (_focusScaleX != _focusTargetScaleX) + _focusScaleX += _focusStepScaleX; + + if ((_focusStepScaleY > 0 && _focusScaleY > _focusTargetScaleY) || (_focusStepScaleY < 0 && _focusScaleY < _focusTargetScaleY)) + _focusScaleY = _focusTargetScaleY; + else if (_focusScaleY != _focusTargetScaleY) + _focusScaleY += _focusStepScaleY; + + Mtx_Identity(&_focusMatrix); + Mtx_Translate(&_focusMatrix, -_focusPosX, -_focusPosY, 0); + Mtx_Scale(&_focusMatrix, _focusScaleX, _focusScaleY, 1.f); + } +} + +void OSystem_3DS::showOverlay() { + _overlayVisible = true; + updateSize(); + updateScreen(); +} + +void OSystem_3DS::hideOverlay() { + _overlayVisible = false; + updateSize(); + updateScreen(); +} + +Graphics::PixelFormat OSystem_3DS::getOverlayFormat() const { + return _pfGameTexture; +} + +void OSystem_3DS::clearOverlay() { + _overlay.clear(); +} + +void OSystem_3DS::grabOverlay(void *buf, int pitch) { + for (int y = 0; y < getOverlayHeight(); ++y) { + memcpy(buf, _overlay.getBasePtr(0, y), pitch); + } +} + +void OSystem_3DS::copyRectToOverlay(const void *buf, int pitch, int x, + int y, int w, int h) { + _overlay.copyRectToSurface(buf, pitch, x, y, w, h); + _overlay.markDirty(); +} + +int16 OSystem_3DS::getOverlayHeight() { + return 240; +} + +int16 OSystem_3DS::getOverlayWidth() { + return 320; +} + +bool OSystem_3DS::showMouse(bool visible) { + _cursorVisible = visible; + flushCursor(); + return !visible; +} + +void OSystem_3DS::warpMouse(int x, int y) { + _cursorX = x; + _cursorY = y; + warning("x:%d y:%d", x, y); + // TODO: adjust for _cursorScalable ? + int offsetx = 0; + int offsety = 0; + x -= _cursorHotspotX; + y -= _cursorHotspotY; + if (!_overlayVisible) { + offsetx += config.screen == kScreenTop ? _gameTopX : _gameBottomX; + offsety += config.screen == kScreenTop ? _gameTopY : _gameBottomY; + } + float scalex = config.screen == kScreenTop ? (float)_gameTopTexture.actualWidth / _gameWidth : 1.f; + float scaley = config.screen == kScreenTop ? (float)_gameTopTexture.actualHeight / _gameHeight : 1.f; + _cursorTexture.setPosition(scalex * x + offsetx, + scaley * y + offsety); +} + +void OSystem_3DS::setCursorDelta(float deltaX, float deltaY) { + _cursorDeltaX = deltaX; + _cursorDeltaY = deltaY; +} + +void OSystem_3DS::setMouseCursor(const void *buf, uint w, uint h, + int hotspotX, int hotspotY, + uint32 keycolor, bool dontScale, + const Graphics::PixelFormat *format) { + _cursorScalable = !dontScale; + _cursorHotspotX = hotspotX; + _cursorHotspotY = hotspotY; + _cursorKeyColor = keycolor; + _pfCursor = !format ? Graphics::PixelFormat::createFormatCLUT8() : *format; + + if (w != _cursor.w || h != _cursor.h || _cursor.format != _pfCursor) { + _cursor.create(w, h, _pfCursor); + _cursorTexture.create(w, h, _pfGameTexture); + } + + _cursor.copyRectToSurface(buf, w, 0, 0, w, h); + flushCursor(); + + warpMouse(_cursorX, _cursorY); +} + +void OSystem_3DS::setCursorPalette(const byte *colors, uint start, uint num) { + assert(start + num <= 256); + memcpy(_cursorPalette + 3 * start, colors, 3 * num); + _cursorPaletteEnabled = true; + flushCursor(); +} + +void OSystem_3DS::flushCursor() { + if (_cursor.getPixels()) { + Graphics::Surface *converted = _cursor.convertTo(_pfGameTexture, _cursorPaletteEnabled ? _cursorPalette : _palette); + _cursorTexture.copyRectToSurface(*converted, 0, 0, Common::Rect(converted->w, converted->h)); + _cursorTexture.markDirty(); + converted->free(); + delete converted; + + if (_pfCursor.bytesPerPixel == 1) { + uint* dest = (uint*) _cursorTexture.getPixels(); + byte* src = (byte*) _cursor.getPixels(); + for (int y = 0; y < _cursor.h; ++y) { + for (int x = 0; x < _cursor.w; ++x) { + if (*src++ == _cursorKeyColor) + *dest++ = 0; + else + dest++; + } + dest += _cursorTexture.w - _cursorTexture.actualWidth; + } + } + } +} + +} // namespace _3DS diff --git a/backends/platform/3ds/osystem.cpp b/backends/platform/3ds/osystem.cpp new file mode 100644 index 0000000000..f6278eb16b --- /dev/null +++ b/backends/platform/3ds/osystem.cpp @@ -0,0 +1,193 @@ +/* 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. + * + */ + +#define FORBIDDEN_SYMBOL_EXCEPTION_printf +#define FORBIDDEN_SYMBOL_EXCEPTION_time_h +#define FORBIDDEN_SYMBOL_EXCEPTION_unistd_h + +#include "osystem.h" + +#include "backends/saves/default/default-saves.h" +#include "backends/timer/default/default-timer.h" +#include "backends/events/default/default-events.h" +#include "audio/mixer_intern.h" +#include "common/scummsys.h" +#include "common/config-manager.h" +#include "common/str.h" +#include "config.h" + +#include "backends/fs/posix/posix-fs-factory.h" +#include "backends/fs/posix/posix-fs.h" +#include <unistd.h> +#include <time.h> + +namespace _3DS { + +OSystem_3DS::OSystem_3DS(): + _focusDirty(true), + _focusRect(Common::Rect(1, 1)), + _focusPosX(0), + _focusPosY(0), + _focusTargetPosX(0), + _focusTargetPosY(0), + _focusStepPosX(0), + _focusStepPosY(0), + _focusScaleX(1.f), + _focusScaleY(1.f), + _focusTargetScaleX(1.f), + _focusTargetScaleY(1.f), + _focusStepScaleX(0.f), + _focusStepScaleY(0.f), + _focusClearTime(0), + _cursorPaletteEnabled(false), + _cursorVisible(false), + _cursorScalable(false), + _cursorX(0), + _cursorY(0), + _cursorHotspotX(0), + _cursorHotspotY(0), + _gameTopX(0), + _gameTopY(0), + _gameBottomX(0), + _gameBottomY(0), + _gameWidth(320), + _gameHeight(240), + _overlayVisible(false), + exiting(false), + sleeping(false) +{ + chdir("sdmc:/"); + _fsFactory = new POSIXFilesystemFactory(); + Posix::assureDirectoryExists("/3ds/scummvm/saves/"); +} + +OSystem_3DS::~OSystem_3DS() { + exiting = true; + destroyEvents(); + destroyAudio(); + destroyGraphics(); + + delete _timerManager; + _timerManager = 0; +} + +void OSystem_3DS::quit() { + printf("OSystem_3DS::quit()\n"); +} + +void OSystem_3DS::initBackend() { + loadConfig(); + ConfMan.registerDefault("fullscreen", true); + ConfMan.registerDefault("aspect_ratio", true); + if (!ConfMan.hasKey("vkeybd_pack_name")) + ConfMan.set("vkeybd_pack_name", "vkeybd_small"); + if (!ConfMan.hasKey("vkeybdpath")) + ConfMan.set("vkeybdpath", "/3ds/scummvm/kb"); + if (!ConfMan.hasKey("themepath")) + ConfMan.set("themepath", "/3ds/scummvm"); + if (!ConfMan.hasKey("gui_theme")) + ConfMan.set("gui_theme", "builtin"); + + _timerManager = new DefaultTimerManager(); + _savefileManager = new DefaultSaveFileManager("/3ds/scummvm/saves/"); + + initGraphics(); + initAudio(); + initEvents(); + EventsBaseBackend::initBackend(); +} + +void OSystem_3DS::updateConfig() { + if (_gameScreen.getPixels()) { + updateSize(); + warpMouse(_cursorX, _cursorY); + } +} + +Common::String OSystem_3DS::getDefaultConfigFileName() { + return "/3ds/scummvm/scummvm.ini"; +} + +uint32 OSystem_3DS::getMillis(bool skipRecord) { + return svcGetSystemTick() / TICKS_PER_MSEC; +} + +void OSystem_3DS::delayMillis(uint msecs) { + svcSleepThread(msecs * 1000000); +} + +void OSystem_3DS::getTimeAndDate(TimeDate& td) const { + time_t curTime = time(0); + struct tm t = *localtime(&curTime); + td.tm_sec = t.tm_sec; + td.tm_min = t.tm_min; + td.tm_hour = t.tm_hour; + td.tm_mday = t.tm_mday; + td.tm_mon = t.tm_mon; + td.tm_year = t.tm_year; + td.tm_wday = t.tm_wday; +} + +OSystem::MutexRef OSystem_3DS::createMutex() { + RecursiveLock *mutex = new RecursiveLock(); + RecursiveLock_Init(mutex); + return (OSystem::MutexRef) mutex; +} +void OSystem_3DS::lockMutex(MutexRef mutex) { + RecursiveLock_Lock((RecursiveLock*)mutex); +} +void OSystem_3DS::unlockMutex(MutexRef mutex) { + RecursiveLock_Unlock((RecursiveLock*)mutex); +} +void OSystem_3DS::deleteMutex(MutexRef mutex) { + delete (RecursiveLock*)mutex; +} + +Common::String OSystem_3DS::getSystemLanguage() const { + u8 langcode; + CFGU_GetSystemLanguage(&langcode); + switch (langcode) { + case CFG_LANGUAGE_JP: return "ja_JP"; + case CFG_LANGUAGE_EN: return "en_US"; + case CFG_LANGUAGE_FR: return "fr_FR"; + case CFG_LANGUAGE_DE: return "de_DE"; + case CFG_LANGUAGE_IT: return "it_IT"; + case CFG_LANGUAGE_ES: return "es_ES"; + case CFG_LANGUAGE_ZH: return "zh_CN"; + case CFG_LANGUAGE_KO: return "ko_KR"; + case CFG_LANGUAGE_NL: return "nl_NL"; + case CFG_LANGUAGE_PT: return "pt_BR"; + case CFG_LANGUAGE_RU: return "ru_RU"; + case CFG_LANGUAGE_TW: return "zh_HK"; + default: return "en_US"; + } +} + +void OSystem_3DS::fatalError() { + printf("FatalError!\n"); +} + +void OSystem_3DS::logMessage(LogMessageType::Type type, const char *message) { + printf("3DS log: %s\n", message); +} + +} // namespace _3DS diff --git a/backends/platform/3ds/osystem.h b/backends/platform/3ds/osystem.h new file mode 100644 index 0000000000..478085acba --- /dev/null +++ b/backends/platform/3ds/osystem.h @@ -0,0 +1,221 @@ +/* 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 PLATFORM_3DS_H +#define PLATFORM_3DS_H + +#include <citro3d.h> +#include "backends/mutex/mutex.h" +#include "backends/base-backend.h" +#include "graphics/palette.h" +#include "base/main.h" +#include "audio/mixer_intern.h" +#include "backends/graphics/graphics.h" +#include "backends/platform/3ds/sprite.h" +#include "common/rect.h" +#include "common/queue.h" + +#define TICKS_PER_MSEC 268123 + +namespace _3DS { + +enum { + GFX_LINEAR = 0, + GFX_NEAREST = 1 +}; + +enum InputMode { + MODE_HOVER, + MODE_DRAG, +}; + +static const OSystem::GraphicsMode s_graphicsModes[] = { + {"default", "Default Test", GFX_LINEAR}, + { 0, 0, 0 } +}; + +class OSystem_3DS : public EventsBaseBackend, public PaletteManager { +public: + OSystem_3DS(); + virtual ~OSystem_3DS(); + + volatile bool exiting; + volatile bool sleeping; + + virtual void initBackend(); + + virtual bool hasFeature(OSystem::Feature f); + virtual void setFeatureState(OSystem::Feature f, bool enable); + virtual bool getFeatureState(OSystem::Feature f); + + virtual bool pollEvent(Common::Event &event); + + virtual uint32 getMillis(bool skipRecord = false); + virtual void delayMillis(uint msecs); + virtual void getTimeAndDate(TimeDate &t) const; + + virtual MutexRef createMutex(); + virtual void lockMutex(MutexRef mutex); + virtual void unlockMutex(MutexRef mutex); + virtual void deleteMutex(MutexRef mutex); + + virtual void logMessage(LogMessageType::Type type, const char *message); + + virtual Audio::Mixer *getMixer(); + virtual PaletteManager *getPaletteManager() { return this; } + virtual Common::String getSystemLanguage() const; + virtual void fatalError(); + virtual void quit(); + + virtual Common::String getDefaultConfigFileName(); + + // Graphics + virtual const OSystem::GraphicsMode *getSupportedGraphicsModes() const; + int getDefaultGraphicsMode() const; + bool setGraphicsMode(int mode); + void resetGraphicsScale(); + int getGraphicsMode() const; + inline Graphics::PixelFormat getScreenFormat() const { return _pfGame; } + virtual Common::List<Graphics::PixelFormat> getSupportedFormats() const; + void initSize(uint width, uint height, + const Graphics::PixelFormat *format = NULL); + virtual int getScreenChangeID() const { return 0; }; + + void beginGFXTransaction(); + OSystem::TransactionError endGFXTransaction(); + int16 getHeight(){ return _gameHeight; } + int16 getWidth(){ return _gameWidth; } + void setPalette(const byte *colors, uint start, uint num); + void grabPalette(byte *colors, uint start, uint num); + void copyRectToScreen(const void *buf, int pitch, int x, int y, int w, + int h); + Graphics::Surface *lockScreen(); + void unlockScreen(); + void updateScreen(); + void setShakePos(int shakeOffset); + void setFocusRectangle(const Common::Rect &rect); + void clearFocusRectangle(); + void showOverlay(); + void hideOverlay(); + Graphics::PixelFormat getOverlayFormat() const; + void clearOverlay(); + void grabOverlay(void *buf, int pitch); + void copyRectToOverlay(const void *buf, int pitch, int x, int y, int w, + int h); + virtual int16 getOverlayHeight(); + virtual int16 getOverlayWidth(); + virtual void displayMessageOnOSD(const char *msg); + + bool showMouse(bool visible); + void warpMouse(int x, int y); + void setMouseCursor(const void *buf, uint w, uint h, int hotspotX, + int hotspotY, uint32 keycolor, bool dontScale = false, + const Graphics::PixelFormat *format = NULL); + void setCursorPalette(const byte *colors, uint start, uint num); + + // Transform point from touchscreen coords into gamescreen coords + void transformPoint(touchPosition &point); + + void setCursorDelta(float deltaX, float deltaY); + + void updateFocus(); + void updateConfig(); + void updateSize(); + +private: + void initGraphics(); + void destroyGraphics(); + void initAudio(); + void destroyAudio(); + void initEvents(); + void destroyEvents(); + + void flushGameScreen(); + void flushCursor(); + +protected: + Audio::MixerImpl *_mixer; + +private: + u16 _gameWidth, _gameHeight; + u16 _gameTopX, _gameTopY; + u16 _gameBottomX, _gameBottomY; + + // Audio + Thread audioThread; + + // Graphics + Graphics::PixelFormat _pfGame; + Graphics::PixelFormat _pfGameTexture; + Graphics::PixelFormat _pfCursor; + byte _palette[3 * 256]; + byte _cursorPalette[3 * 256]; + + Graphics::Surface _gameScreen; + Sprite _gameTopTexture; + Sprite _gameBottomTexture; + Sprite _overlay; + + int _screenShakeOffset; + bool _overlayVisible; + + DVLB_s *_dvlb; + shaderProgram_s _program; + int _projectionLocation; + int _modelviewLocation; + C3D_Mtx _projectionTop; + C3D_Mtx _projectionBottom; + C3D_RenderTarget* _renderTargetTop; + C3D_RenderTarget* _renderTargetBottom; + + // Focus + Common::Rect _focusRect; + bool _focusDirty; + C3D_Mtx _focusMatrix; + int _focusPosX, _focusPosY; + int _focusTargetPosX, _focusTargetPosY; + float _focusStepPosX, _focusStepPosY; + float _focusScaleX, _focusScaleY; + float _focusTargetScaleX, _focusTargetScaleY; + float _focusStepScaleX, _focusStepScaleY; + uint32 _focusClearTime; + + // Events + Thread _eventThread; + Thread _timerThread; + Common::Queue<Common::Event> _eventQueue; + + // Cursor + Graphics::Surface _cursor; + Sprite _cursorTexture; + bool _cursorPaletteEnabled; + bool _cursorVisible; + bool _cursorScalable; + float _cursorX, _cursorY; + float _cursorDeltaX, _cursorDeltaY; + int _cursorHotspotX, _cursorHotspotY; + uint32 _cursorKeyColor; +}; + +} // namespace _3DS + +#endif diff --git a/backends/platform/3ds/shader.v.pica b/backends/platform/3ds/shader.v.pica new file mode 100644 index 0000000000..2d18985622 --- /dev/null +++ b/backends/platform/3ds/shader.v.pica @@ -0,0 +1,59 @@ +;* 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. +;* + +; Uniforms +.fvec projection[4], modelView[4] + +; Constants +.constf myconst(0.0, 1.0, -1.0, 0.1) +.alias zeros myconst.xxxx ; Vector full of zeros +.alias ones myconst.yyyy ; Vector full of ones + +; Outputs +.out outpos position +.out outtex texcoord0 + +; Inputs (defined as aliases for convenience) +.alias inpos v0 +.alias intex v1 + +.proc main + ; Force the w component of inpos to be 1.0 + mov r0.xyz, inpos + mov r0.w, ones + + ; r1 = modelView * inpos + dp4 r1.x, modelView[0], r0 + dp4 r1.y, modelView[1], r0 + dp4 r1.z, modelView[2], r0 + dp4 r1.w, modelView[3], r0 + + ; outpos = projection * r1 + dp4 outpos.x, projection[0], r1 + dp4 outpos.y, projection[1], r1 + dp4 outpos.z, projection[2], r1 + dp4 outpos.w, projection[3], r1 + + mov outtex, intex + + end +.end + diff --git a/backends/platform/3ds/sprite.cpp b/backends/platform/3ds/sprite.cpp new file mode 100644 index 0000000000..a0aee385a9 --- /dev/null +++ b/backends/platform/3ds/sprite.cpp @@ -0,0 +1,144 @@ +/* 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 "backends/platform/3ds/sprite.h" +#include "common/util.h" +#include <3ds.h> + +static uint nextHigher2(uint v) { + if (v == 0) + return 1; + v--; + v |= v >> 1; + v |= v >> 2; + v |= v >> 4; + v |= v >> 8; + v |= v >> 16; + return ++v; +} + +Sprite::Sprite() + : dirtyPixels(true) + , dirtyMatrix(true) + , actualWidth(0) + , actualHeight(0) + , posX(0) + , posY(0) + , scaleX(1.f) + , scaleY(1.f) +{ + Mtx_Identity(&modelview); + + vertices = (vertex *)linearAlloc(sizeof(vertex) * 4); +} + +Sprite::~Sprite() { + // +} + +void Sprite::create(uint16 width, uint16 height, const Graphics::PixelFormat &f) { + free(); + + actualWidth = width; + actualHeight = height; + format = f; + w = MAX(nextHigher2(width), 64u); + h = MAX(nextHigher2(height), 64u);; + pitch = w * format.bytesPerPixel; + dirtyPixels = true; + + if (width && height) { + pixels = linearAlloc(h * pitch); + C3D_TexInit(&texture, w, h, GPU_RGBA8); + C3D_TexSetFilter(&texture, GPU_LINEAR, GPU_LINEAR); + assert(pixels && texture.data); + clear(); + } + + float x = 0.f, y = 0.f; + float u = (float)width/w; + float v = (float)height/h; + vertex tmp[4] = { + {{x, y, 0.5f}, {0, 0}}, + {{x+width, y, 0.5f}, {u, 0}}, + {{x, y+height, 0.5f}, {0, v}}, + {{x+width, y+height, 0.5f}, {u, v}}, + }; + memcpy(vertices, tmp, sizeof(vertex) * 4); +} + + +void Sprite::free() { + linearFree(vertices); + linearFree(pixels); + C3D_TexDelete(&texture); + pixels = 0; + w = h = pitch = 0; + actualWidth = actualHeight = 0; + format = Graphics::PixelFormat(); +} + +void Sprite::convertToInPlace(const Graphics::PixelFormat &dstFormat, const byte *palette) { + // +} + +void Sprite::render() { + if (dirtyPixels) { + dirtyPixels = false; + GSPGPU_FlushDataCache(pixels, w * h * format.bytesPerPixel); + C3D_SafeDisplayTransfer((u32*)pixels, GX_BUFFER_DIM(w, h), (u32*)texture.data, GX_BUFFER_DIM(w, h), TEXTURE_TRANSFER_FLAGS); + gspWaitForPPF(); + } + C3D_TexBind(0, &texture); + + C3D_BufInfo *bufInfo = C3D_GetBufInfo(); + BufInfo_Init(bufInfo); + BufInfo_Add(bufInfo, vertices, sizeof(vertex), 2, 0x10); + C3D_DrawArrays(GPU_TRIANGLE_STRIP, 0, 4); +} + +void Sprite::clear(uint32 color) { + dirtyPixels = true; + memset(pixels, color, w * h * format.bytesPerPixel); +} + +void Sprite::setScale (float x, float y) { + scaleX = x; + scaleY = y; + dirtyMatrix = true; +} + +void Sprite::setPosition(int x, int y) { + posX = x; + posY = y; + dirtyMatrix = true; +} + +C3D_Mtx* Sprite::getMatrix() { + if (dirtyMatrix) { + dirtyMatrix = false; + Mtx_Identity(&modelview); + Mtx_Scale(&modelview, scaleX, scaleY, 1.f); + Mtx_Translate(&modelview, posX, posY, 0); + } + return &modelview; +} diff --git a/backends/platform/3ds/sprite.h b/backends/platform/3ds/sprite.h new file mode 100644 index 0000000000..6d88ae4ce1 --- /dev/null +++ b/backends/platform/3ds/sprite.h @@ -0,0 +1,71 @@ +/* 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 GRAPHICS_SPRITE_3DS_H +#define GRAPHICS_SPRITE_3DS_H + +#include <citro3d.h> +#include "graphics/surface.h" + +#define TEXTURE_TRANSFER_FLAGS \ + (GX_TRANSFER_FLIP_VERT(1) | GX_TRANSFER_OUT_TILED(1) | GX_TRANSFER_RAW_COPY(0) | \ + GX_TRANSFER_IN_FORMAT(GX_TRANSFER_FMT_RGBA8) | GX_TRANSFER_OUT_FORMAT(GX_TRANSFER_FMT_RGBA8) | \ + GX_TRANSFER_SCALING(GX_TRANSFER_SCALE_NO)) + +typedef struct { + float position[3]; + float texcoord[2]; +} vertex; + +class Sprite : public Graphics::Surface { +public: + Sprite(); + ~Sprite(); + void create(uint16 width, uint16 height, const Graphics::PixelFormat &format); + void free(); + void convertToInPlace(const Graphics::PixelFormat &dstFormat, const byte *palette = 0); + void render(); + void clear(uint32 color = 0); + void markDirty(){ dirtyPixels = true; } + + void setPosition(int x, int y); + void setScale(float x, float y); + float getScaleX(){ return scaleX; } + float getScaleY(){ return scaleY; } + C3D_Mtx* getMatrix(); + + uint16 actualWidth; + uint16 actualHeight; + +private: + bool dirtyPixels; + bool dirtyMatrix; + C3D_Mtx modelview; + C3D_Tex texture; + vertex* vertices; + int posX; + int posY; + float scaleX; + float scaleY; +}; + +#endif diff --git a/backends/platform/dc/dc.h b/backends/platform/dc/dc.h index b567142b8f..6cd938ec9c 100644 --- a/backends/platform/dc/dc.h +++ b/backends/platform/dc/dc.h @@ -63,7 +63,7 @@ public: bool isPlaying() const; // Play cdrom audio track - void play(int track, int numLoops, int startFrame, int duration, bool onlyEmulate = false); + bool play(int track, int numLoops, int startFrame, int duration, bool onlyEmulate = false); // Stop cdrom audio track void stop(); diff --git a/backends/platform/dc/dcmain.cpp b/backends/platform/dc/dcmain.cpp index bd66b81b35..c84aef9c47 100644 --- a/backends/platform/dc/dcmain.cpp +++ b/backends/platform/dc/dcmain.cpp @@ -90,12 +90,18 @@ static bool find_track(int track, int &first_sec, int &last_sec) return false; } -void DCCDManager::play(int track, int numLoops, int startFrame, int duration, bool onlyEmulate) { +bool DCCDManager::play(int track, int numLoops, int startFrame, int duration, bool onlyEmulate) { DefaultAudioCDManager::play(track, numLoops, startFrame, duration, onlyEmulate); - // If we're playing now, are set to only emulate, return here - if (isPlaying() || onlyEmulate) - return; + // If we're playing now return here + if (isPlaying()) { + return true; + } + + // If we should only play emulated tracks stop here. + if (onlyEmulate) { + return false; + } int firstSec, lastSec; #if 1 @@ -106,16 +112,18 @@ void DCCDManager::play(int track, int numLoops, int startFrame, int duration, bo if (numLoops > 14) numLoops = 14; else if (numLoops < 0) - num_loops = 15; // infinity + numLoops = 15; // infinity if (!find_track(track, firstSec, lastSec)) - return; + return false; if (duration) lastSec = firstSec + startFrame + duration; - firstSec += startFrame; + firstSec += startFrame; play_cdda_sectors(firstSec, lastSec, numLoops); + + return true; } void DCCDManager::stop() { diff --git a/backends/platform/dingux/README.GCW0 b/backends/platform/dingux/README.GCW0 index 1875e5323a..1b7e30e266 100644 --- a/backends/platform/dingux/README.GCW0 +++ b/backends/platform/dingux/README.GCW0 @@ -24,3 +24,12 @@ It's pretty simple if you are running Linux on an x86/amd64 machine: 3. Run backends/platform/dingux/build.gcw0.sh script 4. Copy the resulting file scummvm.opk to your device 5. Enjoy + +Troubleshooting +=============== +In case you need to submit a bugreport, you may find the log file at the +following path: + + /var/tmp/scummvm.log + +The log file is being overwritten at every ScummVM run. diff --git a/backends/platform/dingux/build.gcw0.sh b/backends/platform/dingux/build.gcw0.sh index c1a4fa29c2..7a31d4fd27 100755 --- a/backends/platform/dingux/build.gcw0.sh +++ b/backends/platform/dingux/build.gcw0.sh @@ -3,4 +3,4 @@ export PATH=/opt/gcw0-toolchain/usr/bin:$PATH # Disable high resolution engines since we have 320x240 hardware -./configure --host=gcw0 --enable-plugins --default-dynamic --enable-release --disable-mt32emu --disable-hq-scalers && make -j6 gcw-opk && ls -l scummvm.opk +./configure --host=gcw0 --enable-plugins --default-dynamic --enable-release && make -j6 gcw-opk && ls -l scummvm.opk diff --git a/backends/platform/dingux/dingux.mk b/backends/platform/dingux/dingux.mk index 56c26c3be1..dc87e41241 100644 --- a/backends/platform/dingux/dingux.mk +++ b/backends/platform/dingux/dingux.mk @@ -59,19 +59,20 @@ endif echo >> $(gcw0_bundle)/README.man.txt echo '[General README]' >> $(gcw0_bundle)/README.man.txt echo >> $(gcw0_bundle)/README.man.txt - cat README >> $(gcw0_bundle)/README.man.txt + cat $(srcdir)/README | sed -e 's/\[/ā¦/g' -e 's/\]/ā§/g' -e '/^1\.1)/,$$ s/^[0-9][0-9]*\.[0-9][0-9]*.*/\[&\]/' >> $(gcw0_bundle)/README.man.txt + # $(CP) GeneralUser\ GS\ FluidSynth\ v1.44.sf2 $(gcw0_bundle)/ gcw0-opk-unstripped: $(gcw0_bundle) $(CP) $(PLUGINS) $(gcw0_bundle)/plugins/ $(CP) $(EXECUTABLE) $(gcw0_bundle)/scummvm - ./dists/gcw0/opk_make.sh -d $(gcw0_bundle) -o scummvm + $(srcdir)/dists/gcw0/opk_make.sh -d $(gcw0_bundle) -o scummvm gcw-opk: $(gcw0_bundle) $(STRIP) $(gcw0_bundle)/plugins/* $(STRIP) $(gcw0_bundle)/scummvm - ./dists/gcw0/opk_make.sh -d $(gcw0_bundle) -o scummvm + $(srcdir)/dists/gcw0/opk_make.sh -d $(gcw0_bundle) -o scummvm GeneralUser_GS_1.44-FluidSynth.zip: curl -s http://www.scummvm.org/frs/extras/SoundFont/GeneralUser_GS_1.44-FluidSynth.zip -o GeneralUser_GS_1.44-FluidSynth.zip diff --git a/backends/platform/sdl/amigaos/amigaos-main.cpp b/backends/platform/sdl/amigaos/amigaos-main.cpp index 65da6bbf85..7bbf8d1fff 100644 --- a/backends/platform/sdl/amigaos/amigaos-main.cpp +++ b/backends/platform/sdl/amigaos/amigaos-main.cpp @@ -24,13 +24,44 @@ #if defined(__amigaos4__) +#include "backends/fs/amigaos4/amigaos4-fs.h" #include "backends/platform/sdl/amigaos/amigaos.h" #include "backends/plugins/sdl/sdl-provider.h" #include "base/main.h" int main(int argc, char *argv[]) { - // Set up a stack cookie to avoid crashes due to too few stack set by users + // The following will gather the application name and add the install path + // to a variable in AmigaOS4's ENV(ARC) system. It will be placed in AppPaths + // so that ScummVM can become AmiUpdate aware + const char *const appname = "ScummVM"; + + BPTR lock; + APTR oldwin; + + // Obtain a lock to the home directory + if ((lock = IDOS->GetProgramDir())) { + TEXT progpath[2048]; + TEXT apppath[1024] = "AppPaths"; + + if (IDOS->DevNameFromLock(lock, + progpath, + sizeof(progpath), + DN_FULLPATH)) { + + // Stop any "Insert volume..." type requesters + oldwin = IDOS->SetProcWindow((APTR)-1); + + // Finally, set the variable to the path the executable was run from + IDOS->AddPart( apppath, appname, 1024); + IDOS->SetVar( apppath, progpath, -1, GVF_GLOBAL_ONLY|GVF_SAVE_VAR ); + + // Turn system requesters back on + IDOS->SetProcWindow( oldwin ); + } + } + + // Set up a stack cookie to avoid crashes from a stack set too low static const char *stack_cookie __attribute__((used)) = "$STACK: 600000"; // Create our OSystem instance @@ -44,7 +75,7 @@ int main(int argc, char *argv[]) { PluginManager::instance().addPluginProvider(new SDLPluginProvider()); #endif - // Invoke the actual ScummVM main entry point: + // Invoke the actual ScummVM main entry point int res = scummvm_main(argc, argv); // Free OSystem diff --git a/backends/platform/symbian/src/portdefs.h b/backends/platform/symbian/src/portdefs.h index f9da09d3eb..e2465e4767 100644 --- a/backends/platform/symbian/src/portdefs.h +++ b/backends/platform/symbian/src/portdefs.h @@ -65,7 +65,8 @@ typedef signed long int int32; #undef remove #endif -#define SMALL_SCREEN_DEVICE +#define GUI_ONLY_FULLSCREEN +#define GUI_ENABLE_KEYSDIALOG #define DISABLE_COMMAND_LINE #define USE_RGB_COLOR diff --git a/backends/platform/wince/portdefs.h b/backends/platform/wince/portdefs.h index 3304ee0893..c74fc39169 100644 --- a/backends/platform/wince/portdefs.h +++ b/backends/platform/wince/portdefs.h @@ -30,7 +30,8 @@ // Missing string/stdlib/assert declarations for WinCE 2.xx #if _WIN32_WCE < 300 - #define SMALL_SCREEN_DEVICE + #define GUI_ONLY_FULLSCREEN + #define GUI_ENABLE_KEYSDIALOG void *calloc(size_t n, size_t s); int isalnum(int c); diff --git a/backends/taskbar/macosx/dockplugin/dockplugin.m b/backends/taskbar/macosx/dockplugin/dockplugin.m new file mode 100644 index 0000000000..9d864ef2a8 --- /dev/null +++ b/backends/taskbar/macosx/dockplugin/dockplugin.m @@ -0,0 +1,125 @@ +/* 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 <Cocoa/Cocoa.h> + +@interface ScummVMDockTilePlugIn : NSObject <NSDockTilePlugIn> { + NSMenu *recentGamesMenu; +} +@end + +@interface StartGameMenuItem : NSMenuItem { + NSString *game; +} +- (IBAction) startGame; +- (NSMenuItem*)initWithGame:(NSString *)gameId description:(NSString*)desc icon:(NSString*)iconFile; +@end + +@implementation ScummVMDockTilePlugIn + +- (id)init { + self = [super init]; + if (self) { + recentGamesMenu = nil; + } + return self; +} + +- (void)dealloc { + [recentGamesMenu release]; + [super dealloc]; +} + + +- (void)setDockTile:(NSDockTile *)dockTile { +} + +- (NSMenu*)dockMenu { + // Get the list or recent games + CFPreferencesAppSynchronize(CFSTR("org.scummvm.scummvm")); + NSArray *array = CFPreferencesCopyAppValue(CFSTR("recentGames"), CFSTR("org.scummvm.scummvm")); + if (array == nil) + return nil; + + // Create the menu + if (recentGamesMenu == nil) + recentGamesMenu = [[NSMenu alloc] init]; + else + [recentGamesMenu removeAllItems]; + + NSEnumerator *enumerator = [array objectEnumerator]; + NSDictionary *recentGame; + while (recentGame = [enumerator nextObject]) { + NSString *gameId = [recentGame valueForKey:@"game"]; + NSString *desc = [recentGame valueForKey:@"description"]; + NSString *iconFile = [recentGame valueForKey:@"icon"]; + + StartGameMenuItem *menuItem = [[StartGameMenuItem alloc] initWithGame:gameId description:desc icon:iconFile]; + [recentGamesMenu addItem:menuItem]; + [menuItem release]; + } + + return recentGamesMenu; +} + +@end + +@implementation StartGameMenuItem + +- (NSMenuItem*)initWithGame:(NSString *)gameId description:(NSString*)desc icon:(NSString*)iconFile { + self = [super initWithTitle:(desc == nil ? gameId : desc) action:@selector(startGame) keyEquivalent:@""]; + [self setTarget:self]; + + if (iconFile != nil) { + NSImage *image = [[NSImage alloc] initWithContentsOfFile:iconFile]; + [self setImage:image]; + [image release]; + } + + game = gameId; + [game retain]; + + return self; +} + +- (void)dealloc { + [game release]; + [super dealloc]; +} + +- (IBAction) startGame { + NSLog(@"Starting Game %@...", game); + + NSString *scummVMPath = [[NSWorkspace sharedWorkspace] absolutePathForAppBundleWithIdentifier:@"org.scummvm.scummvm"]; + if (scummVMPath == nil) { + NSLog(@"Cannot find ScummVM.app!"); + return; + } + // Start ScummVM.app with the game ID as argument + NSURL *url = [NSURL fileURLWithPath:scummVMPath]; + NSMutableDictionary *args = [[NSMutableDictionary alloc] init]; + [args setObject:[NSArray arrayWithObject:game] forKey:NSWorkspaceLaunchConfigurationArguments]; + [[NSWorkspace sharedWorkspace] launchApplicationAtURL:url options:NSWorkspaceLaunchDefault configuration:args error:nil]; + [args release]; +} + +@end diff --git a/backends/taskbar/macosx/macosx-taskbar.h b/backends/taskbar/macosx/macosx-taskbar.h index 5d5b9d02cd..55bb97a691 100644 --- a/backends/taskbar/macosx/macosx-taskbar.h +++ b/backends/taskbar/macosx/macosx-taskbar.h @@ -37,6 +37,7 @@ public: virtual void setProgressValue(int completed, int total); virtual void setProgressState(TaskbarProgressState state); virtual void setCount(int count); + virtual void addRecent(const Common::String &name, const Common::String &description); virtual void notifyError(); virtual void clearError(); diff --git a/backends/taskbar/macosx/macosx-taskbar.mm b/backends/taskbar/macosx/macosx-taskbar.mm index ae087dfb85..577320b79d 100644 --- a/backends/taskbar/macosx/macosx-taskbar.mm +++ b/backends/taskbar/macosx/macosx-taskbar.mm @@ -29,9 +29,6 @@ // NSDockTile was introduced with Mac OS X 10.5. // Try provide backward compatibility by avoiding NSDockTile symbols. -// TODO: Implement recent list, maybe as a custom menu on dock tile when app is not running -// See Dock Tile plug-in at https://developer.apple.com/library/mac/documentation/Carbon/Conceptual/customizing_docktile/CreatingaDockTilePlug-in/CreatingaDockTilePlug-in.html - #include "backends/taskbar/macosx/macosx-taskbar.h" #include "common/config-manager.h" #include "common/file.h" @@ -39,6 +36,9 @@ #include <AppKit/NSApplication.h> #include <AppKit/NSImage.h> #include <Foundation/NSString.h> +#include <Foundation/NSDictionary.h> +#include <Foundation/NSArray.h> +#include <Foundation/NSUserDefaults.h> #include <AppKit/NSImageView.h> #include <AppKit/NSColor.h> #include <AppKit/NSBezierPath.h> @@ -120,7 +120,7 @@ void MacOSXTaskbarManager::setOverlayIcon(const Common::String &name, const Comm initOverlayIconView(); CFStringRef imageFile = CFStringCreateWithCString(0, path.c_str(), kCFStringEncodingASCII); - NSImage* image = [[NSImage alloc] initWithContentsOfFile:(NSString *)imageFile]; + NSImage *image = [[NSImage alloc] initWithContentsOfFile:(NSString *)imageFile]; [_overlayIconView setImage:image]; [image release]; CFRelease(imageFile); @@ -234,5 +234,64 @@ return (path); \ return ""; } +void MacOSXTaskbarManager::addRecent(const Common::String &name, const Common::String &description) { + //warning("[MacOSXTaskbarManager::addRecent] Adding recent list entry: %s (%s)", name.c_str(), description.c_str()); + + if (_dockTile == nil) + return; + + // Store the game, description and icon in user preferences. + // The NSDockTilePlugin will retrieve them there to list them in the dock tile menu. + + CFStringRef gameName = CFStringCreateWithCString(0, name.c_str(), kCFStringEncodingASCII); + CFStringRef desc = CFStringCreateWithCString(0, description.c_str(), kCFStringEncodingASCII); + + // First build the dictionary for this game. + NSMutableDictionary *dict = [[NSMutableDictionary alloc] init]; + [dict setObject:(NSString *)gameName forKey:@"game"]; + [dict setObject:(NSString *)desc forKey:@"description"]; + + // Icon + Common::String iconPath = getIconPath(name); + if (!iconPath.empty()) { + CFStringRef icon = CFStringCreateWithCString(0, iconPath.c_str(), kCFStringEncodingASCII); + [dict setObject:(NSString *)icon forKey:@"icon"]; + CFRelease(icon); + } + + // Retrieve the current list of recent items and update it. + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + NSArray *oldArray = [defaults arrayForKey:@"recentGames"]; + if (oldArray == nil) { + [defaults setObject:[NSArray arrayWithObject:dict] forKey:@"recentGames"]; + } else { + NSMutableArray *newArray = [[NSMutableArray alloc] initWithArray:oldArray]; + // Insert the new game at the start + [newArray insertObject:dict atIndex:0]; + // If the game was already present in the array, remove it + for (int i = 1 ; i < [newArray count] ; ++i) { + NSDictionary *oldDict = [newArray objectAtIndex:i]; + if (oldDict == nil) + continue; + NSString *oldGame = [oldDict valueForKey:@"game"]; + if (oldGame != nil && [oldGame isEqualToString:(NSString*)gameName]) { + [newArray removeObjectAtIndex:i]; + break; + } + } + // And make sure we limit the size of the array to 5 games + if ([newArray count] > 5) + [newArray removeLastObject]; + [defaults setObject:newArray forKey:@"recentGames"]; + [newArray release]; + } + + // Finally release the dictionary + [dict release]; + CFRelease(gameName); + CFRelease(desc); +} + + #endif diff --git a/backends/updates/macosx/macosx-updates.h b/backends/updates/macosx/macosx-updates.h index fd2d1f46f5..6fb9af7712 100644 --- a/backends/updates/macosx/macosx-updates.h +++ b/backends/updates/macosx/macosx-updates.h @@ -39,8 +39,10 @@ public: virtual void setAutomaticallyChecksForUpdates(UpdateState state); virtual UpdateState getAutomaticallyChecksForUpdates(); - virtual void setUpdateCheckInterval(UpdateInterval interval); - virtual UpdateInterval getUpdateCheckInterval(); + virtual void setUpdateCheckInterval(int interval); + virtual int getUpdateCheckInterval(); + + virtual bool getLastUpdateCheckTimeAndDate(TimeDate &t); }; #endif diff --git a/backends/updates/macosx/macosx-updates.mm b/backends/updates/macosx/macosx-updates.mm index a94f1c21fd..db9362a459 100644 --- a/backends/updates/macosx/macosx-updates.mm +++ b/backends/updates/macosx/macosx-updates.mm @@ -23,14 +23,18 @@ // Disable symbol overrides so that we can use system headers. #define FORBIDDEN_SYMBOL_ALLOW_ALL +#include "common/system.h" #include "backends/updates/macosx/macosx-updates.h" #ifdef USE_SPARKLE #include "common/translation.h" +#include "common/config-manager.h" #include <Cocoa/Cocoa.h> #include <Sparkle/Sparkle.h> +#include <AvailabilityMacros.h> + SUUpdater *sparkleUpdater; /** @@ -45,14 +49,22 @@ SUUpdater *sparkleUpdater; * */ MacOSXUpdateManager::MacOSXUpdateManager() { + NSBundle* mainBundle = [NSBundle mainBundle]; + + NSString *version = [mainBundle objectForInfoDictionaryKey:(__bridge NSString *)kCFBundleVersionKey]; + if (!version || [version isEqualToString:@""]) { + warning("Running not in bundle, skipping Sparkle initialization"); + + sparkleUpdater = nullptr; + return; + } + NSMenuItem *menuItem = [[NSApp mainMenu] itemAtIndex:0]; NSMenu *applicationMenu = [menuItem submenu]; // Init Sparkle sparkleUpdater = [SUUpdater sharedUpdater]; - NSBundle* mainBundle = [NSBundle mainBundle]; - NSString* feedbackURL = [mainBundle objectForInfoDictionaryKey:@"SUFeedURL"]; // Set appcast URL @@ -74,11 +86,13 @@ MacOSXUpdateManager::MacOSXUpdateManager() { // Finally give up our references to the objects [menuItem release]; - // Enable automatic update checking once a day (alternatively use - // checkForUpdates() here to check for updates on every startup) - // TODO: Should be removed when an update settings gui is implemented - setAutomaticallyChecksForUpdates(kUpdateStateEnabled); - setUpdateCheckInterval(kUpdateIntervalOneDay); + if (!ConfMan.hasKey("updates_check") + || ConfMan.getInt("updates_check") == Common::UpdateManager::kUpdateIntervalNotSupported) { + setAutomaticallyChecksForUpdates(kUpdateStateDisabled); + } else { + setAutomaticallyChecksForUpdates(kUpdateStateEnabled); + setUpdateCheckInterval(normalizeInterval(ConfMan.getInt("updates_check"))); + } } MacOSXUpdateManager::~MacOSXUpdateManager() { @@ -86,6 +100,9 @@ MacOSXUpdateManager::~MacOSXUpdateManager() { } void MacOSXUpdateManager::checkForUpdates() { + if (sparkleUpdater == nullptr) + return; + [sparkleUpdater checkForUpdatesInBackground]; } @@ -93,24 +110,38 @@ void MacOSXUpdateManager::setAutomaticallyChecksForUpdates(UpdateManager::Update if (state == kUpdateStateNotSupported) return; + if (sparkleUpdater == nullptr) + return; + [sparkleUpdater setAutomaticallyChecksForUpdates:(state == kUpdateStateEnabled ? YES : NO)]; } Common::UpdateManager::UpdateState MacOSXUpdateManager::getAutomaticallyChecksForUpdates() { + if (sparkleUpdater == nullptr) + return kUpdateStateDisabled; + if ([sparkleUpdater automaticallyChecksForUpdates]) return kUpdateStateEnabled; else return kUpdateStateDisabled; } -void MacOSXUpdateManager::setUpdateCheckInterval(UpdateInterval interval) { +void MacOSXUpdateManager::setUpdateCheckInterval(int interval) { + if (sparkleUpdater == nullptr) + return; + if (interval == kUpdateIntervalNotSupported) return; + interval = normalizeInterval(interval); + [sparkleUpdater setUpdateCheckInterval:(NSTimeInterval)interval]; } -Common::UpdateManager::UpdateInterval MacOSXUpdateManager::getUpdateCheckInterval() { +int MacOSXUpdateManager::getUpdateCheckInterval() { + if (sparkleUpdater == nullptr) + return kUpdateIntervalOneDay; + // This is kind of a hack but necessary, as the value stored by Sparkle // might have been changed outside of ScummVM (in which case we return the // default interval of one day) @@ -128,4 +159,30 @@ Common::UpdateManager::UpdateInterval MacOSXUpdateManager::getUpdateCheckInterva } } +bool MacOSXUpdateManager::getLastUpdateCheckTimeAndDate(TimeDate &t) { + if (sparkleUpdater == nullptr) + return false; + + NSDate *date = [sparkleUpdater lastUpdateCheckDate]; +#ifdef MAC_OS_X_VERSION_10_10 + NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; + NSDateComponents *components = [gregorian components:(NSCalendarUnitDay | NSCalendarUnitWeekday) fromDate:date]; +#else + NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; + NSDateComponents *components = [gregorian components:(NSDayCalendarUnit | NSWeekdayCalendarUnit) fromDate:date]; +#endif + + t.tm_wday = [components weekday]; + t.tm_year = [components year]; + t.tm_mon = [components month]; + t.tm_mday = [components day]; + t.tm_hour = [components hour]; + t.tm_min = [components minute]; + t.tm_sec = [components second]; + + [gregorian release]; + + return true; +} + #endif diff --git a/base/commandLine.cpp b/base/commandLine.cpp index a9116bf5f2..2c24c018ee 100644 --- a/base/commandLine.cpp +++ b/base/commandLine.cpp @@ -57,7 +57,7 @@ static const char USAGE_STRING[] = ; // DONT FIXME: DO NOT ORDER ALPHABETICALLY, THIS IS ORDERED BY IMPORTANCE/CATEGORY! :) -#if defined(__SYMBIAN32__) || defined(__GP32__) || defined(ANDROID) || defined(__DS__) +#if defined(__SYMBIAN32__) || defined(__GP32__) || defined(ANDROID) || defined(__DS__) || defined(__3DS__) static const char HELP_STRING[] = "NoUsageString"; // save more data segment space #else static const char HELP_STRING[] = diff --git a/base/main.cpp b/base/main.cpp index ff441df49c..587e32804f 100644 --- a/base/main.cpp +++ b/base/main.cpp @@ -75,6 +75,9 @@ #include "gui/launcher.h" #endif +#ifdef USE_UPDATES +#include "gui/updates-dialog.h" +#endif static bool launcherDialog() { @@ -458,6 +461,13 @@ extern "C" int scummvm_main(int argc, const char * const argv[]) { // Now as the event manager is created, setup the keymapper setupKeymapper(system); +#ifdef USE_UPDATES + if (!ConfMan.hasKey("updates_check")) { + GUI::UpdatesDialog dlg; + dlg.runModal(); + } +#endif + // Unless a game was specified, show the launcher dialog if (0 == ConfMan.getActiveDomain()) launcherDialog(); diff --git a/common/memstream.h b/common/memstream.h index 5ecc553454..a01973c6fa 100644 --- a/common/memstream.h +++ b/common/memstream.h @@ -25,6 +25,7 @@ #include "common/stream.h" #include "common/types.h" +#include "common/util.h" namespace Common { @@ -170,7 +171,7 @@ private: byte *old_data = _data; - _capacity = new_len + 32; + _capacity = MAX(new_len + 32, _capacity * 2); _data = (byte *)malloc(_capacity); _ptr = _data + _pos; diff --git a/common/module.mk b/common/module.mk index 67c498df00..570040c8e1 100644 --- a/common/module.mk +++ b/common/module.mk @@ -56,5 +56,10 @@ MODULE_OBJS += \ recorderfile.o endif +ifdef USE_UPDATES +MODULE_OBJS += \ + updates.o +endif + # Include common rules include $(srcdir)/rules.mk diff --git a/common/platform.cpp b/common/platform.cpp index 636c1ddb52..280185d862 100644 --- a/common/platform.cpp +++ b/common/platform.cpp @@ -27,6 +27,7 @@ namespace Common { const PlatformDescription g_platforms[] = { { "2gs", "2gs", "2gs", "Apple IIgs", kPlatformApple2GS }, + { "apple2", "apple2", "apple2", "Apple II", kPlatformApple2 }, { "3do", "3do", "3do", "3DO", kPlatform3DO }, { "acorn", "acorn", "acorn", "Acorn", kPlatformAcorn }, { "amiga", "ami", "amiga", "Amiga", kPlatformAmiga }, diff --git a/common/platform.h b/common/platform.h index 17a332b851..15bcddb62e 100644 --- a/common/platform.h +++ b/common/platform.h @@ -50,6 +50,7 @@ enum Platform { kPlatformSegaCD, kPlatform3DO, kPlatformPCEngine, + kPlatformApple2, kPlatformApple2GS, kPlatformPC98, kPlatformWii, diff --git a/common/scummsys.h b/common/scummsys.h index 7c2978f173..5e1069fb46 100644 --- a/common/scummsys.h +++ b/common/scummsys.h @@ -251,6 +251,7 @@ #if defined(__DC__) || \ defined(__DS__) || \ + defined(__3DS__) || \ defined(__GP32__) || \ defined(IPHONE) || \ defined(__PLAYSTATION2__) || \ @@ -367,7 +368,7 @@ #endif #ifndef STRINGBUFLEN - #if defined(__N64__) || defined(__DS__) + #if defined(__N64__) || defined(__DS__) || defined(__3DS__) #define STRINGBUFLEN 256 #else #define STRINGBUFLEN 1024 diff --git a/common/updates.cpp b/common/updates.cpp new file mode 100644 index 0000000000..087002a7d3 --- /dev/null +++ b/common/updates.cpp @@ -0,0 +1,68 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#include "common/system.h" +#include "common/updates.h" +#include "common/translation.h" + +namespace Common { + +static const int updateIntervals[] = { + UpdateManager::kUpdateIntervalNotSupported, + UpdateManager::kUpdateIntervalOneDay, + UpdateManager::kUpdateIntervalOneWeek, + UpdateManager::kUpdateIntervalOneMonth, + -1 +}; + +const int *UpdateManager::getUpdateIntervals() { + return updateIntervals; +} + +int UpdateManager::normalizeInterval(int interval) { + const int *val = updateIntervals; + + while (*val != -1) { + if (*val >= interval) + return *val; + val++; + } + + return val[-1]; // Return maximal acceptable value +} + +const char *UpdateManager::updateIntervalToString(int interval) { + switch (interval) { + case kUpdateIntervalNotSupported: + return _("Never"); + case kUpdateIntervalOneDay: + return _("Daily"); + case kUpdateIntervalOneWeek: + return _("Weekly"); + case kUpdateIntervalOneMonth: + return _("Monthly"); + default: + return _("<Bad value>"); + } +} + +} // End of namespace Common diff --git a/common/updates.h b/common/updates.h index 4c30987c38..3a3049d4df 100644 --- a/common/updates.h +++ b/common/updates.h @@ -20,8 +20,8 @@ * */ -#ifndef BACKENDS_UPDATES_ABSTRACT_H -#define BACKENDS_UPDATES_ABSTRACT_H +#ifndef COMMON_UPDATES_H +#define COMMON_UPDATES_H #if defined(USE_UPDATES) @@ -85,18 +85,50 @@ public: * * @param interval The interval. */ - virtual void setUpdateCheckInterval(UpdateInterval interval) {} + virtual void setUpdateCheckInterval(int interval) {} /** * Gets the update check interval. * * @return the update check interval. */ - virtual UpdateInterval getUpdateCheckInterval() { return kUpdateIntervalNotSupported; } + virtual int getUpdateCheckInterval() { return kUpdateIntervalNotSupported; } + + /** + * Gets last update check time + * + * @param t TimeDate struct to fill out + * @return flag indicating success + */ + virtual bool getLastUpdateCheckTimeAndDate(TimeDate &t) { return false; } + + /** + * Returns list of supported uptate intervals. + * Ending with '-1' which is not acceptable value. + * + * @return list of integer values representing update intervals in seconds. + */ + static const int *getUpdateIntervals(); + + /** + * Returns string representation of a given interval. + * + * @param interval The interval. + * @return pointer to localized string of given interval. + */ + static const char *updateIntervalToString(int interval); + + /** + * Rounds up the given interval to acceptable value. + * + * @param interval The interval. + * @return rounded up interval + */ + static int normalizeInterval(int interval); }; } // End of namespace Common #endif -#endif // BACKENDS_UPDATES_ABSTRACT_H +#endif // COMMON_UPDATES_H diff --git a/config.guess b/config.guess index 6c32c8645c..0967f2afa9 100755 --- a/config.guess +++ b/config.guess @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2014 Free Software Foundation, Inc. +# Copyright 1992-2016 Free Software Foundation, Inc. -timestamp='2014-11-04' +timestamp='2016-04-02' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -27,7 +27,7 @@ timestamp='2014-11-04' # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess # # Please send patches to <config-patches@gnu.org>. @@ -50,7 +50,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2014 Free Software Foundation, Inc. +Copyright 1992-2016 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -168,20 +168,27 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + /sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || \ + echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` + machine=${arch}${endian}-unknown + ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) + arm*|earm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ @@ -197,6 +204,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in os=netbsd ;; esac + # Determine ABI tags. + case "${UNAME_MACHINE_ARCH}" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` + ;; + esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need @@ -207,13 +221,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in release='-gnu' ;; *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" + echo "${machine}-${os}${release}${abi}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` @@ -223,6 +237,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} + exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; @@ -235,6 +253,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; + *:Sortix:*:*) + echo ${UNAME_MACHINE}-unknown-sortix + exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) @@ -251,42 +272,42 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; + UNAME_MACHINE=alpha ;; "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; + UNAME_MACHINE=alphaev5 ;; "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; + UNAME_MACHINE=alphaev56 ;; "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; + UNAME_MACHINE=alphapca56 ;; "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; + UNAME_MACHINE=alphapca57 ;; "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; + UNAME_MACHINE=alphaev6 ;; "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; + UNAME_MACHINE=alphaev67 ;; "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; + UNAME_MACHINE=alphaev68 ;; "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; + UNAME_MACHINE=alphaev69 ;; "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; + UNAME_MACHINE=alphaev7 ;; "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; + UNAME_MACHINE=alphaev79 ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 @@ -359,16 +380,16 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build - SUN_ARCH="i386" + SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then - SUN_ARCH="x86_64" + SUN_ARCH=x86_64 fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` @@ -393,7 +414,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} @@ -618,13 +639,13 @@ EOF sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi @@ -663,11 +684,11 @@ EOF exit (0); } EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac - if [ ${HP_ARCH} = "hppa2.0w" ] + if [ ${HP_ARCH} = hppa2.0w ] then eval $set_cc_for_build @@ -680,12 +701,12 @@ EOF # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then - HP_ARCH="hppa2.0w" + HP_ARCH=hppa2.0w else - HP_ARCH="hppa64" + HP_ARCH=hppa64 fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} @@ -790,14 +811,14 @@ EOF echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) @@ -879,7 +900,7 @@ EOF exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix @@ -902,7 +923,7 @@ EOF EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="gnulibc1" ; fi + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arc:Linux:*:* | arceb:Linux:*:*) @@ -933,6 +954,9 @@ EOF crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; + e2k:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; @@ -945,6 +969,9 @@ EOF ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; + k1om:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; @@ -1021,7 +1048,7 @@ EOF echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} @@ -1100,7 +1127,7 @@ EOF # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configury will decide that + # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; @@ -1249,6 +1276,9 @@ EOF SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; + SX-ACE:SUPER-UX:*:*) + echo sxace-nec-superux${UNAME_RELEASE} + exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; @@ -1262,9 +1292,9 @@ EOF UNAME_PROCESSOR=powerpc fi if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in @@ -1286,7 +1316,7 @@ EOF exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then + if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi @@ -1317,7 +1347,7 @@ EOF # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. - if test "$cputype" = "386"; then + if test "$cputype" = 386; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" @@ -1359,7 +1389,7 @@ EOF echo i386-pc-xenix exit ;; i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'` exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos @@ -1370,6 +1400,9 @@ EOF x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs + exit ;; esac cat >&2 <<EOF @@ -1379,9 +1412,9 @@ This script, last modified $timestamp, has failed to recognize the operating system you are using. It is advised that you download the most up to date version of the config scripts from - http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD + http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess and - http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub If the version you run ($0) is already up to date, please send the following data and any information you think might be diff --git a/config.sub b/config.sub index 7ffe373784..8d39c4ba39 100755 --- a/config.sub +++ b/config.sub @@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2014 Free Software Foundation, Inc. +# Copyright 1992-2016 Free Software Foundation, Inc. -timestamp='2014-12-03' +timestamp='2016-03-30' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -33,7 +33,7 @@ timestamp='2014-12-03' # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases @@ -53,8 +53,7 @@ timestamp='2014-12-03' me=`echo "$0" | sed -e 's,.*/,,'` usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. @@ -68,7 +67,7 @@ Report bugs and patches to <config-patches@gnu.org>." version="\ GNU config.sub ($timestamp) -Copyright 1992-2014 Free Software Foundation, Inc. +Copyright 1992-2016 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -117,7 +116,7 @@ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os @@ -255,12 +254,13 @@ case $basic_machine in | arc | arceb \ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ | avr | avr32 \ + | ba \ | be32 | be64 \ | bfin \ | c4x | c8051 | clipper \ | d10v | d30v | dlx | dsp16xx \ - | epiphany \ - | fido | fr30 | frv \ + | e2k | epiphany \ + | fido | fr30 | frv | ft32 \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia64 \ @@ -305,7 +305,7 @@ case $basic_machine in | riscv32 | riscv64 \ | rl78 | rx \ | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ @@ -376,12 +376,13 @@ case $basic_machine in | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ + | ba-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | c8051-* | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ + | e2k-* | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ @@ -428,12 +429,13 @@ case $basic_machine in | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ + | riscv32-* | riscv64-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ @@ -518,6 +520,9 @@ case $basic_machine in basic_machine=i386-pc os=-aros ;; + asmjs) + basic_machine=asmjs-unknown + ;; aux) basic_machine=m68k-apple os=-aux @@ -1373,11 +1378,11 @@ case $os in | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* \ + | -aos* | -aros* | -cloudabi* | -sortix* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -bitrig* | -openbsd* | -solidbsd* \ + | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ @@ -1393,7 +1398,8 @@ case $os in | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*) + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ + | -onefs* | -tirtos*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1525,6 +1531,8 @@ case $os in ;; -nacl*) ;; + -ios) + ;; -none) ;; *) @@ -128,6 +128,7 @@ _timidity=auto _zlib=auto _mpeg2=auto _sparkle=auto +_osxdockplugin=auto _jpeg=auto _png=auto _theoradec=auto @@ -182,6 +183,7 @@ _win32path="c:/scummvm" _amigaospath="Games:ScummVM" _staticlibpath= _xcodetoolspath= +_sparklepath= _sdlconfig=sdl-config _freetypeconfig=freetype-config _sdlpath="$PATH" @@ -438,7 +440,7 @@ get_system_exe_extension() { arm-riscos) _exeext=",ff8" ;; - dreamcast | ds | gamecube | n64 | ps2 | psp | wii) + 3ds | dreamcast | ds | gamecube | n64 | ps2 | psp | wii) _exeext=".elf" ;; gph-linux) @@ -841,9 +843,9 @@ Usage: $0 [OPTIONS]... Configuration: -h, --help display this help and exit - --backend=BACKEND backend to build (android, tizen, dc, dingux, ds, gcw0, + --backend=BACKEND backend to build (3ds, android, dc, dingux, ds, gcw0, gph, iphone, ios7, linuxmoto, maemo, n64, null, openpandora, - ps2, psp, samsungtv, sdl, webos, wii, wince) [sdl] + ps2, psp, samsungtv, sdl, tizen, webos, wii, wince) [sdl] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX @@ -869,10 +871,10 @@ Fine tuning of the installation directories: Special configuration feature: --host=HOST cross-compile to target HOST (arm-linux, ...) - special targets: android-arm for Android ARM + special targets: 3ds for Nintendo 3DS + android-arm for Android ARM android-mips for Android MIPS android-x86 for Android x86 - tizen for Samsung Tizen caanoo for Caanoo dingux for Dingux raspberrypi for Raspberry Pi @@ -895,6 +897,7 @@ Special configuration feature: ps3 for PlayStation 3 psp for PlayStation Portable samsungtv for Samsung TV + tizen for Samsung Tizen webos for HP Palm WebOS wii for Nintendo Wii wince for Windows CE @@ -991,6 +994,8 @@ Optional Libraries: --with-sparkle-prefix=DIR Prefix where sparkle is installed (Mac OS X only - optional) --disable-sparkle disable sparkle automatic update support [Mac OS X only - autodetect] + --disable-osx-dock-plugin disable the NSDockTilePlugin support [Mac OS X only - autodetect] + --with-sdl-prefix=DIR Prefix where the sdl-config script is installed (optional) @@ -1053,6 +1058,8 @@ for ac_option in $@; do --disable-zlib) _zlib=no ;; --enable-sparkle) _sparkle=yes ;; --disable-sparkle) _sparkle=no ;; + --enable-osx-dock-plugin) _osxdockplugin=yes;; + --disable-osx-dock-plugin) _osxdockplugin=no;; --enable-nasm) _nasm=yes ;; --disable-nasm) _nasm=no ;; --enable-mpeg2) _mpeg2=yes ;; @@ -1168,8 +1175,7 @@ for ac_option in $@; do ;; --with-sparkle-prefix=*) arg=`echo $ac_option | cut -d '=' -f 2` - SPARKLE_CFLAGS="-F$arg" - SPARKLE_LIBS="-F$arg" + _sparklepath=$arg ;; --with-readline-prefix=*) arg=`echo $ac_option | cut -d '=' -f 2` @@ -1304,6 +1310,11 @@ get_system_exe_extension $guessed_host NATIVEEXEEXT=$_exeext case $_host in +3ds) + _host_os=3ds + _host_cpu=arm + _host_alias=arm-none-eabi + ;; android | android-arm | android-v7a | android-arm-v7a | ouya) _host_os=android _host_cpu=arm @@ -1585,7 +1596,7 @@ android) exit 1 fi ;; -ds | gamecube | wii) +3ds | ds | gamecube | wii) if test -z "$DEVKITPRO"; then echo "Please set DEVKITPRO in your environment. export DEVKITPRO=<path to devkitPRO>" exit 1 @@ -1841,7 +1852,7 @@ if test "$have_gcc" = yes ; then case $_host_os in # newlib-based system include files suppress non-C89 function # declarations under __STRICT_ANSI__ - amigaos* | android | dreamcast | ds | gamecube | mingw* | n64 | psp | ps2 | ps3 | tizen | wii | wince ) + 3ds | amigaos* | android | dreamcast | ds | gamecube | mingw* | n64 | psp | ps2 | ps3 | tizen | wii | wince ) ;; *) append_var CXXFLAGS "-ansi" @@ -2141,6 +2152,27 @@ esac echo_n "Checking hosttype... " echo $_host_os case $_host_os in + 3ds) + _optimization_level=-O2 + append_var DEFINES "-D__3DS__" + append_var DEFINES "-DARM" + append_var DEFINES "-DARM11" + append_var CXXFLAGS "-march=armv6k" + append_var CXXFLAGS "-mtune=mpcore" + append_var CXXFLAGS "-mword-relocations" + append_var CXXFLAGS "-mfloat-abi=hard" + append_var CXXFLAGS "-ffunction-sections" + append_var CXXFLAGS "-fomit-frame-pointer" + append_var CXXFLAGS "-I$DEVKITPRO/libctru/include" + append_var CXXFLAGS "-I$DEVKITPRO/portlibs/3ds/include" + if test "$_dynamic_modules" = no ; then + append_var LDFLAGS "-Wl,--gc-sections" + else + append_var LDFLAGS "-Wl,--no-gc-sections" + fi + append_var LDFLAGS "-L$DEVKITPRO/portlibs/3ds/lib" + append_var LIBS "-lcitro3d -lctru" + ;; amigaos*) append_var LDFLAGS "-Wl,--export-dynamic" append_var LDFLAGS "-L/sdk/local/newlib/lib" @@ -2355,7 +2387,7 @@ case $_host_os in echo "Could not determine prefix for static libraries" fi fi - + # If _xcodetoolspath is not set yet use xcode-select to get the path if test -z "$_xcodetoolspath"; then _xcodetoolspath=`xcode-select -print-path`/Tools @@ -2578,6 +2610,18 @@ if test -n "$_host"; then # Cross-compiling mode - add your target here if needed echo "Cross-compiling to $_host" case "$_host" in + 3ds) + append_var DEFINES "-DDISABLE_FANCY_THEMES" + append_var DEFINES "-DDISABLE_SID" + append_var DEFINES "-DDISABLE_NES_APU" + _backend="3ds" + _build_scalers=no + _vkeybd=yes + _mt32emu=no + # Should use Tremor instead of Vorbis + _vorbis=no + _port_mk="backends/platform/3ds/3ds.mk" + ;; android | android-arm | android-v7a | android-arm-v7a | android-mips | android-x86 | ouya) # we link a .so as default append_var LDFLAGS "-shared" @@ -2725,21 +2769,19 @@ if test -n "$_host"; then gcw0) _sysroot=`$CXX --print-sysroot` _sdlpath=$_sysroot/usr/bin - append_var DEFINES "-DDINGUX -DGCW0" + append_var DEFINES "-DDINGUX -DGCW0 -DGUI_ONLY_FULLSCREEN" append_var DEFINES "-DREDUCE_MEMORY_USAGE" append_var CXXFLAGS "-mips32" _backend="dingux" + _alsa=no _mt32emu=no + _seq_midi=no + _timidity=no + _build_scalers=no _optimization_level=-O3 - # Disable alsa midi to get the port build on OpenDingux toolchain - _alsa=no _vkeybd=yes - _build_hq_scalers=no _keymapper=yes - # Force disable vorbis on dingux, it has terrible performance compared to tremor _vorbis=no - # Force disable seq on dingux, no way to use it and it would get enabled by default with configure - _seq_midi=no _port_mk="backends/platform/dingux/dingux.mk" ;; gp2x) @@ -3039,6 +3081,8 @@ fi # Backend related stuff # case $_backend in + 3ds) + ;; android) append_var DEFINES "-DREDUCE_MEMORY_USAGE" append_var CXXFLAGS "-Wa,--noexecstack" @@ -3141,6 +3185,8 @@ case $_backend in append_var LDFLAGS "-shared" append_var LDFLAGS "-fpic" ;; + sdl) + ;; tizen) # dirent.h not available. NONSTANDARD_PORT==ensure portdefs.h is included append_var DEFINES "-DTIZEN -DDISABLE_STDIO_FILESTREAM -DNONSTANDARD_PORT" @@ -3189,8 +3235,6 @@ case $_backend in append_var DEFINES "-DSDL_BACKEND" add_line_to_config_mk "SDL_BACKEND = 1" ;; - sdl) - ;; *) echo "support for $_backend backend not implemented in configure script yet" exit 1 @@ -3225,7 +3269,7 @@ esac # Enable 16bit support only for backends which support it # case $_backend in - android | dingux | dc | gph | iphone | ios7 | maemo | openpandora | psp | samsungtv | sdl | tizen | webos | wii) + 3ds | android | dingux | dc | gph | iphone | ios7 | maemo | openpandora | psp | samsungtv | sdl | tizen | webos | wii) if test "$_16bit" = auto ; then _16bit=yes else @@ -3304,7 +3348,7 @@ case $_host_os in amigaos* | cygwin* | dreamcast | ds | gamecube | mingw* | n64 | ps2 | ps3 | psp | wii | wince) _posix=no ;; - android | beos* | bsd* | darwin* | freebsd* | gnu* | gph-linux | haiku* | hpux* | iphone | ios7 | irix*| k*bsd*-gnu* | linux* | maemo | mint* | netbsd* | openbsd* | solaris* | sunos* | uclinux* | webos) + 3ds | android | beos* | bsd* | darwin* | freebsd* | gnu* | gph-linux | haiku* | hpux* | iphone | ios7 | irix*| k*bsd*-gnu* | linux* | maemo | mint* | netbsd* | openbsd* | solaris* | sunos* | uclinux* | webos) _posix=yes ;; os2-emx*) @@ -3932,26 +3976,65 @@ echo "$_mpeg2" # # Check for Sparkle if updates support is enabled # -echocheck "Sparkle" -if test "$_updates" = no; then - _sparkle=no -else -if test "$_sparkle" = auto ; then - _sparkle=no - cat > $TMPC << EOF +# +# Check is NSDockTilePlugIn protocol is supported +# +case $_host_os in + darwin*) + echocheck "Sparkle" + if test "$_updates" = no; then + _sparkle=no + else + if test ! -z $_sparklepath ; then + SPARKLE_CFLAGS="-F$_sparklepath" + SPARKLE_LIBS="-F$_sparklepath" + fi + if test "$_sparkle" = auto ; then + _sparkle=no + cat > $TMPC << EOF #include <Cocoa/Cocoa.h> #include <Sparkle/Sparkle.h> int main(void) { SUUpdater *updater = [SUUpdater sharedUpdater]; return 0; } EOF - cc_check $SPARKLE_CFLAGS $SPARKLE_LIBS -framework Sparkle -ObjC++ -lobjc && _sparkle=yes -fi -if test "$_sparkle" = yes ; then - append_var LIBS "$SPARKLE_LIBS -framework Sparkle" - append_var INCLUDES "$SPARKLE_CFLAGS" -fi -define_in_config_if_yes "$_sparkle" 'USE_SPARKLE' -fi -echo "$_sparkle" + cc_check $SPARKLE_CFLAGS $SPARKLE_LIBS -framework Sparkle -ObjC++ -lobjc && _sparkle=yes + fi + if test "$_sparkle" = yes ; then + append_var LIBS "$SPARKLE_LIBS -framework Sparkle" + append_var INCLUDES "$SPARKLE_CFLAGS" + fi + define_in_config_if_yes "$_sparkle" 'USE_SPARKLE' + fi + echo "$_sparkle" + ;; + *) + _sparkle=no + ;; +esac + +# +# Check is NSDockTilePlugIn protocol is supported +# +case $_host_os in + darwin*) + # NSDockTilePlugIn was added in OS X 10.6, so will not be available when compiling on older OS X versions. + echocheck "DockTilePlugin" + if test "$_osxdockplugin" = auto ; then + _osxdockplugin=no + cat > $TMPC << EOF +#include <Cocoa/Cocoa.h> +@interface ScummVMDockTilePlugIn : NSObject <NSDockTilePlugIn> { +} +@end +EOF + cc_check -c -ObjC++ && _osxdockplugin=yes + fi + define_in_config_if_yes "$_osxdockplugin" 'USE_DOCKTILEPLUGIN' + echo "$_osxdockplugin" + ;; + *) + _osxdockplugin=no + ;; +esac # # Check for FluidSynth @@ -4519,6 +4602,14 @@ fi # after all of CXXFLAGS, LDFLAGS, LIBS etc. have been setup # case $_backend in + 3ds) + if test "$_freetype2" = yes -a "$_png" = yes; then + append_var LIBS "-lpng" + fi + if test "$_tremor" = yes -o "$_flac" = yes; then + append_var LIBS "-logg" + fi + ;; android) # ssp at this point so the cxxtests link if test "$_debug_build" = yes; then @@ -4751,6 +4842,7 @@ WIN32PATH=$_win32path AMIGAOSPATH=$_amigaospath STATICLIBPATH=$_staticlibpath XCODETOOLSPATH=$_xcodetoolspath +SPARKLEPATH=$_sparklepath SDLCONFIG=$_sdlconfig ABI := $ABI diff --git a/devtools/create_wage/create_wage.sh b/devtools/create_classicmacfonts.sh index 5e8fe352a2..517f3f5638 100755 --- a/devtools/create_wage/create_wage.sh +++ b/devtools/create_classicmacfonts.sh @@ -4,7 +4,7 @@ # from it. Mac only, unfortunately. # # On Windows you perhaps can perform the extraction manually with use of -# HFV Explorer: https://web.archive.org/web/20011202005455/http://gamma.nic.fi/~lpesonen/HFVExplorer/ +# HFSxplorer: http://www.catacombae.org/hfsexplorer/ # # More information could be found in the vMac documentation: http://www.gryphel.com/c/image/ # @@ -106,8 +106,8 @@ echo_n "Converting fonts..." fondu-060102/fondu -force *.bin echo done -zip -9 wage *.bdf -mv wage.zip wage.dat +zip -9 classicmacfonts *.bdf +mv classicmacfonts.zip classicmacfonts.dat echo_n "Cleaning up..." rm *.bdf @@ -116,4 +116,4 @@ rm *.bin rm *.dmg echo done -ls -l wage.dat +ls -l classicmacfonts.dat diff --git a/devtools/create_kyradat/create_kyradat.cpp b/devtools/create_kyradat/create_kyradat.cpp index e064e899de..294eadf92b 100644 --- a/devtools/create_kyradat/create_kyradat.cpp +++ b/devtools/create_kyradat/create_kyradat.cpp @@ -45,7 +45,7 @@ enum { - kKyraDatVersion = 87 + kKyraDatVersion = 88 }; const ExtractFilename extractFilenames[] = { @@ -119,7 +119,6 @@ const ExtractFilename extractFilenames[] = { // AUDIO filename table { k1AudioTracks, kStringList, false }, - { k1AudioTracks2, kStringList, false }, { k1AudioTracksIntro, kStringList, false }, // AMULET anim diff --git a/devtools/create_kyradat/create_kyradat.h b/devtools/create_kyradat/create_kyradat.h index a6bee6f75c..1d58d7551f 100644 --- a/devtools/create_kyradat/create_kyradat.h +++ b/devtools/create_kyradat/create_kyradat.h @@ -131,7 +131,6 @@ enum kExtractID { k1ConfigStrings, k1AudioTracks, - k1AudioTracks2, k1AudioTracksIntro, k1CreditsStrings, diff --git a/devtools/create_kyradat/games.cpp b/devtools/create_kyradat/games.cpp index afe0c67dbf..e6f0b38c45 100644 --- a/devtools/create_kyradat/games.cpp +++ b/devtools/create_kyradat/games.cpp @@ -231,7 +231,6 @@ const int kyra1FloppyNeed[] = { k1NewGameString, k1ConfigStrings, k1AudioTracks, - k1AudioTracks2, k1AudioTracksIntro, -1 }; @@ -317,7 +316,6 @@ const int kyra1FloppyOldNeed[] = { k1NewGameString, k1ConfigStrings, k1AudioTracks, - k1AudioTracks2, k1AudioTracksIntro, -1 }; @@ -405,7 +403,6 @@ const int kyra1CDNeed[] = { k1NewGameString, k1ConfigStrings, k1AudioTracks, - k1AudioTracks2, k1AudioTracksIntro, -1 }; diff --git a/devtools/create_kyradat/resources.cpp b/devtools/create_kyradat/resources.cpp index 4df6bb8fb8..246811f821 100644 --- a/devtools/create_kyradat/resources.cpp +++ b/devtools/create_kyradat/resources.cpp @@ -302,7 +302,6 @@ static const ResourceProvider resourceProviders[] = { { k1NewGameString, kKyra1, kPlatformDOS, kNoSpecial, EN_ANY, &k1NewGameStringDOSEnglishProvider }, { k1ConfigStrings, kKyra1, kPlatformDOS, kNoSpecial, EN_ANY, &k1ConfigStringsDOSEnglishProvider }, { k1AudioTracks, kKyra1, kPlatformDOS, kNoSpecial, UNK_LANG, &k1AudioTracksDOSProvider }, - { k1AudioTracks2, kKyra1, kPlatformDOS, kNoSpecial, UNK_LANG, &k1AudioTracks2DOSProvider }, { k1AudioTracksIntro, kKyra1, kPlatformDOS, kNoSpecial, UNK_LANG, &k1AudioTracksIntroDOSProvider }, { k1IntroStrings, kKyra1, kPlatformDOS, kNoSpecial, DE_DEU, &k1IntroStringsDOSGermanProvider }, { k1ItemNames, kKyra1, kPlatformDOS, kNoSpecial, DE_DEU, &k1ItemNamesDOSGermanProvider }, @@ -472,7 +471,6 @@ static const ResourceProvider resourceProviders[] = { { k1NewGameString, kKyra1, kPlatformDOS, kOldFloppy, RU_RUS, &k1NewGameStringDOSOldFloppyRussianProvider }, { k1ConfigStrings, kKyra1, kPlatformDOS, kOldFloppy, RU_RUS, &k1ConfigStringsDOSOldFloppyRussianProvider }, { k1AudioTracks, kKyra1, kPlatformDOS, kOldFloppy, UNK_LANG, &k1AudioTracksDOSOldFloppyProvider }, - { k1AudioTracks2, kKyra1, kPlatformDOS, kOldFloppy, UNK_LANG, &k1AudioTracks2DOSOldFloppyProvider }, { k1AudioTracksIntro, kKyra1, kPlatformDOS, kOldFloppy, UNK_LANG, &k1AudioTracksIntroDOSOldFloppyProvider }, { k1KallakWritingSeq, kKyra1, kPlatformDOS, kTalkieVersion, UNK_LANG, &k1KallakWritingSeqDOSCDProvider }, { k1MalcolmTreeSeq, kKyra1, kPlatformDOS, kTalkieVersion, UNK_LANG, &k1MalcolmTreeSeqDOSCDProvider }, @@ -556,7 +554,6 @@ static const ResourceProvider resourceProviders[] = { { k1NewGameString, kKyra1, kPlatformDOS, kTalkieVersion, EN_ANY, &k1NewGameStringDOSCDEnglishProvider }, { k1ConfigStrings, kKyra1, kPlatformDOS, kTalkieVersion, EN_ANY, &k1ConfigStringsDOSCDEnglishProvider }, { k1AudioTracks, kKyra1, kPlatformDOS, kTalkieVersion, UNK_LANG, &k1AudioTracksDOSCDProvider }, - { k1AudioTracks2, kKyra1, kPlatformDOS, kTalkieVersion, UNK_LANG, &k1AudioTracks2DOSCDProvider }, { k1AudioTracksIntro, kKyra1, kPlatformDOS, kTalkieVersion, UNK_LANG, &k1AudioTracksIntroDOSCDProvider }, { k1IntroStrings, kKyra1, kPlatformDOS, kTalkieVersion, DE_DEU, &k1IntroStringsDOSCDGermanProvider }, { k1ItemNames, kKyra1, kPlatformDOS, kTalkieVersion, DE_DEU, &k1ItemNamesDOSCDGermanProvider }, diff --git a/devtools/create_kyradat/resources/lok_dos.h b/devtools/create_kyradat/resources/lok_dos.h index e8d987fe1b..6bc9c2525f 100644 --- a/devtools/create_kyradat/resources/lok_dos.h +++ b/devtools/create_kyradat/resources/lok_dos.h @@ -1898,7 +1898,7 @@ static const byte k1OutroReunionSeqDOS[1351] = { static const ByteProvider k1OutroReunionSeqDOSProvider = { ARRAYSIZE(k1OutroReunionSeqDOS), k1OutroReunionSeqDOS }; -static const char *const k1AudioTracksDOS[8] = { +static const char *const k1AudioTracksDOS[9] = { "KYRA1A", "KYRA1B", "KYRA2A", @@ -1906,17 +1906,12 @@ static const char *const k1AudioTracksDOS[8] = { "KYRA4A", "KYRA4B", "KYRA5A", - "KYRA5B" + "KYRA5B", + "KYRAMISC" }; static const StringListProvider k1AudioTracksDOSProvider = { ARRAYSIZE(k1AudioTracksDOS), k1AudioTracksDOS }; -static const char *const k1AudioTracks2DOS[1] = { - "kyramisc" -}; - -static const StringListProvider k1AudioTracks2DOSProvider = { ARRAYSIZE(k1AudioTracks2DOS), k1AudioTracks2DOS }; - static const char *const k1AudioTracksIntroDOS[1] = { "intro" }; diff --git a/devtools/create_kyradat/resources/lok_dos_cd.h b/devtools/create_kyradat/resources/lok_dos_cd.h index 9550d53d61..dc7a521063 100644 --- a/devtools/create_kyradat/resources/lok_dos_cd.h +++ b/devtools/create_kyradat/resources/lok_dos_cd.h @@ -1969,7 +1969,7 @@ static const byte k1OutroReunionSeqDOSCD[1509] = { static const ByteProvider k1OutroReunionSeqDOSCDProvider = { ARRAYSIZE(k1OutroReunionSeqDOSCD), k1OutroReunionSeqDOSCD }; -static const char *const k1AudioTracksDOSCD[8] = { +static const char *const k1AudioTracksDOSCD[9] = { "KYRA1A", "KYRA1B", "KYRA2A", @@ -1977,17 +1977,12 @@ static const char *const k1AudioTracksDOSCD[8] = { "KYRA4A", "KYRA4B", "KYRA5A", - "KYRA5B" + "KYRA5B", + "KYRAMISC" }; static const StringListProvider k1AudioTracksDOSCDProvider = { ARRAYSIZE(k1AudioTracksDOSCD), k1AudioTracksDOSCD }; -static const char *const k1AudioTracks2DOSCD[1] = { - "kyramisc" -}; - -static const StringListProvider k1AudioTracks2DOSCDProvider = { ARRAYSIZE(k1AudioTracks2DOSCD), k1AudioTracks2DOSCD }; - static const char *const k1AudioTracksIntroDOSCD[2] = { "intro", "intro" diff --git a/devtools/create_kyradat/resources/lok_dos_oldfloppy.h b/devtools/create_kyradat/resources/lok_dos_oldfloppy.h index e19cb5a6ef..62b1530941 100644 --- a/devtools/create_kyradat/resources/lok_dos_oldfloppy.h +++ b/devtools/create_kyradat/resources/lok_dos_oldfloppy.h @@ -1884,7 +1884,7 @@ static const byte k1OutroReunionSeqDOSOldFloppy[1351] = { static const ByteProvider k1OutroReunionSeqDOSOldFloppyProvider = { ARRAYSIZE(k1OutroReunionSeqDOSOldFloppy), k1OutroReunionSeqDOSOldFloppy }; -static const char *const k1AudioTracksDOSOldFloppy[8] = { +static const char *const k1AudioTracksDOSOldFloppy[9] = { "KYRA1A", "KYRA1B", "KYRA2A", @@ -1892,17 +1892,12 @@ static const char *const k1AudioTracksDOSOldFloppy[8] = { "KYRA4A", "KYRA4B", "KYRA5A", - "KYRA5B" + "KYRA5B", + "KYRAMISC" }; static const StringListProvider k1AudioTracksDOSOldFloppyProvider = { ARRAYSIZE(k1AudioTracksDOSOldFloppy), k1AudioTracksDOSOldFloppy }; -static const char *const k1AudioTracks2DOSOldFloppy[1] = { - "kyramisc" -}; - -static const StringListProvider k1AudioTracks2DOSOldFloppyProvider = { ARRAYSIZE(k1AudioTracks2DOSOldFloppy), k1AudioTracks2DOSOldFloppy }; - static const char *const k1AudioTracksIntroDOSOldFloppy[1] = { "intro" }; diff --git a/devtools/credits.pl b/devtools/credits.pl index c67793cbfa..cc75f76758 100755 --- a/devtools/credits.pl +++ b/devtools/credits.pl @@ -844,6 +844,10 @@ begin_credits("Credits"); add_person("Frantisek Dufka", "fanoush", "(retired)"); add_person("Tarek Soliman", "tsoliman", ""); end_section(); + + begin_section("Nintendo 3DS"); + add_person("Thomas Edvalson", "Cruel", ""); + end_section(); begin_section("Nintendo 64"); add_person("Fabio Battaglia", "Hkz", ""); @@ -1007,6 +1011,7 @@ begin_credits("Credits"); begin_section("Mac OS X"); add_person("Max Horn", "Fingolfin", "(retired)"); add_person("Oystein Eftevaag", "vinterstum", ""); + add_person("Thierry Crozat", "criezy", ""); end_section(); begin_section("Mandriva"); diff --git a/devtools/encode-macbinary.sh b/devtools/encode-macbinary.sh new file mode 100755 index 0000000000..6635f7fcda --- /dev/null +++ b/devtools/encode-macbinary.sh @@ -0,0 +1,11 @@ +#!/bin/bash +# +# Iterates over current directory, encodes all files with +# MacBinary but ensures that the dates are preserved + +for i in * +do + macbinary encode "$i" + touch -r "$i" "$i.bin" + mv "$i.bin" "$i" +done diff --git a/devtools/scumm-md5.txt b/devtools/scumm-md5.txt index e9140f74f9..92754a27b4 100644 --- a/devtools/scumm-md5.txt +++ b/devtools/scumm-md5.txt @@ -50,25 +50,26 @@ # IFS=$OIFS # maniac Maniac Mansion - 2d624d1b214f7faf0094daea65c6d1a6 -1 en 2gs Apple II - - + 2d624d1b214f7faf0094daea65c6d1a6 -1 en 2gs Apple II - - 2cb46375dd5cdfd023e2f07e0a21b530 -1 en C64 C64 Demo - Robert Crossfield - eea4d9ac2fb6f145945a308e8866915b -1 en C64 C64 - - - 439a7f4adf510489981ac52308e7d7a2 -1 de C64 C64 - - + eea4d9ac2fb6f145945a308e8866915b -1 en C64 C64 - - + 439a7f4adf510489981ac52308e7d7a2 -1 de C64 C64 - - 7f45ddd6dbfbf8f80c0c0efea4c295bc 1972 en DOS V1 V1 - Fingolfin - 17f7296f63c78642724f057fd8e736a7 2082 gb NES NES - - 91d5db93187fab54d823f73bd6441cb6 -1 us NES NES - - 1c7e7db2cfab1ad62746ab680a634204 -1 fr NES NES - - 3a5ec90d556d4920976c5578bfbfaf79 -1 de NES NES - - b7d37d6b786b5a22deea3b038eca96ca -1 es NES NES - - fa3cb1541f9d7cf99ccbae6249bc150c -1 it NES NES - - 6b5a3fef241e90d4b2e77f1e222773ee -1 se NES NES - + 17f7296f63c78642724f057fd8e736a7 2082 gb NES NES - + 91d5db93187fab54d823f73bd6441cb6 -1 us NES NES - + 1c7e7db2cfab1ad62746ab680a634204 -1 fr NES NES - + 3a5ec90d556d4920976c5578bfbfaf79 -1 de NES NES - + b7d37d6b786b5a22deea3b038eca96ca -1 es NES NES - + fa3cb1541f9d7cf99ccbae6249bc150c -1 it NES NES - + 6b5a3fef241e90d4b2e77f1e222773ee -1 se NES NES - e781230da44a44e2f0770edb2b3b3633 -1 en Amiga V2 V2 - dhewg, Andrea Petrucci ce7733f185b838e248927c7ba1a04204 -1 fr Amiga V2 V2 - Tobias Fleischer 9bc548e179cdb0767009401c094d0895 -1 de Amiga V2 V2 - Norbert Lange + 3cf4b6ff78f735b671d8ccc2bc110b15 -1 es Amiga V2 V2 - vanfanel a570381b028972d891052ee1e51dc011 1988 en Atari V2 V2 SS Andreas Bylund 0c331637580950aea2346e012ef2a868 1988 en Atari V2 V2 DS Petr Maruska dd30a53035393baa5a5e222e716559af -1 fr Atari V2 V2 - Andreas Bylund @@ -87,9 +88,9 @@ maniac Maniac Mansion 3a988de37118873ad129246b452909c0 1988 ru DOS V2 Demo V2 Demo non-interactive sev zak Zak McKracken and the Alien Mindbenders - 254fede2f15dbb32a23760d601b01816 -1 en C64 V1 - - - 95be99181bd0f10fef4872c2d4a771cb -1 de C64 V1 - - - aeec382acef62e122bf0d5b14581cfa4 -1 it C64 V1 - - + 254fede2f15dbb32a23760d601b01816 -1 en C64 V1 - - + 95be99181bd0f10fef4872c2d4a771cb -1 de C64 V1 - - + aeec382acef62e122bf0d5b14581cfa4 -1 it C64 V1 - - 7020931d5a2be0a49d68e7a1882363e4 1896 en DOS V1 V1 - Fingolfin b23f7cd7c304d7dff08e92a96120d5b4 -1 en DOS V1 V1 alt? Andrea Petrucci @@ -97,9 +98,9 @@ zak Zak McKracken and the Alien Mindbenders 91469353f7be1b122fa88d23480a1320 -1 fr Amiga V2 V2 - Tobias Fleischer 6027e9ca9c35746d95dee2068cec17e5 -1 de Amiga V2 V2 - Norbert Lange 27b3a4224ad63d5b04627595c1c1a025 -1 it Amiga V2 V2 - Andrea Petrucci - d55eff37c2100f5065cde9de428621fa -1 en Atari V2 V2 - + d55eff37c2100f5065cde9de428621fa -1 en Atari V2 V2 - 613f64f78ea26c7353b2a5940eb61d6a -1 fr Atari V2 V2 - Andreas Bylund - ff05c07990061d97647f059c48c1d05a -1 de Atari V2 V2 - + ff05c07990061d97647f059c48c1d05a -1 de Atari V2 V2 - 675d71151e9b5a968c8ce46d9fbf4cbf 1916 en DOS V2 V2 - Kirben debe337f73d660e951ece7c1f1c81add -1 en DOS V2 V2 alt? Andrea Petrucci 52a4bae0746a11d7b1e8554e91a6645c -1 fr DOS V2 V2 - Andrea Petrucci @@ -110,7 +111,7 @@ zak Zak McKracken and the Alien Mindbenders 75ba23fff4fd63fa446c02864f2a5a4b -1 it DOS V2 V2 alt? Antti Leimi, Andrea Petrucci a77d0efbe786ea7f490c2021dbfa3f2f -1 ru DOS V2 V2 - sev - 2d4536a56e01da4b02eb021e7770afa2 7520 en FM-TOWNS FM-TOWNS - - + 2d4536a56e01da4b02eb021e7770afa2 7520 en FM-TOWNS FM-TOWNS - - 1ca86e2cf9aaa2068738a1e5ba477e60 -1 jp FM-TOWNS FM-TOWNS - - Andrea Petrucci 8299d9b8a1b0e7b881bae7a9971dc5e2 1916 en Atari V2 Demo non-interactive Fingolfin @@ -120,7 +121,7 @@ indy3 Indiana Jones and the Last Crusade e689bdf67f98b1d760ce4487ec0e8d06 -1 fr Amiga EGA EGA - Gerald Vincent 330f631502e381a4e199a3f7cb483c20 -1 de Amiga EGA EGA - dhewg df03ee021aa9b81d90cab9c26da07614 -1 it Amiga EGA EGA - Andrea Petrucci - 62b8c16b6db226ba95aaa8be73f9885c -1 es Amiga EGA EGA - + 62b8c16b6db226ba95aaa8be73f9885c -1 es Amiga EGA EGA - 157367c3c21e0d03a0cba44361b4cf65 -1 en Atari No AdLib EGA - Andreas Bylund 0f9c7a76657f0840b8f7ccb5bffeb9f4 -1 fr Atari No AdLib EGA - Andreas Bylund aaa7f36a253f277dd29dd1c051b0e4b9 -1 de Atari No AdLib EGA - Jimmy Kohl @@ -130,7 +131,7 @@ indy3 Indiana Jones and the Last Crusade 66236cd1aec24e1d4aff4c4cc93b7e18 -1 fr DOS EGA EGA ?? v1.3, 25 Aug 89 Andrea Petrucci, Peter Eckerlein 89cfc425566003ff74b7dc7b3e6fd469 -1 fr DOS EGA EGA ?? v1.3, 25 Aug 89 Jorpho 69d70269fafc4445adbb0d223e4f9a3f 5361 en DOS EGA EGA v1.4, 11/07/89 (5.25\") Petr Maruska - 56e8c37a0a08c3a7076f82417461a877 -1 en DOS EGA EGA v1.4, 7 Nov 89 (3.5\") Paulo Vicente + 56e8c37a0a08c3a7076f82417461a877 -1 en DOS EGA EGA v1.4, 7 Nov 89 (3.5\") Paulo Vicente 6f6ef668c608c7f534fea6e6d3878dde -1 de DOS EGA EGA v1.4 from 19 Oct 89 dhewg, Peter Eckerlein eb700bb73ca1cc44a1ad5e4b1a4bdeaf 5361 de DOS EGA EGA PC-Spiele a.borque d62d248c3df6ec177405e2cb23d923b2 -1 it DOS EGA EGA v1.4 from 25 Nov 89 Andrea Petrucci, Peter Eckerlein @@ -143,7 +144,7 @@ indy3 Indiana Jones and the Last Crusade a15d6e1e2c52bbd0ff7fa6b63ab7f796 680340 en Mac Steam Steam Steam Version Filippos Karapetis 399b217b0c8d65d0398076da486363a9 6295 de DOS VGA VGA VGA v1.02 from 7 Nov 91 Peter Eckerlein, Fingolfin 17b5d5e6af4ae89d62631641d66d5a05 -1 it DOS VGA VGA IBM 256 color v2.1 from 3 May 01 Andrea Petrucci, Peter Eckerlein - 3cce1913a3bc586b51a75c3892ff18dd -1 ru DOS VGA VGA VGA + 3cce1913a3bc586b51a75c3892ff18dd -1 ru DOS VGA VGA VGA 04687cdf7f975a89d2474929f7b80946 7552 en FM-TOWNS FM-TOWNS - v1.00 1/23/91 Fingolfin 3a0c35f3c147b98a2bdf8d400cfc4ab5 -1 jp FM-TOWNS FM-TOWNS - - Paul Priest, Andrea Petrucci @@ -155,8 +156,8 @@ loom Loom 39cb9dec16fa16f38d79acd80effb059 -1 All Amiga EGA EGA IT and FR Gerald Vincent (IT), Andrea Petrucci (FR) 2fe369ad70f52a8cf7ad6077ee64f81a -1 de Amiga EGA EGA - Norbert Lange 48b9f04b348bc5013327753f0d12a144 -1 es Amiga EGA EGA - VooD - a0a7dea72003933b8b3f8b99b9f7ddeb -1 en Atari No AdLib EGA - - 0e9b01430e31d9fcd94071d433bbc6bf -1 fr Atari No AdLib EGA - + a0a7dea72003933b8b3f8b99b9f7ddeb -1 en Atari No AdLib EGA - + 0e9b01430e31d9fcd94071d433bbc6bf -1 fr Atari No AdLib EGA - c24c490373aeb48fbd54caa8e7ae376d -1 de Atari No AdLib EGA - Andreas Bylund 28ef68ee3ed76d7e2ee8ee13c15fbd5b 5748 en DOS EGA EGA v1.0 from 8 Mar 90 Peter Eckerlein, Fingolfin 73e5ab7dbb9a8061cc6d25df02dbd1e7 -1 en DOS EGA EGA v1.0 alt Andrea Petrucci @@ -167,7 +168,7 @@ loom Loom 6f8a22bfa397be1f7ed4b74aba0e397e -1 fr DOS EGA EGA v1.2 26 Jun 90 Jorpho 470c45b636139bb40716daa1c7edaad0 -1 de DOS EGA EGA v1.2 Deutsch from 7 Jun 90 Peter Eckerlein fa127d7c4bb47d05bb1c33ddcaa9f767 5748 de DOS EGA EGA v1.2 Deutsch from 7 Jun 90 Fingolfin - 187d315f6b5168f68680dfe8c3d76a3e -1 he DOS EGA EGA - + 187d315f6b5168f68680dfe8c3d76a3e -1 he DOS EGA EGA - c3df37df9d3b481b45f75283a9907c47 -1 it DOS EGA EGA - Andrea Petrucci 0be88565f734b1e9e77ccaaf3bb14b29 -1 es DOS EGA EGA v1.2 Espanol from 31 Aug 90 George Kormend 2a208ffbcd0e83e86f4356e6f64aa6e1 -1 es DOS EGA EGA v1.2 Espanol from 31 Aug 90 abnog, Andrea Petrucci, Peter Eckerlein @@ -187,10 +188,10 @@ loom Loom a00554c31d623fdb9fcb0f924b89b42b -1 en DOS EGA EGA Demo non-interactive Adrian C. Fruehwirth monkey The Secret of Monkey Island - c666a998af90d81db447eccba9f72c8d -1 en Atari No AdLib EGA - + c666a998af90d81db447eccba9f72c8d -1 en Atari No AdLib EGA - 9e5e0fb43bd22f4628719b7501adb717 -1 fr Atari No AdLib EGA - Andreas Bylund 927a764615c7fcdd72f591355e089d8c -1 de Atari No AdLib EGA - Joachim Eberhard - 0a41311d462b6639fc45297b9044bf16 -1 es Atari No AdLib EGA - + 0a41311d462b6639fc45297b9044bf16 -1 es Atari No AdLib EGA - 49210e124e4c2b30f1290a9ef6306301 8357 en DOS EGA EGA 8 disk v1.0, 9/18/90 Fingolfin 1dd3c11ea4439adfe681e4e405b624e1 -1 fr DOS EGA EGA 8 disk Andrea Petrucci @@ -210,7 +211,7 @@ monkey The Secret of Monkey Island 870d1e3c86bc50846d808d14a36b4e08 -1 es Amiga VGA VGA - Andreas Bylund c7890e038806df2bb5c0c8c6f1986ea2 -1 en DOS VGA VGA 8 disk Andrea Petrucci - 15e03ffbfeddb9c2aebc13dcb2a4a8f4 8357 en DOS VGA VGA 4 disk + 15e03ffbfeddb9c2aebc13dcb2a4a8f4 8357 en DOS VGA VGA 4 disk 08656dd9698ddf1023ba9bf8a195e37b -1 en DOS VGA VGA V1.1 crossbow777 d0b531227a27c6662018d2bd05aac52a 8357 de DOS VGA VGA 4 disk v1.1, 14.Feb.91 Fingolfin 66fd5ff9a810dfeb6d6bdada18221140 -1 it DOS VGA VGA 4 disk Andrea Petrucci @@ -225,9 +226,9 @@ monkey The Secret of Monkey Island da6269b18fcb08189c0aa9c95533cce2 8955 it DOS CD CD CD-ROM v2.3 Fingolfin, Andrej Sinicyn, Andrea Petrucci f049e38c1f8302b5db6170f1872af89a 8955 es DOS CD CD CD-ROM v2.3 Fingolfin, Andrej Sinicyn, Andrea Petrucci 2ccd8891ce4d3f1a334d21bff6a88ca2 9455 en Mac CD - Mac v2.4 Fingolfin, Lars Næsbye Christensen - b9ba19ce376efc69be78ef3baef8d2b9 -1 en Mac CD - alt? Grant Yeager + b9ba19ce376efc69be78ef3baef8d2b9 -1 en Mac CD - alt? Grant Yeager - c13225cb1bbd3bc9fe578301696d8021 -1 en SEGA SEGA - - + c13225cb1bbd3bc9fe578301696d8021 -1 en SEGA SEGA - - 057c9b456dedcc4d71b991a3072a20b3 9465 jp SEGA SEGA - - GloKidd 8eb84cee9b429314c7f0bdcf560723eb 9925 en FM-TOWNS FM-TOWNS - - Paul Priest, Andrea Petrucci @@ -236,6 +237,7 @@ monkey The Secret of Monkey Island 71523b539491527d9860f4407faf0411 7607 en DOS Demo EGA Demo - Fingolfin 771bc18ec6f93837b839c992b211904b -1 de DOS Demo EGA Demo - khalek 54a936ad06161ff7bfefcb96200f7bff 7617 en Amiga VGA VGA Demo - khalek + c0c9de81fb965e6cbe77f6e5631ca705 9135 en DOS SE Talkie Unofficial SE Talkie v1.02 rootfather pass Passport to Adventure e6cd81b25ab1453a8a6d3482118c391e 7857 en DOS - - v1.0 9/14/90 Fingolfin @@ -255,7 +257,7 @@ monkey2 Monkey Island 2: LeChuck's Revenge da669b20271b85182e9c17a2a37ea02e -1 de Amiga - - - Andreas Bylund, Norbert Lange 11ddf1fde76e3156eb3a38da213f484e -1 it Amiga - - - Andrea Petrucci 6ea966b4d660c870b9ee790d1fbfc535 -1 es Amiga - - - Andreas Bylund - 3686cf8f89e102ececf4366e1d2c8126 11135 en DOS - - - + 3686cf8f89e102ececf4366e1d2c8126 11135 en DOS - - - 8e4ee4db46954bfe2912e259a16fad82 -1 fr DOS - - - Nicolas Sauzède, Andrea Petrucci 6886e5d08cee329b1f2e743ae2e3ceed 11135 de DOS - - v1.0D 17Feb92 Fingolfin 69ea626f1f87eecb78ea0d6c6b983a1d -1 it DOS - - - Andrea Petrucci @@ -268,6 +270,7 @@ monkey2 Monkey Island 2: LeChuck's Revenge 430bc518017b6fac046f58bab6baad5d -1 jp FM-TOWNS FM-TOWNS - - Antti Leimi, Andrea Petrucci 387a544b8b10b26912d8413bab63a853 -1 en DOS - Demo non-interactive khalek + f4d20ab4ce19743a646cb48bd93aee72 10835 en DOS SE Talkie Unofficial SE Talkie v0.2 rootfather atlantis Indiana Jones and the Fate of Atlantis 3a03dab514e4038df192d8a8de469788 -1 en Amiga Floppy Floppy - dhewg @@ -295,14 +298,14 @@ atlantis Indiana Jones and the Fate of Atlantis c7be10f775404fd9785a8b92a06d240c 12030 en FM-TOWNS FM-TOWNS - - dhewg, Andrea Petrucci 4d34042713958b971cb139fba4658586 -1 jp FM-TOWNS FM-TOWNS - - Andrea Petrucci - 035deab53b47bc43abc763560d0f8d4b -1 en DOS Floppy Demo - + 035deab53b47bc43abc763560d0f8d4b -1 en DOS Floppy Demo - 98744fe66ff730e8c2b3b1f58803ab0b -1 en DOS Floppy Demo - Simon Krumrein, sev 12cdc256eae5a461bcc9a49975999841 -1 en DOS Floppy Demo - Paulo Vicente - 99b6f822b0b2612415407865438697d6 -1 en DOS - Demo non-interactive + 99b6f822b0b2612415407865438697d6 -1 en DOS - Demo non-interactive 28d24a33448fab6795850bc9f159a4a2 11170 jp FM-TOWNS FM-TOWNS Demo non-interactive khalek, Fingolfin tentacle Day of the Tentacle - acad97ab1c6fc2a5b2d98abf6db4a190 -1 en All? Floppy Floppy Version A ? + acad97ab1c6fc2a5b2d98abf6db4a190 -1 en All? Floppy Floppy Version A ? 2723fea3dae0cb47768c424b145ae0e7 7932 en DOS Floppy Floppy Version B ? Andrej Sinicyn, Andrea Petrucci, Fingolfin f0ccc12a8704bf57706b42a37f877128 -1 en DOS Floppy Floppy 1.6 Paulo Vicente 92b078d9d6d9d751da9c26b8b3075779 -1 fr DOS Floppy Floppy - Nicolas Sauzède, Andrea Petrucci @@ -338,11 +341,11 @@ samnmax Sam & Max Hit the Road 0fb73eddfcf584c02ba097984df131ba 9080 de All? - CD - Fingolfin 0f6f2e716ba896a44e5059bba1de7ca9 -1 it All? - CD - Andrea Petrucci 4ba7fb331296c283e73d8f5b2096e551 -1 es All? - CD - Andrea Petrucci - d43352a805d78b5f4936c6d7779bf575 -1 ru DOS - CD - + d43352a805d78b5f4936c6d7779bf575 -1 ru DOS - CD - 166553538ff320c69edafeee29525419 199195304 en Mac - CD Mac bundle Joachim Eberhard 3a5d13675e9a23aedac0bac7730f0ac1 228446581 fr Mac - CD Mac bundle ThierryFR, Thierry Crozat - c3196c5349e53e387aaff1533d95e53a -1 en DOS Floppy Demo - + c3196c5349e53e387aaff1533d95e53a -1 en DOS Floppy Demo - 0e4c5d54a0ad4b26132e78b5ea76642a 6485 en DOS Floppy Demo WIP Fingolfin d9d0dd93d16ab4dec55cabc2b86bbd17 6478 en DOS - Demo non-interactive Fingolfin cc8ba2b0df2f9c450bcf055fe2711979 7485 de DOS Floppy Demo - Simon Krumrein, sev, Fingolfin @@ -358,12 +361,12 @@ ft Full Throttle 55518cd73cf9c6d23ea29c51ee06bdfe -1 it All? - - - delfino 55e4cc866ff9046824e1c638ba2b8c7f -1 ru All? - Akella - sev 291fb06071e65897f755846611f5ad40 19697 ru All? - 7-Wolf - sev - e72bb4c2b613db2cf50f89ff6350e70a -1 es All? - - - + e72bb4c2b613db2cf50f89ff6350e70a -1 es All? - - - fe381e45117878b1e942cb876b050fd6 513243679 en Mac - - Mac bundle Fingolfin 04401d747f1a2c1c4b388daff71ed378 535405461 de Mac - - Mac bundle Fingolfin 403d2ec4d60d3cdae925e6cbf67716d6 489436643 fr Mac - - Mac bundle Thierry Crozat - 32a433dea56b86a55b59e4ff7d755711 -1 en DOS Demo Demo - + 32a433dea56b86a55b59e4ff7d755711 -1 en DOS Demo Demo - 9d7b67be003fea60be4dcbd193611936 11164 en Mac Demo Demo - Fingolfin 9b7452b5cd6d3ffb2b2f5118010af84f 116463537 en Mac Demo Demo Mac bundle Fingolfin, Joachim Eberhard @@ -381,7 +384,7 @@ dig The Dig comi The Curse of Monkey Island fe60d6b5ff51b0553ac59963123b5777 76791 All Windows - - - Fingolfin - 861e59ed72a1cd0e6d454f7ee7e2bf3d -1 ru Windows - - - + 861e59ed72a1cd0e6d454f7ee7e2bf3d -1 ru Windows - - - 8fec68383202d38c0d25e9e3b757c5df 18041 All Windows Demo Demo - Fingolfin @@ -764,7 +767,7 @@ puttmoon Putt-Putt Goes to the Moon 9c92eeaf517a31b7221ec2546ab669fd -1 en Windows HE 70 - - khalek 3c4c471342bd95505a42334367d8f127 12161 ru Windows HE 70 - - sev - aa6a91b7f6f119d1b7b1f2a4c9e24d59 6233 en DOS - Demo - + aa6a91b7f6f119d1b7b1f2a4c9e24d59 6233 en DOS - Demo - 4af4a6b248103c1fe9edef619677f540 -1 en Mac - Demo - khalek 9c143c5905055d5df7a0f014ab379aee -1 en Windows HE 70 Demo - khalek @@ -792,7 +795,7 @@ puttputt Putt-Putt Joins the Parade 684732efb5799c0f78804c99d8de9aba -1 en Mac HE 62 - - khalek 6a30a07f353a75cdc602db27d73e1b42 -1 en Windows HE 70 - - khalek - 31aa57f460a3d12429f0552a46a90b39 6150 en DOS Demo Demo - + 31aa57f460a3d12429f0552a46a90b39 6150 en DOS Demo Demo - f40a7f495f59188ca57a9d1d50301bb6 -1 en Mac HE 60 Demo - khalek 37ff1b308999c4cca7319edfcc1280a0 8269 en Windows HE 70 Demo - khalek @@ -834,7 +837,7 @@ PuttTime Putt-Putt Travels Through Time 59d5cfcc5e672a6e07baae01328b918b -1 fr All HE 90 Demo - Kirben fbb697d89d2beca87360a145f467bdae -1 de All HE 90 Demo - Joachim Eberhard 6b19d0e25cbf720d05822379b8b90ed9 -1 nl All HE 90 Demo - adutchguy - 0a6d7b81b850ed4a77811c60c9b5c555 18458 us Windows HE 99 Mini Game - eriktorbjorn + 0a6d7b81b850ed4a77811c60c9b5c555 18458 us Windows HE 99 Mini Game - eriktorbjorn a71014c53a6d18c66ef2ea0ee42328e9 18458 nl Windows HE 99 Mini Game - Ben Castricum 8dd4d590685c19bf651b5016e749ead2 18458 fr Windows HE 99 Mini Game - Ben Castricum aef415cc5dc063e3668359c2657169f3 18458 de Windows HE 99 Mini Game - Ben Castricum @@ -859,16 +862,16 @@ dog Putt-Putt and Pep's Dog on a Stick d4b8ee426b1afd3e53bc0cf020418cf6 -1 en Windows HE 99 - - sev activity Putt-Putt & Fatty Bear's Activity Pack - 2c04aacffb8428f30ccf4f734fbe3adc -1 en DOS - - - Kirben + 2c04aacffb8428f30ccf4f734fbe3adc -1 en DOS - - - Kirben 0e96ab45a4eb72acc1b46813976589fd -1 en Mac - - - Kirben - b628506f7def772e40de0aa5440fb8e1 -1 en Windows HE 70 - - Kirben + b628506f7def772e40de0aa5440fb8e1 -1 en Windows HE 70 - - Kirben funpack Putt-Putt's Fun Pack 8afb3cf9f95abf208358e984f0c9e738 -1 en 3DO - - - sev e95cf980719c0be078fb68a67af97b4a -1 jp 3DO - - - clone2727 3d219e7546039543307b55a91282bf18 -1 en DOS - - - iziku 46b53fd430adcfbed791b48a0d4b079f -1 en DOS - - - khalek - 90a329d8ad5b7ce0690429e98cfbb32f -1 he DOS - - - + 90a329d8ad5b7ce0690429e98cfbb32f -1 he DOS - - - PuttsFunShop Putt-Putt's One-Stop Fun Shop 5262a27afcaee04e5c4900220bd463e7 -1 us All - - - Kirben @@ -922,7 +925,7 @@ spyozon SPY Fox 3: Operation Ozone 10d8e66cd11049ce64815ebb9fd76eb3 -1 fr All - - - gist974, ThierryFR 96a3069a3c63caa7329588ce1fef41ee -1 ru All - - - sev 7015b059ab72cff3a0ef9fb4d5e9889d -1 de Windows - - - andy482 - be39a5d4db60e8aa736b9086778cb45c -1 gb Windows - - - + be39a5d4db60e8aa736b9086778cb45c -1 gb Windows - - - ebd0b2c8a387f18887282afe6cad894a 15317 us All - Demo - Kirben a99c39ba65b6086be28aef576da69595 -1 fr Windows - Demo - Mevi diff --git a/devtools/update-version.pl b/devtools/update-version.pl index 337bad3e6c..3b5f892c3f 100755 --- a/devtools/update-version.pl +++ b/devtools/update-version.pl @@ -37,6 +37,7 @@ my @subs_files = qw( dists/scummvm.rc dists/slackware/scummvm.SlackBuild dists/macosx/Info.plist + dists/macosx/dockplugin/Info.plist dists/iphone/Info.plist dists/ios7/Info.plist dists/irix/scummvm.spec diff --git a/dists/engine-data/kyra.dat b/dists/engine-data/kyra.dat Binary files differindex 1b42cfbadc..d49d107f6f 100644 --- a/dists/engine-data/kyra.dat +++ b/dists/engine-data/kyra.dat diff --git a/dists/gcw0/scummvm.sh b/dists/gcw0/scummvm.sh index c12a3030cc..7e2bbaf23e 100755 --- a/dists/gcw0/scummvm.sh +++ b/dists/gcw0/scummvm.sh @@ -6,4 +6,4 @@ if [ ! -f $HOME/.scummvmrc ] ; then cp ./scummvmrc $HOME/.scummvmrc fi -exec ./scummvm +exec ./scummvm 2>&1 >/var/tmp/scummvm.log diff --git a/dists/macosx/Info.plist b/dists/macosx/Info.plist index 7f6170294a..ce05e079df 100644 --- a/dists/macosx/Info.plist +++ b/dists/macosx/Info.plist @@ -53,7 +53,9 @@ <key>NSPrincipalClass</key> <string>NSApplication</string> <key>SUFeedURL</key> - <string>http://www.scummvm.org/appcasts/macosx/release.xml</string> + <string>https://www.scummvm.org/appcasts/macosx/release.xml</string> + <key>NSDockTilePlugIn</key> + <string>scummvm.docktileplugin</string> <key>SUPublicDSAKeyFile</key> <string>dsa_pub.pem</string> </dict> diff --git a/dists/macosx/Info.plist.in b/dists/macosx/Info.plist.in index 55be27d77b..c5f54fe3f0 100644 --- a/dists/macosx/Info.plist.in +++ b/dists/macosx/Info.plist.in @@ -53,7 +53,9 @@ <key>NSPrincipalClass</key> <string>NSApplication</string> <key>SUFeedURL</key> - <string>http://www.scummvm.org/appcasts/macosx/release.xml</string> + <string>https://www.scummvm.org/appcasts/macosx/release.xml</string> + <key>NSDockTilePlugIn</key> + <string>scummvm.docktileplugin</string> <key>SUPublicDSAKeyFile</key> <string>dsa_pub.pem</string> </dict> diff --git a/dists/macosx/dockplugin/Info.plist b/dists/macosx/dockplugin/Info.plist new file mode 100644 index 0000000000..c66f96a6b9 --- /dev/null +++ b/dists/macosx/dockplugin/Info.plist @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleDevelopmentRegion</key> + <string>English</string> + <key>CFBundleExecutable</key> + <string>ScummVMDockTilePlugin</string> + <key>CFBundleSignature</key> + <string>????</string> + <key>CFBundleIdentifier</key> + <string>org.scummvm.scummvm.DockTilePlugin</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundlePackageType</key> + <string>BNDL</string> + <key>CFBundleShortVersionString</key> + <string>1.9.0git</string> + <key>CFBundleVersion</key> + <string>1.9.0git</string> + <key>NSHumanReadableCopyright</key> + <string>Copyright 2001-2016 The ScummVM Team</string> + <key>NSPrincipalClass</key> + <string>ScummVMDockTilePlugIn</string> +</dict> +</plist> diff --git a/dists/macosx/dockplugin/Info.plist.in b/dists/macosx/dockplugin/Info.plist.in new file mode 100644 index 0000000000..851fc70f11 --- /dev/null +++ b/dists/macosx/dockplugin/Info.plist.in @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleDevelopmentRegion</key> + <string>English</string> + <key>CFBundleExecutable</key> + <string>ScummVMDockTilePlugin</string> + <key>CFBundleSignature</key> + <string>????</string> + <key>CFBundleIdentifier</key> + <string>org.scummvm.scummvm.DockTilePlugin</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundlePackageType</key> + <string>BNDL</string> + <key>CFBundleShortVersionString</key> + <string>@VERSION@</string> + <key>CFBundleVersion</key> + <string>@VERSION@</string> + <key>NSHumanReadableCopyright</key> + <string>Copyright 2001-2016 The ScummVM Team</string> + <key>NSPrincipalClass</key> + <string>ScummVMDockTilePlugIn</string> +</dict> +</plist> diff --git a/dists/macosx/dsa_pub.pem b/dists/macosx/dsa_pub.pem new file mode 100644 index 0000000000..13eb86201b --- /dev/null +++ b/dists/macosx/dsa_pub.pem @@ -0,0 +1,36 @@ +-----BEGIN PUBLIC KEY----- +MIIGOjCCBC0GByqGSM44BAEwggQgAoICAQDMnJLkF6tYuyGHM92pO49c0SV927yl +g4uteavJXH/AgJlSr/YmouiK5KrWBPoe5gQsxbFjmrt9L8ocwu9OCxNZHlifv7l0 +V4GbBfk11usFjRZXuIS/7N4RPBe0VDuhBoMdViGPBLCUsC/cmOOz4VtiyS1kW0WL +G2AwWzBT/Zzo4/cDMCys8VBIZjZnjyzxi9u374GdZYNlQ7ts6DbvIxheFBuFG7cg ++XeuB4fz9no1riKM9zEhXtbJJG18/61yvcUj4rOcEYPBFbUXesvuZalVVzYGzZ1G +p39tuAOK6S7W/AzWeDlAGYAOaMvAukAWTSIj/UeuAPPlnaXQLeZ59+7Fbcc7dvMc +SIngNszKbmqTPCAOjE1RWUbFoujxEMcoog0iBKNLvgnC9HEL9sfMNma2107xulf6 +ywcHFLC3f8O8RfTBnU4Q8jwI6pY46w5nZ3lmcDpVqF3OGE71z+OPBkVBJpyiRwFJ +tuCBy4Fc/Vza0QFixoxhREAfxNVza1wrN7DNIFnuhvUM1BwPHx9QvvGAOYJGr+E5 +lrnbpmqYW5icWT/LW+1wlSYTnZeXGTSJFq6Chi6nUyeUov5KdCfJbBu17V727Sj2 +6TKM2HCrE8VmTYSBG99i+2QHhXkV6gOv6reT5lzvzz0BPWRpx9jr48yWU8FxskSE +5z+GxzBYjqY0+QIVAO2l1PedCvhUPXWR7W4cLPo7na3dAoICACW1k1Omwf60vLnG +wmxb6hRV44k3UQ/7pwAIGTsepO0caU/5t5lWnmkPnGliXAe7MkJ5Is3aQFdV0kA8 +b0pBsZCpDW3qnJmSJtnO+21n5HMv2b3MFuzvEOCKXNt8RkJxeK/HaLSPQcMH/1GT +4tCfX7FXZi2VsrV5HxllEVdhMzGC3HBmgXxmO98iVAT9rTfmxqEPwysL/i5DrTXr +6SCLLYF7BR3bRVjp8y4jmIrGCDS+zqUgbWZR81sd3XcO05TLZr/xxBlY/jZYDbjr +VG53lIzHTnWp5nugl9CyXrcnzyvDpM/UaiPXxGPXYuK5X4+Kjo937ZegyNWULx6G ++CbcAbFy6R5KtObj9sInnnLjAt2+pIkUxhl8YZnOTraiRBWgnFAxVjTzEYjwlUF8 +gbg8NnAmLQkr/uWtpxdZ2d81pvlrIj0Y3ltzVPx7h5KyXpKItWm08HdPcYiCSXz8 +TIrioSTUcN0ISspsaujmNlAXMeMidrWLXUwL5fMuZ00p7w8gakgUMqbmeEvTkyJO +iGX5cMqXLp7AXEVFpKzCWg9ebuAWZTkI2v8Kkf466EhIB6OUeeHwWTXpU5Ar8ckU +MCc+FV9cpe+wQv7AN6SdXamUyJySJ07zcDwXHxpXIq32bANAWO/ZrebcLi5AUOs0 +rmiOk+ET2LzzfJjnmBnb0lELrvzbA4ICBQACggIAXh4VEPZbBDyfCvGDTGIjxxs9 +0uApTVBVyAzHTQ+J9OKsaoqbMF8QADczTXaE0ycaZZDcq1jHeAkL/UwAfm1gRyhn +jIWX+quZHv1hI2r114gxkvwa8FNvQKffkeYZ9r7NsCyuhBlSHbFuNgYbByTZ16v6 +s0KfMPgTVMb5LANDD6SwUhb8ggvbEnWrO8l6Cn8tKaCwSVfYF37cECCoqc+yLW+S +0rvJxr/aULAGuEBTA3uwuFOMhWveRNbRqOOfqvOkdGFyUL1zjmNEHNx7qJNU2sni +BbU2DQd01s6uPyWQOXXm77VG1TQo4Z2+OVZSvS8oyNRJaXmqfKf72rW14GERSb40 +qEL6RlltWjPw5Kezv/OdOrE6vKO2uprvpSkOARm9W2jJbJm9hpXvyHUljxJOkYR2 +VxCMVO74DbhDKFuh115wMy2g/FoDy/QbbvgsKOWgBNkgp+xbclo4bJdmvzihwScy +hCeCKKzQDZtu9JSaUnOMvx3hjL7hMAzjRP92Cmly0YoRNuLqzX4OqPTr/Si5au0C +/IiySlBxPUkoP1HQVXm9vU4pI4D/ViDJpXx2UKN9/nFQW1exC/n1TeGavnuT4HY1 +vAt/3wPz3asTCBIULmqGOEsgOo3nN3pfnBmmGDjUWg8i79RNCbLgLkcMtJ0F1xvq +pYCWvL3Wewrmz0Yc790= +-----END PUBLIC KEY----- diff --git a/dists/macosx/scummvm_appcast.xml b/dists/macosx/scummvm_appcast.xml new file mode 100644 index 0000000000..3d47c94bbc --- /dev/null +++ b/dists/macosx/scummvm_appcast.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="utf-8"?> +<rss version="2.0" xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <channel> + <title>ScummVM Changelog</title> + <link>https://www.scummvm.org/appcasts/macosx/release.xml</link> + <description>Most recent changes with links to updates.</description> + <language>en</language> + <item> + <title>Version 1.8.0</title> + <sparkle:releaseNotesLink> + https://scummvm.org/frs/scummvm/1.8.0/ReleaseNotes + </sparkle:releaseNotesLink> + <pubDate>Sat, 5 Mar 2016 20:16:00 +0000</pubDate> + <enclosure url="https://www.scummvm.org/frs/scummvm/1.8.0/scummvm-1.8.0-macosx.dmg" + sparkle:version="1.8.0" length="14085288" type="application/octet-stream" + sparkle:dsaSignature="MC0CFQDNy2yox7vklthHaZcMto8L4EuLwQIUY8cuevlTpLtuJ9nPOlrj4vo55lY=" /> + <enclosure sparkle:os="windows" + url="https://www.scummvm.org/frs/scummvm/1.8.0/scummvm-1.8.0-win32.exe" + sparkle:version="1.8.0" length="9081062" type="application/octet-stream" + sparkle:dsaSignature="MC0CFQCaG7Oo+Nc2EWVmc7GjUBJLKRvt3QIUQcZTMe2FQhfvrrofX4HLTldDHyY=" /> + </item> + <item> + <title>Version 1.7.0</title> + <sparkle:releaseNotesLink> + https://www.scummvm.org/frs/scummvm/1.7.0/ReleaseNotes + </sparkle:releaseNotesLink> + <sparkle:version>1.7.0</sparkle:version> + <pubDate>Tue, 29 Jul 2014 07:58:00 +0000</pubDate> + <link>https://www.scummvm.org/frs/scummvm/1.7.0/</link> + </item> + </channel> +</rss> diff --git a/dists/macosx/scummvm_osx_appcast.xml b/dists/macosx/scummvm_osx_appcast.xml deleted file mode 100644 index 455b062b6b..0000000000 --- a/dists/macosx/scummvm_osx_appcast.xml +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<rss version="2.0" xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle" xmlns:dc="http://purl.org/dc/elements/1.1/"> - <channel> - <title>ScummVM Changelog</title> - <link>http://scummvm.org/scummvm_appcast.xml</link> - <description>Most recent changes with links to updates.</description> - <language>en</language> - <item> - <title>Version 1.2.1 (3 bugs fixed; 2 new features)</title> - <sparkle:releaseNotesLink> - http://sourceforge.net/projects/scummvm/files/scummvm/1.2.1/ReleaseNotes/view - </sparkle:releaseNotesLink> - <pubDate>Sun, 19 Dec 2010 12:20:11 +0000</pubDate> - <enclosure url="http://scummvm.org/ScummVM 1.2.1-Test.zip" sparkle:version="1.2.1" length="1472893" type="application/octet-stream" sparkle:dsaSignature="234818feCa1JyW30nbkBwainOzrN6EQuAh" /> - </item> - <item> - <title>Version 1.2.0</title> - <sparkle:releaseNotesLink> - http://sourceforge.net/projects/scummvm/files/scummvm/1.2.0/ReleaseNotes/view - </sparkle:releaseNotesLink> - <pubDate>Fri, 15 Oct 2010 12:20:11 +0000</pubDate> - <enclosure url="http://scummvm.org/ScummVM 1.2.0-Test.zip" sparkle:version="1.2.0" length="1472893" type="application/octet-stream" sparkle:dsaSignature="234818feCa1JyW30nbkBwainOzrN6EQuAh" /> - </item> - </channel> -</rss> diff --git a/doc/cz/PrectiMe b/doc/cz/PrectiMe index 3c03db9802..030ddac916 100644 --- a/doc/cz/PrectiMe +++ b/doc/cz/PrectiMe @@ -651,7 +651,7 @@ Abyste mohli spustit verzi pro Mac OS X od Wyrmkeep musĆte data zkopĆrovat zĀ <http://wiki.scummvm.org/index.php/HOWTO-Mac_Games>
-I když se vĀ tomto ÄlĆ”nku pĆÅ”e hlavnÄ o hrĆ”ch SCUMM, je zde takĆ© zmĆnÄn nĆ”stroj "HFVExplorer", kterĆ½ potÅebujete kĀ extrakci souborÅÆ. NezapomeÅte, že data ÅeÄi "Inherit the Earth Voices" musĆte umĆstit do stejnĆ©ho adresĆ”Åe, kde jsou uložena data hry:
+I když se vĀ tomto ÄlĆ”nku pĆÅ”e hlavnÄ o hrĆ”ch SCUMM, je zde takĆ© zmĆnÄn nĆ”stroj "HFSExplorer", kterĆ½ potÅebujete kĀ extrakci souborÅÆ. NezapomeÅte, že data ÅeÄi "Inherit the Earth Voices" musĆte umĆstit do stejnĆ©ho adresĆ”Åe, kde jsou uložena data hry:
Inherit the Earth.app/Contents/Resources
@@ -915,7 +915,7 @@ Nebo mÅÆžete použĆt 'extract_mm_c64' zĀ balĆÄku nĆ”strojÅÆ pro extrahovĆ”nĆ 3.26) PoznĆ”mky ke hrĆ”m Macintosh:
----- ---------------------------
-VÅ”echny adventury LucasArts založenĆ© na SCUMM, kromÄ COMI, takĆ© existujĆ ve verzĆch pro in Macintosh. ScummVM mÅÆže vÄtÅ”inu (vÅ”echny?) použĆt, nicmĆ©nÄ, vĀ nÄkterĆ½ch pÅĆpadech je nutnĆ” dodateÄnĆ” prĆ”ce. NejdÅĆve, pokud pro toto nepoužĆvĆ”te Macintosh, pÅĆstup kĀ datÅÆm na CD/disketÄ mÅÆže bĆ½t obtĆžnĆ½. DÅÆvodem je to, že Mac použĆvĆ” zvlĆ”Å”tnĆ formĆ”t disku nazvanĆ½ HFS, kterĆ½ ostatnĆ systĆ©my vÄtÅ”inou nepodporujĆ. NicmĆ©nÄ existuje, nÄkolik nĆ”strojÅÆ, kterĆ© jsou zadarmo a umožÅujĆ ÄĆst takovĆ©to svazky HFS. NapÅĆklad "HFVExplorer" pro Windows a "hfsutils" pro Linux a ostatnĆ UnixovĆ© operaÄnĆ systĆ©my.
+VÅ”echny adventury LucasArts založenĆ© na SCUMM, kromÄ COMI, takĆ© existujĆ ve verzĆch pro in Macintosh. ScummVM mÅÆže vÄtÅ”inu (vÅ”echny?) použĆt, nicmĆ©nÄ, vĀ nÄkterĆ½ch pÅĆpadech je nutnĆ” dodateÄnĆ” prĆ”ce. NejdÅĆve, pokud pro toto nepoužĆvĆ”te Macintosh, pÅĆstup kĀ datÅÆm na CD/disketÄ mÅÆže bĆ½t obtĆžnĆ½. DÅÆvodem je to, že Mac použĆvĆ” zvlĆ”Å”tnĆ formĆ”t disku nazvanĆ½ HFS, kterĆ½ ostatnĆ systĆ©my vÄtÅ”inou nepodporujĆ. NicmĆ©nÄ existuje, nÄkolik nĆ”strojÅÆ, kterĆ© jsou zadarmo a umožÅujĆ ÄĆst takovĆ©to svazky HFS. NapÅĆklad "HFSExplorer" pro Windows a "hfsutils" pro Linux a ostatnĆ UnixovĆ© operaÄnĆ systĆ©my.
VÄtÅ”ina novÄjÅ”Ćch her na Macintosh je dodĆ”vĆ”na pouze sĀ jednĆm datovĆ½m souborem (v nÄkterĆ½ch pÅĆpadech byl tento soubor uÄinÄn neviditelnĆ½m, takže možnĆ” budete potÅebovat dodateÄnĆ© nĆ”stroje, abyste ho mohli zkopĆrovat). ScummVM je schopen takovĆ½to soubor použĆt pÅĆmo; jednoduÅ”e odkažte ScummVM na složku obsahujĆcĆ tento soubor a mÄlo by to fungovat (tak jako sĀ každou podporovanou hrou).
diff --git a/doc/de/Liesmich b/doc/de/Liesmich index f37fc7d396..84eb6b53fd 100644 --- a/doc/de/Liesmich +++ b/doc/de/Liesmich @@ -878,7 +878,7 @@ einem PC arbeiten, lesen Sie hierfĆ¼r: http://wiki.scummvm.org/index.php/HOWTO-Mac_Games Obwohl hier in erster Linie Ć¼ber SCUMM-Spiele gesprochen wird, findet das -Dienstprogramm āHFVExplorerā ErwƤhnung, welches Sie benƶtigen, um die Dateien zu +Dienstprogramm āHFSExplorerā ErwƤhnung, welches Sie benƶtigen, um die Dateien zu extrahieren. Beachten Sie, dass Sie die Sprachausgabedaten aus āInherit the Earth Voicesā im selben Verzeichnis ablegen mĆ¼ssen wie die Spieldaten, die sich an folgendem Ort befinden: @@ -1280,7 +1280,7 @@ kompliziert werden, auf die CD- oder Diskettendaten zuzugreifen. Der Grund hierfĆ¼r ist, dass der Mac ein spezielles DatentrƤgerformat nutzt, welches sich HFS nennt, und das andere Systeme normalerweise nicht unterstĆ¼tzen. Es gibt jedoch zahlreiche kostenlose Tools, die es ermƶglichen, einen solchen -HFS-DatentrƤger zu lesen. Z. B. āHFVExplorerā fĆ¼r Windows und āhfsutilsā fĆ¼r +HFS-DatentrƤger zu lesen. Z. B. āHFSExplorerā fĆ¼r Windows und āhfsutilsā fĆ¼r Linux und andere Betriebssysteme, die Unix Ƥhnlich sind. Die meisten neueren Spiele fĆ¼r den Macintosh wurden nur mit einer einzigen diff --git a/doc/de/Neues b/doc/de/Neues index ef462c189c..e3d8f3a607 100644 --- a/doc/de/Neues +++ b/doc/de/Neues @@ -4,13 +4,94 @@ Programmcodes finden Sie auf Englisch unter: 1.9.0 (DD.MM.YYYY) AGI: - - UnterstĆ¼tzung fĆ¼r Hercules-Darstellung (GrĆ¼n + Bernstein) hinzugefĆ¼gt + - UnterstĆ¼tzung fĆ¼r Hercules-Darstellung (GrĆ¼n + Bernstein) hinzugefĆ¼gt. - UnterstĆ¼tzung fĆ¼r hochauflƶsende Hercules-Schriftart hinzugefĆ¼gt - (auch auĆerhalb der Hercules-Darstellung nutzbar) + (auch auĆerhalb der Hercules-Darstellung nutzbar). - Optionale Funktion "Pause, wenn Befehle eingegeben werden" hinzugefĆ¼gt. Diese Funktion war im originalen Interpreter nur im Hercules-Darstellungsmodus verfĆ¼gbar. +1.8.1 (DD.MM.YYYY) + Allgemein: + - "TESTING"-Markierung von mehreren unterstĆ¼tzten Spielen entfernt. + - Chinesische Ćbersetzung (Pinyin) der BenutzeroberflƤche hinzugefĆ¼gt. + - Ruckeln des Mauszeigers im ScummVM-Programmfenster behoben, welches auf + einigen Systemen auftrat. + + BBVS: + - Fehler beim erneuten Starten des Spiels behoben. + + CinE: + - Fehler beim Laden der Soundeffekte behoben. + + Drascula: + - Text-Ausrichtung ist jetzt originalgetreu. + - Charakter tritt nicht mehr aus dem Bildschirmbereich heraus. + - Laden eines Spielstandes in der "Pendulum"-Szene repariert. + - Falscher Hintergrund fĆ¼r Inventar-GegenstƤnde im Kapitel 6 in der + spanischen Version korrigiert. + - Geschwindigkeit der Animationen korrigiert. Animationen wurden nur halb + so schnell wie im originalen Interpreter abgespielt. + - Rauschen am Beginn und/oder am Ende der Sprachausgabe behoben. + Dieser Fehler trat hauptsƤchlich in der spanischen Version auf. + - Verzƶgerung wƤhrend der Interaktion mit dem Verben-MenĆ¼ und dem Inventar behoben. + - Fehler behoben, durch den die Axt im Schloss mehrfach aufgehoben werden konnte. + + Gob: + - AufhƤngen wƤhrend Sound-Initialisierung in mehreren Spielen behoben. + + KYRA: + - Potentieller Absturz behoben, der in "Hand of Fate" auftritt, wenn der + Sumpfschlangentrank an der Ratte verwendet wird. + (HINWEIS: Dieser Fehler wurde bereits in Version 1.8.0 behoben, + jedoch nicht in der Neues-Datei erwƤhnt). + - Fehlende Stimm-Reaktionen korrigiert, wenn Gegner in der CD-Version von + Lands of Lore getroffen wurden. + + Lab: + - AufhƤngen wƤhrend der End-Sequenz behoben. + - Interne Spiel-Bedienelemente verbessert. + + SAGA: + - Fehlerhafte Farben der Bedienelemente in der franzƶsischen und deutschen + Version von "I Have No Mouth and I Must Scream" korrigiert. + + SCI: + - Cursor-Hilfsroutinen funktionieren nun korrekt auf OpenPandora und anderen + GerƤten, die einen Touchscreen und analoge Sticks/MƤuse zur gleichen Zeit + unterstĆ¼tzen. + - Skript-Fehlerbehebung, um den fehlerhaften Endkampf in der mehrsprachigen + Version von King's Quest 5 zu korrigieren. Betroffen sind die franzƶsische, + deutsche und spanische Version. + - UngĆ¼ltiger Speicherzugriff beim Laden der defekten Audiospur im Abspann + von King's Quest 5 behoben. + - Probleme mit der Einstellung der Bildschirmauflƶsung beim Speichern in + King's Quest 6 behoben. + + SCUMM: + - Erkennung von Maniac Mansion innerhalb von Day of the Tentacle in der + Windows-Version von ScummVM repariert. + - In der EGA-Version von Loom wurde ein Sound-Effekt nicht korrekt angehalten, + wenn AdLib verwendet wurde. Dieser Fehler wurde behoben. + + Baphomets Fluch 2.5: + - Option zur Auswahl von englischer Sprachausgabe anstelle der deutschen, + wenn in der gewƤhlten Sprache keine Sprachausgabe verfĆ¼gbar ist, hinzugefĆ¼gt. + - Ressourcen-Freigabe beim Beenden des Spiels korrigiert. + - Fehler beim Neustart des Spiels nach dem Wechsel der Spiel-Sprache behoben. + - Flackern im HauptmenĆ¼ behoben. + - Lange Dauer des Speichervorgangs unter Windows behoben. + + Windows-Portierung: + - Absturz im Zusammenhang mit nicht-funktionierenden MIDI-GerƤten behoben. + + Mac OS X-Portierung: + - Das Dock-MenĆ¼ fĆ¼r ScummVM enthƤlt nun eine Liste der zuletzt gespielten Spiele, + wenn ScummVM nicht lƤuft, und ermƶglicht den direkten Start dieser Spiele. + - Sparkle-Updater fĆ¼r vereinfachte Programmaktualisierungen hinzugefĆ¼gt. + + GCW0-Portierung: + - Verbesserte UnterstĆ¼tzung fĆ¼r die in ScummVM integrierte Dokumentation. 1.8.0 (04.03.2016) Neue Spiele: @@ -28,7 +109,7 @@ Programmcodes finden Sie auf Englisch unter: hinzugefĆ¼gt. - UnterstĆ¼tzung fĆ¼r Labyrinth of Time hinzugefĆ¼gt. -Neue Portierungen: + Neue Portierungen: - Portierung fĆ¼r den Raspberry Pi hinzugefĆ¼gt. - Portierung fĆ¼r den GCW Zero (GCW0) hinzugefĆ¼gt. @@ -38,7 +119,7 @@ Neue Portierungen: SDL: - Alt+x beendet ScummVM nicht mehr. Verwenden Sie stattdessen Cmd+q/Strg+q/Strg+z und beachten Sie die Hinweise in der Liesmich-Datei. - - Auf POSIX-Systemen befolgen wir nun die Spezifikation XDG Base Directory + - Auf POSIX-Systemen befolgen wir nun die Spezifikation XDG Base Directory fĆ¼r die Speicherung von Benutzerdaten. Dies fĆ¼hrt zu neuen Speicherorten fĆ¼r unsere Konfigurationsdatei, unsere Log-Datei sowie fĆ¼r den standardmƤĆig voreingestellten Speicherort fĆ¼r SpielstƤnde. Wir @@ -66,7 +147,7 @@ Neue Portierungen: (verwendet von Mixed Up Mother Goose). - Feste Verzƶgerung von 2 Sekunden bei Raumwechseln entfernt und durch Heuristik ersetzt. - - Fehlerhafte Tastenbelegungen nach abspeichern/laden behoben + - Fehlerhafte Tastenbelegungen nach abspeichern/laden behoben. AGOS: - Arpeggio-Effekt in der Musik der Amiga-Version von Elvira 1 repariert. @@ -78,7 +159,7 @@ Neue Portierungen: AdLib-Ausgabe erheblich und erhƶht die Originaltreue. Baphomets Fluch 1: - - Sprachausgabe in Macintosh-Versionen korrigiert, wenn ScumMVM + - Sprachausgabe in Macintosh-Versionen korrigiert, wenn ScummVM auf Big-Endian-Systemen ausgefĆ¼hrt wird. - Fehler beim Laden eines Spielstandes aus dem HauptmenĆ¼ in der Bull's Head Hill-Szene korrigiert. Dieser Fehler trat womƶglich auch diff --git a/engines/access/amazon/amazon_logic.cpp b/engines/access/amazon/amazon_logic.cpp index e78f92cda7..08006fe1b7 100644 --- a/engines/access/amazon/amazon_logic.cpp +++ b/engines/access/amazon/amazon_logic.cpp @@ -185,16 +185,24 @@ void CampScene::mWhileDoOpen() { _vm->_numAnimTimers = 0; _vm->_images.clear(); - if (_vm->_conversation == 2) { - // Cutscene at end of Chapter 6 - Resource *spriteData = _vm->_files->loadFile(28, 37); - _vm->_objectsTable[28] = new SpriteResource(_vm, spriteData); - delete spriteData; - - _vm->_animation->freeAnimationData(); - animResource = _vm->_files->loadFile(28, 38); - _vm->_animation->loadAnimations(animResource); - delete animResource; + if (_vm->isCD()) { + if (_vm->_conversation == 2) { + // Cutscene at end of Chapter 6 + Resource *spriteData = _vm->_files->loadFile(28, 37); + _vm->_objectsTable[28] = new SpriteResource(_vm, spriteData); + delete spriteData; + + _vm->_animation->freeAnimationData(); + animResource = _vm->_files->loadFile(28, 38); + _vm->_animation->loadAnimations(animResource); + delete animResource; + } + } else { + _vm->freeCells(); + _vm->_oldRects.clear(); + _vm->_newRects.clear(); + _vm->_numAnimTimers = 0; + _vm->_images.clear(); } } diff --git a/engines/access/bubble_box.cpp b/engines/access/bubble_box.cpp index ef32e96f59..89c5d0727d 100644 --- a/engines/access/bubble_box.cpp +++ b/engines/access/bubble_box.cpp @@ -165,7 +165,7 @@ void BubbleBox::printBubble(const Common::String &msg) { void BubbleBox::printBubble_v1(const Common::String &msg) { drawBubble(_bubbles.size() - 1); - + // Loop through drawing the lines Common::String s = msg; Common::String line; @@ -369,7 +369,7 @@ void BubbleBox::displayBoxData() { _vm->_screen->drawRect(); _vm->_events->showCursor(); } - + _vm->_events->hideCursor(); int oldPStartY = _boxPStartY; ++_boxPStartY; @@ -474,7 +474,7 @@ int BubbleBox::doBox_v1(int item, int box, int &btnSelected) { --_vm->_screen->_orgX2; --_vm->_screen->_orgY2; _vm->_screen->_lColor = 0xF9; - + // Draw the inner border _vm->_screen->drawBox(); @@ -642,7 +642,9 @@ int BubbleBox::doBox_v1(int item, int box, int &btnSelected) { } } } - + + delete icons; + _vm->_screen->restoreScreen(); _vm->_boxDataStart = _startItem; _vm->_boxSelectYOld = -1; @@ -732,7 +734,7 @@ int BubbleBox::doBox_v1(int item, int box, int &btnSelected) { if (_type != TYPE_3) continue; - + if ((_vm->_events->_mousePos.x < tmpX) || (_vm->_events->_mousePos.x > tmpX + 144)) continue; diff --git a/engines/access/char.cpp b/engines/access/char.cpp index cbe1d5d3d9..f6d3033b1b 100644 --- a/engines/access/char.cpp +++ b/engines/access/char.cpp @@ -44,7 +44,7 @@ CharEntry::CharEntry(const byte *data, AccessEngine *vm) { if (vm->getGameID() == GType_MartianMemorandum) { int lastColor = s.readUint16LE(); _numColors = lastColor - _startColor; - } else + } else _numColors = s.readUint16LE(); // Load cells @@ -131,6 +131,7 @@ void CharManager::loadChar(int charId) { if (ce._animFile._fileNum != -1) { Resource *data = _vm->_files->loadFile(ce._animFile); _vm->_animation->loadAnimations(data); + delete data; } // Load script data diff --git a/engines/access/inventory.cpp b/engines/access/inventory.cpp index 0a962aa69a..e9874cd8d6 100644 --- a/engines/access/inventory.cpp +++ b/engines/access/inventory.cpp @@ -223,6 +223,7 @@ int InventoryManager::displayInv() { else _vm->_useItem = -1; + free(names); free(inv); return 0; } diff --git a/engines/access/room.cpp b/engines/access/room.cpp index a7192d330f..a41de63bf6 100644 --- a/engines/access/room.cpp +++ b/engines/access/room.cpp @@ -142,7 +142,7 @@ void Room::takePicture() { _vm->_player->_roomNumber = 7; _vm->_room->_function = FN_CLEAR1; return; - } else if (result >= 0) + } else if (result >= 0) _vm->_player->_move = (Direction)(result + 1); _vm->_player->_scrollFlag = false; @@ -715,6 +715,8 @@ void Room::executeCommand(int commandId) { screen.plotImage(spr, _selectCommand + 2, Common::Point(_rMouse[_selectCommand][0], (_vm->getGameID() == GType_MartianMemorandum) ? 184 : 176)); + delete spr; + _vm->_screen->restoreScreen(); _vm->_boxSelect = true; } diff --git a/engines/access/sound.cpp b/engines/access/sound.cpp index 38f544de4e..448f630501 100644 --- a/engines/access/sound.cpp +++ b/engines/access/sound.cpp @@ -20,9 +20,11 @@ * */ -#include "common/algorithm.h" #include "common/config-manager.h" #include "audio/mixer.h" +#include "audio/audiostream.h" +#include "audio/mididrv.h" +#include "audio/midiparser.h" #include "audio/decoders/raw.h" #include "audio/decoders/wave.h" // Miles Audio diff --git a/engines/access/sound.h b/engines/access/sound.h index b372e566d2..d82ee956b1 100644 --- a/engines/access/sound.h +++ b/engines/access/sound.h @@ -24,14 +24,16 @@ #define ACCESS_SOUND_H #include "common/scummsys.h" -#include "audio/audiostream.h" #include "audio/mixer.h" #include "access/files.h" #include "audio/midiplayer.h" -#include "audio/midiparser.h" #define MAX_SOUNDS 20 +namespace Audio { +class AudioStream; +} + namespace Access { class AccessEngine; diff --git a/engines/access/video/movie_decoder.h b/engines/access/video/movie_decoder.h index fe8a89fcde..8b5d94836b 100644 --- a/engines/access/video/movie_decoder.h +++ b/engines/access/video/movie_decoder.h @@ -23,13 +23,8 @@ #ifndef ACCESS_VIDEO_MOVIE_DECODER_H #define ACCESS_VIDEO_MOVIE_DECODER_H -#include "common/rect.h" #include "video/video_decoder.h" -#include "audio/decoders/raw.h" - -namespace Audio { -class QueuingAudioStream; -} +#include "audio/audiostream.h" namespace Common { class SeekableReadStream; diff --git a/engines/adl/display.h b/engines/adl/display.h index e61477da84..ff01e3faf2 100644 --- a/engines/adl/display.h +++ b/engines/adl/display.h @@ -29,11 +29,11 @@ namespace Common { class ReadStream; class WriteStream; class String; -class Point; +struct Point; } namespace Graphics { -class Surface; +struct Surface; } namespace Adl { @@ -96,7 +96,7 @@ private: uint _cursorPos; bool _showCursor; }; - + } // End of namespace Adl #endif diff --git a/engines/adl/hires1.h b/engines/adl/hires1.h index d9d67c46e4..25f4744d26 100644 --- a/engines/adl/hires1.h +++ b/engines/adl/hires1.h @@ -29,7 +29,7 @@ namespace Common { class ReadStream; -class Point; +struct Point; } namespace Adl { diff --git a/engines/agi/agi.cpp b/engines/agi/agi.cpp index 6e63cd3e71..60c8d1f3ef 100644 --- a/engines/agi/agi.cpp +++ b/engines/agi/agi.cpp @@ -37,7 +37,6 @@ #include "graphics/cursorman.h" #include "audio/mididrv.h" -#include "audio/mixer.h" #include "agi/agi.h" #include "agi/font.h" @@ -404,6 +403,11 @@ AgiEngine::AgiEngine(OSystem *syst, const AGIGameDescription *gameDesc) : AgiBas _lastSaveTime = 0; + _playTimeInSecondsAdjust = 0; + _lastUsedPlayTimeInCycles = 0; + _lastUsedPlayTimeInSeconds = 0; + _passedPlayTimeCycles = 0; + memset(_keyQueue, 0, sizeof(_keyQueue)); _console = nullptr; @@ -419,6 +423,9 @@ AgiEngine::AgiEngine(OSystem *syst, const AGIGameDescription *gameDesc) : AgiBas _inventory = nullptr; _keyHoldMode = false; + + _artificialDelayCurrentRoom = 0; + _artificialDelayCurrentPicture = 0; } void AgiEngine::initialize() { diff --git a/engines/agi/agi.h b/engines/agi/agi.h index b288557f57..1baf0d912f 100644 --- a/engines/agi/agi.h +++ b/engines/agi/agi.h @@ -43,8 +43,6 @@ #include "agi/logic.h" #include "agi/sound.h" -#include "gui/predictivedialog.h" - namespace Common { class RandomSource; } diff --git a/engines/agi/keyboard.cpp b/engines/agi/keyboard.cpp index 3bc45af5d4..7ed67949b5 100644 --- a/engines/agi/keyboard.cpp +++ b/engines/agi/keyboard.cpp @@ -21,6 +21,7 @@ */ #include "common/events.h" +#include "gui/predictivedialog.h" #include "agi/agi.h" #include "agi/graphics.h" diff --git a/engines/agi/op_cmd.cpp b/engines/agi/op_cmd.cpp index fed07ea986..8a62fce86c 100644 --- a/engines/agi/op_cmd.cpp +++ b/engines/agi/op_cmd.cpp @@ -662,7 +662,7 @@ void cmdWordToString(AgiGame *state, AgiEngine *vm, uint8 *parameter) { uint16 stringNr = parameter[0]; uint16 wordNr = parameter[1]; - strcpy(state->strings[stringNr], state->_vm->_words->getEgoWord(wordNr)); + Common::strlcpy(state->strings[stringNr], state->_vm->_words->getEgoWord(wordNr), MAX_STRINGLEN); } void cmdOpenDialogue(AgiGame *state, AgiEngine *vm, uint8 *parameter) { @@ -2014,7 +2014,7 @@ void cmdGetString(AgiGame *state, AgiEngine *vm, uint8 *parameter) { // copy string to destination // TODO: not sure if set all the time or only when ENTER is pressed - strcpy(&state->_vm->_game.strings[stringDestNr][0], (char *)textMgr->_inputString); + Common::strlcpy(&state->_vm->_game.strings[stringDestNr][0], (char *)textMgr->_inputString, MAX_STRINGLEN); textMgr->charPos_Pop(); @@ -2102,7 +2102,7 @@ void cmdSetString(AgiGame *state, AgiEngine *vm, uint8 *parameter) { // CM: to avoid crash in Groza (str = 150) if (stringNr > MAX_STRINGS) return; - strcpy(state->strings[stringNr], state->_curLogic->texts[textNr]); + Common::strlcpy(state->strings[stringNr], state->_curLogic->texts[textNr], MAX_STRINGLEN); } void cmdDisplay(AgiGame *state, AgiEngine *vm, uint8 *parameter) { diff --git a/engines/agi/op_test.cpp b/engines/agi/op_test.cpp index 4b215edc63..4505668fd1 100644 --- a/engines/agi/op_test.cpp +++ b/engines/agi/op_test.cpp @@ -231,8 +231,8 @@ uint8 AgiEngine::testCompareStrings(uint8 s1, uint8 s2) { char ms2[MAX_STRINGLEN]; int j, k, l; - strcpy(ms1, _game.strings[s1]); - strcpy(ms2, _game.strings[s2]); + Common::strlcpy(ms1, _game.strings[s1], MAX_STRINGLEN); + Common::strlcpy(ms2, _game.strings[s2], MAX_STRINGLEN); l = strlen(ms1); for (k = 0, j = 0; k < l; k++) { diff --git a/engines/agi/preagi.cpp b/engines/agi/preagi.cpp index bb5d3b8896..7e2e65a3eb 100644 --- a/engines/agi/preagi.cpp +++ b/engines/agi/preagi.cpp @@ -20,16 +20,14 @@ * */ -#include "common/config-manager.h" +#include "audio/softsynth/pcspk.h" + #include "common/debug-channels.h" #include "common/events.h" #include "common/random.h" -#include "common/textconsole.h" #include "agi/preagi.h" #include "agi/graphics.h" -#include "agi/keyboard.h" -#include "agi/text.h" namespace Agi { diff --git a/engines/agi/preagi.h b/engines/agi/preagi.h index 289b5ecdb9..d6026a5d4d 100644 --- a/engines/agi/preagi.h +++ b/engines/agi/preagi.h @@ -25,7 +25,9 @@ #include "agi/agi.h" -#include "audio/softsynth/pcspk.h" +namespace Audio { +class PCSpeaker; +} namespace Agi { diff --git a/engines/agi/preagi_mickey.cpp b/engines/agi/preagi_mickey.cpp index 620d5e0baf..e1545cdb68 100644 --- a/engines/agi/preagi_mickey.cpp +++ b/engines/agi/preagi_mickey.cpp @@ -1205,7 +1205,7 @@ void MickeyEngine::printStory() { clearScreen(IDA_DEFAULT); for (iRow = 0; iRow < 25; iRow++) { - strcpy(szLine, buffer + pBuf); + Common::strlcpy(szLine, buffer + pBuf, 41); drawStr(iRow, 0, IDA_DEFAULT, szLine); pBuf += strlen(szLine) + 1; } @@ -1213,7 +1213,7 @@ void MickeyEngine::printStory() { clearScreen(IDA_DEFAULT); for (iRow = 0; iRow < 21; iRow++) { - strcpy(szLine, buffer + pBuf); + Common::strlcpy(szLine, buffer + pBuf, 41); drawStr(iRow, 0, IDA_DEFAULT, szLine); pBuf += strlen(szLine) + 1; } diff --git a/engines/agi/preagi_winnie.cpp b/engines/agi/preagi_winnie.cpp index 87ac7c19c6..8fb9daca5e 100644 --- a/engines/agi/preagi_winnie.cpp +++ b/engines/agi/preagi_winnie.cpp @@ -292,7 +292,7 @@ int WinnieEngine::parser(int pc, int index, uint8 *buffer) { } // extract menu string - strcpy(szMenu, (char *)(buffer + pc)); + Common::strlcpy(szMenu, (char *)(buffer + pc), 121); XOR80(szMenu); break; default: diff --git a/engines/agi/saveload.cpp b/engines/agi/saveload.cpp index 0658609cd0..09fce9320b 100644 --- a/engines/agi/saveload.cpp +++ b/engines/agi/saveload.cpp @@ -118,7 +118,7 @@ int AgiEngine::saveGame(const Common::String &fileName, const Common::String &de out->writeByte(2); // was _game.state, 2 = STATE_RUNNING - strcpy(gameIDstring, _game.id); + Common::strlcpy(gameIDstring, _game.id, 8); out->write(gameIDstring, 8); debugC(5, kDebugLevelMain | kDebugLevelSavegame, "Writing game id (%s, %s)", gameIDstring, _game.id); diff --git a/engines/agi/sound_midi.cpp b/engines/agi/sound_midi.cpp index f5c48b3b21..6998df6862 100644 --- a/engines/agi/sound_midi.cpp +++ b/engines/agi/sound_midi.cpp @@ -46,7 +46,6 @@ #include "common/file.h" #include "common/memstream.h" #include "common/stream.h" -#include "common/textconsole.h" #include "agi/agi.h" diff --git a/engines/agi/sound_sarien.cpp b/engines/agi/sound_sarien.cpp index c8a7042ea3..939c3d2c77 100644 --- a/engines/agi/sound_sarien.cpp +++ b/engines/agi/sound_sarien.cpp @@ -22,8 +22,6 @@ #include "common/random.h" -#include "audio/mididrv.h" - #include "agi/agi.h" #include "agi/sound_sarien.h" diff --git a/engines/agi/text.cpp b/engines/agi/text.cpp index 110ba10632..274a654547 100644 --- a/engines/agi/text.cpp +++ b/engines/agi/text.cpp @@ -457,7 +457,7 @@ void TextMgr::drawMessageBox(const char *textPtr, int16 forcedHeight, int16 want // Caller wants to force specified width/height? set it if (forcedHeight) _messageState.textSize_Height = forcedHeight; - + if (forcedWidth) { if (wantedWidth) _messageState.textSize_Width = wantedWidth; @@ -1207,7 +1207,7 @@ char *TextMgr::stringPrintf(const char *originalText) { } assert(resultString.size() < sizeof(resultPrintfBuffer)); - strcpy(resultPrintfBuffer, resultString.c_str()); + Common::strlcpy(resultPrintfBuffer, resultString.c_str(), 2000); return resultPrintfBuffer; } diff --git a/engines/agos/agos.cpp b/engines/agos/agos.cpp index 8952e649fd..48b170da75 100644 --- a/engines/agos/agos.cpp +++ b/engines/agos/agos.cpp @@ -32,6 +32,7 @@ #include "agos/intern.h" #include "agos/agos.h" #include "agos/midi.h" +#include "agos/sound.h" #include "backends/audiocd/audiocd.h" diff --git a/engines/agos/agos.h b/engines/agos/agos.h index b6b5e427e1..551df6e19b 100644 --- a/engines/agos/agos.h +++ b/engines/agos/agos.h @@ -32,8 +32,8 @@ #include "common/rect.h" #include "common/stack.h" #include "common/util.h" +#include "audio/mixer.h" -#include "agos/sound.h" #include "agos/vga.h" /** @@ -77,10 +77,14 @@ uint fileReadItemID(Common::SeekableReadStream *in); class MoviePlayer; #endif +class Sound; class MidiPlayer; struct Child; struct SubObject; +struct RoomState; +struct SubRoom; +struct SubSuperRoom; struct Item; struct WindowBlock; diff --git a/engines/agos/cursor.cpp b/engines/agos/cursor.cpp index 65fdc9ec99..19a38116cf 100644 --- a/engines/agos/cursor.cpp +++ b/engines/agos/cursor.cpp @@ -26,6 +26,7 @@ #include "graphics/cursorman.h" #include "agos/agos.h" +#include "agos/intern.h" namespace AGOS { diff --git a/engines/agos/debugger.cpp b/engines/agos/debugger.cpp index 7ad742c928..365d84dd3f 100644 --- a/engines/agos/debugger.cpp +++ b/engines/agos/debugger.cpp @@ -25,6 +25,7 @@ #include "agos/debugger.h" #include "agos/agos.h" #include "agos/midi.h" +#include "agos/sound.h" namespace AGOS { diff --git a/engines/agos/detection_tables.h b/engines/agos/detection_tables.h index 793d4081cf..90e5a84829 100644 --- a/engines/agos/detection_tables.h +++ b/engines/agos/detection_tables.h @@ -2251,6 +2251,31 @@ static const AGOSGameDescription gameDescriptions[] = { GF_TALKIE }, + // Simon the Sorcerer 2 - Russian DOS CD + { + { + "simon2", + "CD", + + { + { "gsptr30", GAME_BASEFILE, "e26d162e573587f4601b88701292212c", 58851}, + { "icon.dat", GAME_ICONFILE, "72096a62d36e6034ea9fecc13b2dbdab", 18089}, + { "simon2.gme", GAME_GMEFILE, "9c535d403966750ae98bdaf698375a38", 19687892}, + { "stripped.txt", GAME_STRFILE, "e229f84d46fa83f99b4a7115679f3fb6", 171}, + { "tbllist", GAME_TBLFILE, "2082f8d02075e590300478853a91ffd9", 513}, + { NULL, 0, NULL, 0} + }, + Common::RU_RUS, + Common::kPlatformDOS, + ADGF_CD, + GUIO0() + }, + + GType_SIMON2, + GID_SIMON2, + GF_TALKIE + }, + // Simon the Sorcerer 2 - Czech Windows CD { { diff --git a/engines/agos/drivers/accolade/adlib.cpp b/engines/agos/drivers/accolade/adlib.cpp index 294be2b8a7..3a95d8f1c1 100644 --- a/engines/agos/drivers/accolade/adlib.cpp +++ b/engines/agos/drivers/accolade/adlib.cpp @@ -20,16 +20,13 @@ * */ -#include "agos/agos.h" #include "agos/drivers/accolade/mididriver.h" -#include "common/file.h" -#include "common/mutex.h" #include "common/system.h" #include "common/textconsole.h" #include "audio/fmopl.h" -#include "audio/softsynth/emumidi.h" +#include "audio/mididrv.h" namespace AGOS { diff --git a/engines/agos/drivers/accolade/driverfile.cpp b/engines/agos/drivers/accolade/driverfile.cpp index 4ff2fd550f..1e7fd442df 100644 --- a/engines/agos/drivers/accolade/driverfile.cpp +++ b/engines/agos/drivers/accolade/driverfile.cpp @@ -20,7 +20,6 @@ * */ -#include "agos/agos.h" #include "audio/mididrv.h" #include "common/error.h" #include "common/file.h" diff --git a/engines/agos/drivers/accolade/mt32.cpp b/engines/agos/drivers/accolade/mt32.cpp index 319e0ebf56..321b95f4ca 100644 --- a/engines/agos/drivers/accolade/mt32.cpp +++ b/engines/agos/drivers/accolade/mt32.cpp @@ -20,7 +20,6 @@ * */ -#include "agos/agos.h" #include "agos/drivers/accolade/mididriver.h" #include "audio/mididrv.h" diff --git a/engines/agos/event.cpp b/engines/agos/event.cpp index 5240cdd771..b70ec674dd 100644 --- a/engines/agos/event.cpp +++ b/engines/agos/event.cpp @@ -23,6 +23,7 @@ #include "agos/agos.h" #include "agos/animation.h" #include "agos/debugger.h" +#include "agos/sound.h" #include "agos/intern.h" #include "common/events.h" diff --git a/engines/agos/icons.cpp b/engines/agos/icons.cpp index 2db2a52cbc..364fbf5f15 100644 --- a/engines/agos/icons.cpp +++ b/engines/agos/icons.cpp @@ -27,6 +27,7 @@ #include "graphics/surface.h" #include "agos/agos.h" +#include "agos/intern.h" namespace AGOS { diff --git a/engines/agos/input.cpp b/engines/agos/input.cpp index 686b1c35b2..3b57369f1e 100644 --- a/engines/agos/input.cpp +++ b/engines/agos/input.cpp @@ -26,6 +26,7 @@ #include "agos/intern.h" #include "agos/agos.h" #include "agos/midi.h" +#include "agos/sound.h" #include "agos/vga.h" namespace AGOS { diff --git a/engines/agos/res.cpp b/engines/agos/res.cpp index 2631f7998e..76d23905b7 100644 --- a/engines/agos/res.cpp +++ b/engines/agos/res.cpp @@ -31,7 +31,6 @@ #include "agos/agos.h" #include "agos/intern.h" -#include "agos/sound.h" #include "common/zlib.h" diff --git a/engines/agos/res_snd.cpp b/engines/agos/res_snd.cpp index 3a092e652c..81d89cc4d3 100644 --- a/engines/agos/res_snd.cpp +++ b/engines/agos/res_snd.cpp @@ -28,6 +28,7 @@ #include "agos/intern.h" #include "agos/agos.h" #include "agos/midi.h" +#include "agos/sound.h" #include "agos/vga.h" #include "backends/audiocd/audiocd.h" diff --git a/engines/agos/saveload.cpp b/engines/agos/saveload.cpp index b968ae645c..66a7fa90b3 100644 --- a/engines/agos/saveload.cpp +++ b/engines/agos/saveload.cpp @@ -25,7 +25,6 @@ #include "common/textconsole.h" #include "common/translation.h" -#include "gui/about.h" #include "gui/message.h" #include "agos/agos.h" diff --git a/engines/agos/script.cpp b/engines/agos/script.cpp index 1dbb9c255a..5f4ff4e773 100644 --- a/engines/agos/script.cpp +++ b/engines/agos/script.cpp @@ -27,8 +27,8 @@ #include "common/system.h" #include "common/textconsole.h" -#include "agos/animation.h" #include "agos/agos.h" +#include "agos/intern.h" #ifdef _WIN32_WCE extern bool isSmartphone(); diff --git a/engines/agos/script_e1.cpp b/engines/agos/script_e1.cpp index a022335ebc..38b29d475e 100644 --- a/engines/agos/script_e1.cpp +++ b/engines/agos/script_e1.cpp @@ -22,6 +22,7 @@ #include "agos/agos.h" +#include "agos/intern.h" #include "agos/vga.h" namespace AGOS { diff --git a/engines/agos/script_e2.cpp b/engines/agos/script_e2.cpp index 21b651ec12..d0cd015ce9 100644 --- a/engines/agos/script_e2.cpp +++ b/engines/agos/script_e2.cpp @@ -23,6 +23,7 @@ #include "agos/agos.h" +#include "agos/intern.h" namespace AGOS { diff --git a/engines/agos/script_ff.cpp b/engines/agos/script_ff.cpp index e4fadcf360..10c9e995d4 100644 --- a/engines/agos/script_ff.cpp +++ b/engines/agos/script_ff.cpp @@ -28,6 +28,8 @@ #include "agos/animation.h" #include "agos/agos.h" +#include "agos/intern.h" +#include "agos/sound.h" namespace AGOS { diff --git a/engines/agos/script_pn.cpp b/engines/agos/script_pn.cpp index 60948db35a..653a162904 100644 --- a/engines/agos/script_pn.cpp +++ b/engines/agos/script_pn.cpp @@ -21,6 +21,7 @@ */ #include "agos/agos.h" +#include "agos/intern.h" #include "agos/vga.h" #include "common/endian.h" diff --git a/engines/agos/script_s1.cpp b/engines/agos/script_s1.cpp index ec3de9bf94..e7828609d9 100644 --- a/engines/agos/script_s1.cpp +++ b/engines/agos/script_s1.cpp @@ -26,6 +26,8 @@ #include "graphics/palette.h" #include "agos/agos.h" +#include "agos/intern.h" +#include "agos/sound.h" #ifdef _WIN32_WCE extern bool isSmartphone(); diff --git a/engines/agos/script_s2.cpp b/engines/agos/script_s2.cpp index 44552ecd8a..7b1f369d68 100644 --- a/engines/agos/script_s2.cpp +++ b/engines/agos/script_s2.cpp @@ -23,6 +23,7 @@ #include "agos/agos.h" +#include "agos/intern.h" #include "agos/midi.h" #include "common/textconsole.h" diff --git a/engines/agos/script_ww.cpp b/engines/agos/script_ww.cpp index aff3229f8e..9394311001 100644 --- a/engines/agos/script_ww.cpp +++ b/engines/agos/script_ww.cpp @@ -23,6 +23,7 @@ #include "agos/agos.h" +#include "agos/intern.h" namespace AGOS { diff --git a/engines/agos/string.cpp b/engines/agos/string.cpp index 3eb0aca04d..cc443f2f50 100644 --- a/engines/agos/string.cpp +++ b/engines/agos/string.cpp @@ -25,7 +25,6 @@ #include "common/file.h" #include "common/textconsole.h" -#include "gui/about.h" #include "gui/message.h" #include "agos/agos.h" @@ -127,14 +126,14 @@ const byte *AGOSEngine::getStringPtrByID(uint16 stringId, bool upperCase) { _awaitTwoByteToken = 0; uncompressText(ptr); _textBuffer[_textCount] = 0; - strcpy((char *)dst, (const char *)_textBuffer); + Common::strlcpy((char *)dst, (const char *)_textBuffer, 180); } else { if (stringId < 0x8000) { stringPtr = _stringTabPtr[stringId]; } else { stringPtr = getLocalStringByID(stringId); } - strcpy((char *)dst, (const char *)stringPtr); + Common::strlcpy((char *)dst, (const char *)stringPtr, 180); } // WORKAROUND bug #1538873: The French version of Simon 1 and the @@ -797,7 +796,7 @@ void AGOSEngine_Feeble::printInteractText(uint16 num, const char *string) { if (*string2 == 0x00) { if (w == 0xFFFF) w = pixels; - strcpy(convertedString2, string); + Common::strlcpy(convertedString2, string, 320); break; } while (*string2 != ' ') { diff --git a/engines/agos/string_pn.cpp b/engines/agos/string_pn.cpp index 7a364f3ea9..06c8bbd98e 100644 --- a/engines/agos/string_pn.cpp +++ b/engines/agos/string_pn.cpp @@ -114,7 +114,7 @@ void AGOSEngine_PN::getObjectName(char *v, uint16 x) { } void AGOSEngine_PN::pcl(const char *s) { - strcat(_sb, s); + Common::strlcat(_sb, s, 80); if (strchr(s, '\n') == 0) { for (char *str = _sb; *str; str++) windowPutChar(_windowArray[_curWindow], *str); diff --git a/engines/agos/subroutine.cpp b/engines/agos/subroutine.cpp index 1e6ecaa829..0f6c767300 100644 --- a/engines/agos/subroutine.cpp +++ b/engines/agos/subroutine.cpp @@ -26,6 +26,7 @@ #include "agos/agos.h" #include "agos/intern.h" +#include "agos/sound.h" namespace AGOS { diff --git a/engines/agos/vga.cpp b/engines/agos/vga.cpp index f761c3fc3f..2a675bf6e8 100644 --- a/engines/agos/vga.cpp +++ b/engines/agos/vga.cpp @@ -25,6 +25,7 @@ #include "agos/agos.h" #include "agos/intern.h" +#include "agos/sound.h" #include "agos/vga.h" #include "common/debug-channels.h" diff --git a/engines/agos/vga_e2.cpp b/engines/agos/vga_e2.cpp index bc26058640..a26f189c43 100644 --- a/engines/agos/vga_e2.cpp +++ b/engines/agos/vga_e2.cpp @@ -25,6 +25,7 @@ #include "agos/agos.h" #include "agos/intern.h" +#include "agos/sound.h" #include "common/endian.h" #include "common/system.h" diff --git a/engines/agos/vga_ff.cpp b/engines/agos/vga_ff.cpp index 52e30699b0..c350c37413 100644 --- a/engines/agos/vga_ff.cpp +++ b/engines/agos/vga_ff.cpp @@ -26,6 +26,7 @@ #include "agos/agos.h" #include "agos/intern.h" +#include "agos/sound.h" namespace AGOS { diff --git a/engines/agos/vga_s1.cpp b/engines/agos/vga_s1.cpp index c5f0f7874d..9b7e529e4b 100644 --- a/engines/agos/vga_s1.cpp +++ b/engines/agos/vga_s1.cpp @@ -24,6 +24,7 @@ #include "agos/agos.h" #include "agos/intern.h" +#include "agos/sound.h" #include "agos/vga.h" namespace AGOS { diff --git a/engines/agos/vga_s2.cpp b/engines/agos/vga_s2.cpp index 0c716d06c4..5326e0250f 100644 --- a/engines/agos/vga_s2.cpp +++ b/engines/agos/vga_s2.cpp @@ -23,6 +23,7 @@ #include "agos/agos.h" #include "agos/intern.h" #include "agos/midi.h" +#include "agos/sound.h" #include "graphics/surface.h" diff --git a/engines/avalanche/animation.cpp b/engines/avalanche/animation.cpp index 451b4a1c68..6946e448d8 100644 --- a/engines/avalanche/animation.cpp +++ b/engines/avalanche/animation.cpp @@ -27,6 +27,7 @@ /* TRIP5 Trippancy V - the sprite animation subsystem */ +#include "common/system.h" #include "avalanche/avalanche.h" #include "avalanche/animation.h" diff --git a/engines/avalanche/avalanche.cpp b/engines/avalanche/avalanche.cpp index 6cfe4dfdb6..8726ef784a 100644 --- a/engines/avalanche/avalanche.cpp +++ b/engines/avalanche/avalanche.cpp @@ -29,6 +29,7 @@ #include "common/random.h" #include "common/savefile.h" +#include "common/system.h" #include "graphics/thumbnail.h" namespace Avalanche { diff --git a/engines/avalanche/clock.cpp b/engines/avalanche/clock.cpp index 6d398d9921..4276e41d99 100644 --- a/engines/avalanche/clock.cpp +++ b/engines/avalanche/clock.cpp @@ -28,6 +28,8 @@ #include "avalanche/clock.h" #include "avalanche/avalanche.h" +#include "common/system.h" + namespace Avalanche { Clock::Clock(AvalancheEngine *vm) { diff --git a/engines/avalanche/dialogs.cpp b/engines/avalanche/dialogs.cpp index f95440900b..d1a7234b03 100644 --- a/engines/avalanche/dialogs.cpp +++ b/engines/avalanche/dialogs.cpp @@ -30,6 +30,7 @@ #include "avalanche/avalanche.h" #include "avalanche/dialogs.h" +#include "common/system.h" #include "common/random.h" namespace Avalanche { diff --git a/engines/avalanche/ghostroom.cpp b/engines/avalanche/ghostroom.cpp index 047a3670c2..254bf5e174 100644 --- a/engines/avalanche/ghostroom.cpp +++ b/engines/avalanche/ghostroom.cpp @@ -29,6 +29,7 @@ #include "avalanche/ghostroom.h" #include "common/random.h" +#include "common/system.h" namespace Avalanche { diff --git a/engines/avalanche/graphics.cpp b/engines/avalanche/graphics.cpp index 60c23594d3..03c9e9e3cb 100644 --- a/engines/avalanche/graphics.cpp +++ b/engines/avalanche/graphics.cpp @@ -28,6 +28,7 @@ #include "avalanche/avalanche.h" #include "avalanche/graphics.h" +#include "common/system.h" #include "engines/util.h" #include "graphics/palette.h" diff --git a/engines/avalanche/highscore.cpp b/engines/avalanche/highscore.cpp index 5f47aeb894..b977e2f33c 100644 --- a/engines/avalanche/highscore.cpp +++ b/engines/avalanche/highscore.cpp @@ -29,6 +29,7 @@ #include "avalanche/highscore.h" #include "common/savefile.h" +#include "common/system.h" namespace Avalanche { diff --git a/engines/avalanche/mainmenu.cpp b/engines/avalanche/mainmenu.cpp index 543684556c..ff24b37e0d 100644 --- a/engines/avalanche/mainmenu.cpp +++ b/engines/avalanche/mainmenu.cpp @@ -28,6 +28,8 @@ #include "avalanche/avalanche.h" #include "avalanche/mainmenu.h" +#include "common/system.h" + namespace Avalanche { MainMenu::MainMenu(AvalancheEngine *vm) { diff --git a/engines/avalanche/nim.cpp b/engines/avalanche/nim.cpp index b17af8767a..a0a1756e0a 100644 --- a/engines/avalanche/nim.cpp +++ b/engines/avalanche/nim.cpp @@ -28,6 +28,8 @@ #include "avalanche/avalanche.h" #include "avalanche/nim.h" +#include "common/system.h" + namespace Avalanche { const char * const Nim::kNames[2] = {"Avalot", "Dogfood"}; diff --git a/engines/avalanche/parser.cpp b/engines/avalanche/parser.cpp index 7c6d254099..112dce93ac 100644 --- a/engines/avalanche/parser.cpp +++ b/engines/avalanche/parser.cpp @@ -30,6 +30,7 @@ #include "avalanche/nim.h" #include "gui/saveload.h" +#include "common/system.h" #include "common/translation.h" namespace Avalanche { diff --git a/engines/avalanche/shootemup.cpp b/engines/avalanche/shootemup.cpp index e5e44ed934..7f6cf99974 100644 --- a/engines/avalanche/shootemup.cpp +++ b/engines/avalanche/shootemup.cpp @@ -29,6 +29,7 @@ #include "avalanche/shootemup.h" #include "common/random.h" +#include "common/system.h" namespace Avalanche { diff --git a/engines/avalanche/sound.cpp b/engines/avalanche/sound.cpp index 0223bead48..a441121e90 100644 --- a/engines/avalanche/sound.cpp +++ b/engines/avalanche/sound.cpp @@ -23,7 +23,7 @@ #include "avalanche/avalanche.h" #include "avalanche/sound.h" -#include "audio/audiostream.h" +#include "audio/softsynth/pcspk.h" #include "common/config-manager.h" namespace Avalanche { diff --git a/engines/avalanche/sound.h b/engines/avalanche/sound.h index a67016a206..f9775654b4 100644 --- a/engines/avalanche/sound.h +++ b/engines/avalanche/sound.h @@ -24,7 +24,10 @@ #define AVALANCHE_SOUND_H #include "audio/mixer.h" -#include "audio/softsynth/pcspk.h" + +namespace Audio { +class PCSpeaker; +} namespace Avalanche { diff --git a/engines/bbvs/bbvs.cpp b/engines/bbvs/bbvs.cpp index 6ae663479d..e7b20512a2 100644 --- a/engines/bbvs/bbvs.cpp +++ b/engines/bbvs/bbvs.cpp @@ -34,6 +34,7 @@ #include "bbvs/minigames/minigame.h" #include "audio/audiostream.h" +#include "audio/decoders/aiff.h" #include "common/config-manager.h" #include "common/debug-channels.h" #include "common/error.h" diff --git a/engines/bbvs/bbvs.h b/engines/bbvs/bbvs.h index ff4afe9526..8d9550d423 100644 --- a/engines/bbvs/bbvs.h +++ b/engines/bbvs/bbvs.h @@ -24,7 +24,6 @@ #define BBVS_BBVS_H #include "audio/mixer.h" -#include "audio/decoders/aiff.h" #include "common/array.h" #include "common/events.h" #include "common/file.h" diff --git a/engines/bbvs/dialogs.cpp b/engines/bbvs/dialogs.cpp index c8470f8eef..1609794c73 100644 --- a/engines/bbvs/dialogs.cpp +++ b/engines/bbvs/dialogs.cpp @@ -22,10 +22,13 @@ #include "bbvs/dialogs.h" #include "common/events.h" -#include "gui/gui-manager.h" -#include "gui/ThemeEval.h" +#include "gui/widget.h" #include "engines/advancedDetector.h" +namespace GUI { +class CommandSender; +} + namespace Bbvs { struct MenuButton { diff --git a/engines/bbvs/dialogs.h b/engines/bbvs/dialogs.h index 7db0b182b7..af1f70e9a7 100644 --- a/engines/bbvs/dialogs.h +++ b/engines/bbvs/dialogs.h @@ -25,7 +25,11 @@ #include "bbvs/bbvs.h" #include "gui/dialog.h" -#include "gui/widgets/edittext.h" + +namespace GUI { +class ButtonWidget; +class CommandSender; +} namespace Bbvs { diff --git a/engines/bbvs/minigames/bbairguitar.cpp b/engines/bbvs/minigames/bbairguitar.cpp index 04175f7290..f826667134 100644 --- a/engines/bbvs/minigames/bbairguitar.cpp +++ b/engines/bbvs/minigames/bbairguitar.cpp @@ -25,7 +25,6 @@ #include "common/savefile.h" #include "common/translation.h" -#include "gui/dialog.h" #include "gui/message.h" #include "gui/filebrowser-dialog.h" diff --git a/engines/bbvs/sound.cpp b/engines/bbvs/sound.cpp index 7f9c00ad48..587868f26d 100644 --- a/engines/bbvs/sound.cpp +++ b/engines/bbvs/sound.cpp @@ -21,6 +21,7 @@ */ #include "bbvs/sound.h" +#include "audio/audiostream.h" #include "audio/decoders/aiff.h" #include "common/debug.h" #include "common/file.h" diff --git a/engines/bbvs/sound.h b/engines/bbvs/sound.h index 4d3253c48e..a21d97b7ed 100644 --- a/engines/bbvs/sound.h +++ b/engines/bbvs/sound.h @@ -23,10 +23,13 @@ #ifndef BBVS_SOUND_H #define BBVS_SOUND_H -#include "audio/audiostream.h" #include "audio/mixer.h" #include "common/array.h" +namespace Audio { +class RewindableAudioStream; +} + namespace Bbvs { class Sound { diff --git a/engines/cge/events.cpp b/engines/cge/events.cpp index c2f8982592..5d3d0a16a0 100644 --- a/engines/cge/events.cpp +++ b/engines/cge/events.cpp @@ -26,8 +26,6 @@ */ #include "gui/saveload.h" -#include "gui/about.h" -#include "gui/message.h" #include "common/config-manager.h" #include "common/events.h" #include "common/translation.h" diff --git a/engines/cge/sound.cpp b/engines/cge/sound.cpp index 370b768bca..3af094ef06 100644 --- a/engines/cge/sound.cpp +++ b/engines/cge/sound.cpp @@ -30,8 +30,10 @@ #include "cge/cge_main.h" #include "common/config-manager.h" #include "common/memstream.h" -#include "audio/decoders/raw.h" #include "audio/audiostream.h" +#include "audio/decoders/wave.h" +#include "audio/mididrv.h" +#include "audio/midiparser.h" namespace CGE { diff --git a/engines/cge/sound.h b/engines/cge/sound.h index dc67f9408b..8e624ee575 100644 --- a/engines/cge/sound.h +++ b/engines/cge/sound.h @@ -29,15 +29,14 @@ #define CGE_SOUND_H #include "cge/fileio.h" -#include "audio/audiostream.h" -#include "audio/decoders/wave.h" -#include "audio/fmopl.h" -#include "audio/mididrv.h" -#include "audio/midiparser.h" #include "audio/midiplayer.h" #include "audio/mixer.h" #include "common/memstream.h" +namespace Audio { +class RewindableAudioStream; +} + namespace CGE { class CGEEngine; diff --git a/engines/cge2/events.cpp b/engines/cge2/events.cpp index 96cecc8e23..2dac04a0a5 100644 --- a/engines/cge2/events.cpp +++ b/engines/cge2/events.cpp @@ -26,8 +26,6 @@ */ #include "gui/saveload.h" -#include "gui/about.h" -#include "gui/message.h" #include "common/config-manager.h" #include "common/events.h" #include "common/translation.h" diff --git a/engines/cge2/saveload.cpp b/engines/cge2/saveload.cpp index 7735c077a6..cd0be84567 100644 --- a/engines/cge2/saveload.cpp +++ b/engines/cge2/saveload.cpp @@ -25,7 +25,7 @@ * Copyright (c) 1994-1997 Janus B. Wisniewski and L.K. Avalon */ -#include "common/config-manager.h" +#include "common/memstream.h" #include "common/savefile.h" #include "common/system.h" #include "graphics/thumbnail.h" @@ -36,8 +36,6 @@ #include "cge2/snail.h" #include "cge2/hero.h" #include "cge2/text.h" -#include "cge2/sound.h" -#include "cge2/cge2_main.h" namespace CGE2 { diff --git a/engines/cge2/sound.cpp b/engines/cge2/sound.cpp index 57ec5983e8..691414d84a 100644 --- a/engines/cge2/sound.cpp +++ b/engines/cge2/sound.cpp @@ -26,10 +26,11 @@ */ #include "cge2/sound.h" -#include "common/config-manager.h" #include "common/memstream.h" -#include "audio/decoders/raw.h" #include "audio/audiostream.h" +#include "audio/decoders/wave.h" +#include "audio/mididrv.h" +#include "audio/midiparser.h" #include "cge2/cge2.h" namespace CGE2 { diff --git a/engines/cge2/sound.h b/engines/cge2/sound.h index 02afe610a2..8c16f06e97 100644 --- a/engines/cge2/sound.h +++ b/engines/cge2/sound.h @@ -28,19 +28,17 @@ #ifndef CGE2_SOUND_H #define CGE2_SOUND_H -#include "cge2/fileio.h" -#include "audio/audiostream.h" -#include "audio/decoders/wave.h" -#include "audio/fmopl.h" -#include "audio/mididrv.h" -#include "audio/midiparser.h" #include "audio/midiplayer.h" #include "audio/mixer.h" -#include "common/memstream.h" + +namespace Audio { +class RewindableAudioStream; +} namespace CGE2 { class CGE2Engine; +class EncryptedStream; // sample info struct SmpInfo { diff --git a/engines/cge2/vga13h.cpp b/engines/cge2/vga13h.cpp index 54f5c00d93..8b0d8b6c77 100644 --- a/engines/cge2/vga13h.cpp +++ b/engines/cge2/vga13h.cpp @@ -952,8 +952,9 @@ uint8 Vga::closest(Dac *pal, const uint8 colR, const uint8 colG, const uint8 col } uint8 Vga::closest(Dac *pal, Dac x) { - int exp = (sizeof(long) * 8 - 1); - long D = (1 << exp) - 1; // Maximum value of long. + long D = 0; + D = ~D; + D = (unsigned long)D >> 1; // Maximum value of long. long R = x._r; long G = x._g; long B = x._b; diff --git a/engines/composer/composer.cpp b/engines/composer/composer.cpp index f070338978..73d97e100d 100644 --- a/engines/composer/composer.cpp +++ b/engines/composer/composer.cpp @@ -21,13 +21,9 @@ */ #include "common/scummsys.h" -#include "common/config-manager.h" #include "common/events.h" -#include "common/file.h" #include "common/random.h" -#include "common/fs.h" #include "common/keyboard.h" -#include "common/substream.h" #include "graphics/cursorman.h" #include "graphics/surface.h" @@ -35,9 +31,6 @@ #include "graphics/wincursor.h" #include "engines/util.h" -#include "engines/advancedDetector.h" - -#include "audio/audiostream.h" #include "composer/composer.h" #include "composer/graphics.h" diff --git a/engines/composer/composer.h b/engines/composer/composer.h index 47398fe36d..234494e655 100644 --- a/engines/composer/composer.h +++ b/engines/composer/composer.h @@ -28,6 +28,7 @@ #include "common/system.h" #include "common/debug.h" #include "common/debug-channels.h" +#include "common/error.h" #include "common/textconsole.h" #include "common/rect.h" diff --git a/engines/composer/detection.cpp b/engines/composer/detection.cpp index a3ab18ae54..689a72a743 100644 --- a/engines/composer/detection.cpp +++ b/engines/composer/detection.cpp @@ -253,6 +253,36 @@ static const ComposerGameDescription gameDescriptions[] = { GType_ComposerV2 }, + { // Provided by WindlePoons, "100% Kids Darby & Gregor" Pack. Bugreport #6825 + { + "darby", + 0, + { + {"book.ini", 0, "285308372f7dddff2ca5a25c9192cf5c", 2545}, + {"page99.rsc", 0, "40b4879e9ba6a34d6aa2a9d2e30c5ef7", 1286480}, + AD_LISTEND + }, + Common::DE_DEU, + Common::kPlatformWindows, + ADGF_NO_FLAGS, + GUIO1(GUIO_NOASPECT) + }, + GType_ComposerV2 + }, + + { // Provided by Niv Baehr, Bugreport #6878 + { + "darby", + 0, + AD_ENTRY1("page99.rsc", "183463d18c050563dcdec2d9f9670515"), + Common::HE_ISR, + Common::kPlatformWindows, + ADGF_NO_FLAGS, + GUIO1(GUIO_NOASPECT) + }, + GType_ComposerV2 + }, + { { "gregory", @@ -296,6 +326,23 @@ static const ComposerGameDescription gameDescriptions[] = { GType_ComposerV2 }, + { // Provided by WindlePoons, "100% Kids Darby & Gregor" Pack. Bugreport #6825 + { + "gregory", + 0, + { + {"book.ini", 0, "e54fc5c00de5f94e908a969e445af5d0", 2234}, + {"page99.rsc", 0, "1ae6610de621a9901bf87b874fbf331f", 388644}, + AD_LISTEND + }, + Common::DE_DEU, + Common::kPlatformWindows, + ADGF_NO_FLAGS, + GUIO1(GUIO_NOASPECT) + }, + GType_ComposerV2 + }, + { // Provided by sev { "princess", diff --git a/engines/cruise/ctp.cpp b/engines/cruise/ctp.cpp index 9515b552e1..4458e39e91 100644 --- a/engines/cruise/ctp.cpp +++ b/engines/cruise/ctp.cpp @@ -307,7 +307,7 @@ int initCt(const char *ctpName) { MemFree(ptr); if (ctpName != currentCtpName) - strcpy(currentCtpName, ctpName); + Common::strlcpy(currentCtpName, ctpName, 40); numberOfWalkboxes = segementSizeTable[6] / 2; // get the number of walkboxes diff --git a/engines/cruise/dataLoader.cpp b/engines/cruise/dataLoader.cpp index 7a1258dbde..2eff82bc61 100644 --- a/engines/cruise/dataLoader.cpp +++ b/engines/cruise/dataLoader.cpp @@ -249,12 +249,19 @@ int loadFile(const char* name, int idx, int destIdx) { int numMaxEntriesInSet = getNumMaxEntiresInSet(ptr); if (destIdx > numMaxEntriesInSet) { + MemFree(ptr); return 0; // exit if limit is reached } - return loadSetEntry(name, ptr, destIdx, idx); + int res = loadSetEntry(name, ptr, destIdx, idx); + MemFree(ptr); + + return res; } case type_FNT: { - return loadFNTSub(ptr, idx); + int res = loadFNTSub(ptr, idx); + MemFree(ptr); + + return res; } case type_SPL: { // Sound file diff --git a/engines/cruise/sound.cpp b/engines/cruise/sound.cpp index f57435f4f7..b477dcdf9c 100644 --- a/engines/cruise/sound.cpp +++ b/engines/cruise/sound.cpp @@ -29,10 +29,11 @@ #include "cruise/sound.h" #include "cruise/volume.h" -#include "audio/audiostream.h" #include "audio/fmopl.h" -#include "audio/mixer.h" -#include "audio/mods/soundfx.h" + +namespace Audio { +class Mixer; +} namespace Cruise { diff --git a/engines/dialogs.cpp b/engines/dialogs.cpp index 8498e50b8d..a21a4a8126 100644 --- a/engines/dialogs.cpp +++ b/engines/dialogs.cpp @@ -43,13 +43,13 @@ #include "engines/engine.h" #include "engines/metaengine.h" -#ifdef SMALL_SCREEN_DEVICE +#ifdef GUI_ENABLE_KEYSDIALOG #include "gui/KeysDialog.h" #endif class ConfigDialog : public GUI::OptionsDialog { protected: -#ifdef SMALL_SCREEN_DEVICE +#ifdef GUI_ENABLE_KEYSDIALOG GUI::Dialog *_keysDialog; #endif @@ -307,14 +307,14 @@ ConfigDialog::ConfigDialog(bool subtitleControls) new GUI::ButtonWidget(this, "GlobalConfig.Ok", _("~O~K"), 0, GUI::kOKCmd); new GUI::ButtonWidget(this, "GlobalConfig.Cancel", _("~C~ancel"), 0, GUI::kCloseCmd); -#ifdef SMALL_SCREEN_DEVICE +#ifdef GUI_ENABLE_KEYSDIALOG new GUI::ButtonWidget(this, "GlobalConfig.Keys", _("~K~eys"), 0, kKeysCmd); _keysDialog = NULL; #endif } ConfigDialog::~ConfigDialog() { -#ifdef SMALL_SCREEN_DEVICE +#ifdef GUI_ENABLE_KEYSDIALOG delete _keysDialog; #endif } @@ -323,7 +323,7 @@ void ConfigDialog::handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 switch (cmd) { case kKeysCmd: -#ifdef SMALL_SCREEN_DEVICE +#ifdef GUI_ENABLE_KEYSDIALOG // // Create the sub dialog(s) // diff --git a/engines/draci/music.cpp b/engines/draci/music.cpp index cda2007a8e..3fa380196a 100644 --- a/engines/draci/music.cpp +++ b/engines/draci/music.cpp @@ -22,10 +22,8 @@ // MIDI and digital music class -#include "audio/audiostream.h" #include "audio/mididrv.h" #include "audio/midiparser.h" -#include "common/config-manager.h" #include "common/debug.h" #include "common/file.h" diff --git a/engines/drascula/actors.cpp b/engines/drascula/actors.cpp index 849e2ccd24..b459c4539b 100644 --- a/engines/drascula/actors.cpp +++ b/engines/drascula/actors.cpp @@ -123,6 +123,8 @@ void DrasculaEngine::startWalking() { walkUp(); else if (roomY > curY + curHeight) walkDown(); + else + characterMoved = 0; } else { if ((roomX < curX + curWidth / 2 ) && (roomY <= (curY + curHeight))) quadrant_1(); @@ -189,7 +191,7 @@ void DrasculaEngine::moveCharacters() { } if (currentChapter != 2 && currentChapter != 3) { - if (hare_se_ve == 0) { + if (characterVisible == 0) { increaseFrameNum(); return; } diff --git a/engines/drascula/animation.cpp b/engines/drascula/animation.cpp index 5009a62e84..f672ad3b55 100644 --- a/engines/drascula/animation.cpp +++ b/engines/drascula/animation.cpp @@ -360,7 +360,7 @@ void DrasculaEngine::animation_2_1() { int l; gotoObject(231, 91); - hare_se_ve = 0; + characterVisible = 0; term_int = 0; @@ -433,7 +433,7 @@ void DrasculaEngine::animation_2_1() { curX = 91; curY = 95; trackProtagonist = 1; - hare_se_ve = 1; + characterVisible = 1; loadPic("97g.alg", extraSurface); if (animate("lev.bin", 15)) @@ -1434,7 +1434,7 @@ void DrasculaEngine::animation_12_5() { doBreak = 1; previousMusic = roomMusic; - hare_se_ve = 1; + characterVisible = 1; clearRoom(); trackProtagonist = 1; characterMoved = 0; @@ -1504,6 +1504,7 @@ void DrasculaEngine::animation_14_5() { void DrasculaEngine::animation_1_6() { debug(4, "animation_1_6()"); + hideCursor(); trackProtagonist = 0; curX = 103; curY = 108; @@ -1543,7 +1544,7 @@ void DrasculaEngine::animation_1_6() { updateEvents(); clearRoom(); black(); - hare_se_ve = 0; + characterVisible = 0; flags[0] = 0; updateRoom(); updateScreen(); @@ -1618,7 +1619,7 @@ void DrasculaEngine::animation_6_6() { curX = -1; selectVerb(kVerbNone); enterRoom(58); - hare_se_ve = 1; + characterVisible = 1; trackProtagonist = 1; animate("hbp.bin", 14); @@ -2138,7 +2139,7 @@ void DrasculaEngine::animation_5_4(){ loadPic("anh_dr.alg", backSurface); gotoObject(99, 160); gotoObject(38, 177); - hare_se_ve = 0; + characterVisible = 0; updateRoom(); updateScreen(); delay(800); @@ -2156,7 +2157,7 @@ void DrasculaEngine::animation_5_4(){ talk_igor(30, kIgorFront); loadPic(96, frontSurface); loadPic(99, backSurface); - hare_se_ve = 1; + characterVisible = 1; fadeToBlack(0); exitRoom(0); } @@ -2211,7 +2212,7 @@ void DrasculaEngine::activatePendulum() { debug(4, "activatePendulum()"); flags[1] = 2; - hare_se_ve = 0; + characterVisible = 0; _roomNumber = 102; loadPic(102, bgSurface, HALF_PAL); loadPic("an_p1.alg", drawSurface3); diff --git a/engines/drascula/drascula.cpp b/engines/drascula/drascula.cpp index 9ac9031fb7..ab91056480 100644 --- a/engines/drascula/drascula.cpp +++ b/engines/drascula/drascula.cpp @@ -23,19 +23,13 @@ #include "common/events.h" #include "common/keyboard.h" #include "common/file.h" -#include "common/savefile.h" #include "common/config-manager.h" #include "common/textconsole.h" #include "backends/audiocd/audiocd.h" -#include "base/plugins.h" -#include "base/version.h" - #include "engines/util.h" -#include "audio/mixer.h" - #include "drascula/drascula.h" #include "drascula/console.h" @@ -144,7 +138,7 @@ DrasculaEngine::DrasculaEngine(OSystem *syst, const DrasculaGameDescription *gam curDirection = 0; trackProtagonist = 0; _characterFrame = 0; - hare_se_ve = 0; + characterVisible = 0; roomX = 0; roomY = 0; checkFlags = 0; @@ -299,7 +293,7 @@ Common::Error DrasculaEngine::run() { characterMoved = 0; trackProtagonist = 3; _characterFrame = 0; - hare_se_ve = 1; + characterVisible = 1; checkFlags = 1; doBreak = 0; walkToObject = 0; @@ -365,7 +359,7 @@ Common::Error DrasculaEngine::run() { for (i = 0; i < 25; i++) memcpy(crosshairCursor + i * 40, tableSurface + 225 + (56 + i) * 320, 40); - if (_lang == kSpanish) + if (_lang == kSpanish && currentChapter != 6) loadPic(974, tableSurface); if (currentChapter != 2) { @@ -601,7 +595,6 @@ bool DrasculaEngine::runCurrentChapter() { if (_rightMouseButton == 1 && _menuScreen) { #endif _rightMouseButton = 0; - delay(100); if (currentChapter == 2) { loadPic(menuBackground, cursorSurface); loadPic(menuBackground, backSurface); @@ -630,7 +623,6 @@ bool DrasculaEngine::runCurrentChapter() { !(currentChapter == 5 && pickedObject == 16)) { #endif _rightMouseButton = 0; - delay(100); characterMoved = 0; if (trackProtagonist == 2) trackProtagonist = 1; @@ -658,12 +650,11 @@ bool DrasculaEngine::runCurrentChapter() { #endif if (_leftMouseButton == 1 && _menuBar) { - delay(100); selectVerbFromBar(); } else if (_leftMouseButton == 1 && takeObject == 0) { - delay(100); if (verify1()) return true; + delay(100); } else if (_leftMouseButton == 1 && takeObject == 1) { if (verify2()) return true; @@ -897,7 +888,7 @@ void DrasculaEngine::pause(int duration) { } int DrasculaEngine::getTime() { - return _system->getMillis() / 20; // originally was 1 + return _system->getMillis() / 10; } void DrasculaEngine::reduce_hare_chico(int xx1, int yy1, int xx2, int yy2, int width, int height, int factor, byte *dir_inicio, byte *dir_fin) { diff --git a/engines/drascula/drascula.h b/engines/drascula/drascula.h index 762add50a5..acca2e5915 100644 --- a/engines/drascula/drascula.h +++ b/engines/drascula/drascula.h @@ -429,7 +429,7 @@ public: int frame_y; int curX, curY, characterMoved, curDirection, trackProtagonist, _characterFrame; - int hare_se_ve; // TODO: what is this for? + int characterVisible; int roomX, roomY, checkFlags; int doBreak; int stepX, stepY; diff --git a/engines/drascula/graphics.cpp b/engines/drascula/graphics.cpp index 077047a6eb..6bfb2e1823 100644 --- a/engines/drascula/graphics.cpp +++ b/engines/drascula/graphics.cpp @@ -217,6 +217,10 @@ void DrasculaEngine::print_abc(const char *said, int screenX, int screenY) { int letterY = 0, letterX = 0, i; uint len = strlen(said); byte c; + + byte *srcSurface = tableSurface; + if (_lang == kSpanish && currentChapter == 6) + srcSurface = extraSurface; for (uint h = 0; h < len; h++) { c = toupper(said[h]); @@ -241,7 +245,7 @@ void DrasculaEngine::print_abc(const char *said, int screenX, int screenY) { } // for copyRect(letterX, letterY, screenX, screenY, - CHAR_WIDTH, CHAR_HEIGHT, tableSurface, screenSurface); + CHAR_WIDTH, CHAR_HEIGHT, srcSurface, screenSurface); screenX = screenX + CHAR_WIDTH; if (screenX > 317) { @@ -319,28 +323,51 @@ int DrasculaEngine::print_abc_opc(const char *said, int screenY, int game) { } bool DrasculaEngine::textFitsCentered(char *text, int x) { - int len = strlen(text); - int tmp = CLIP<int>(x - len * CHAR_WIDTH / 2, 60, 255); - return (tmp + len * CHAR_WIDTH) <= 320; + int textLen = strlen(text); + int halfLen = (textLen / 2) * CHAR_WIDTH; + + //if (x > 160) + // x = 315 - x; + //return (halfLen <= x); + + // The commented out code above is what the original engine is doing. Instead of testing the + // upper bound if x is greater than 160 it takes the complement to 315 and test only the lower + // bounds. + // Also note that since it does an integer division to compute the half length of the string, + // in the case where the string has an odd number of characters there is one more character to + // the right than to the left. If the string center is beyond 160, this is taken care of by + // taking the complement to 315 instead of 320. But if the string center is close to the screen + // center, but not greater than 160, this can lead to the string being accepted despite having + // one character beyond the right edge of the screen. + // In ScummVM we therefore also test the right edge, which leads to differences + // with the original engine, but for the better. + if (x > 160) + return (315 - x - halfLen >= 0); + return (x - halfLen >= 0 && x + halfLen + (textLen % 2) * CHAR_WIDTH <= 320); } void DrasculaEngine::centerText(const char *message, int textX, int textY) { char msg[200]; - char messageLine[200]; - char tmpMessageLine[200]; - *messageLine = 0; - *tmpMessageLine = 0; - char *curWord; - int curLine = 0; - int x = 0; - // original starts printing 4 lines above textY - int y = CLIP<int>(textY - (4 * CHAR_HEIGHT), 0, 320); - Common::strlcpy(msg, message, 200); + + // We make sure to have a width of at least 120 pixels by clipping the center. + // In theory since the screen width is 320 I would expect something like this: + // x = CLIP<int>(x, 60, 260); + // return (x - halfLen >= 0 && x + halfLen <= 319); + + // The engines does things differently though. It tries to clips text at 315 instead of 319. + // See also the comment in textFitsCentered(). + + textX = CLIP<int>(textX, 60, 255); // If the message fits on screen as-is, just print it here if (textFitsCentered(msg, textX)) { - x = CLIP<int>(textX - strlen(msg) * CHAR_WIDTH / 2, 60, 255); + int x = textX - (strlen(msg) / 2) * CHAR_WIDTH - 1; + // The original starts to draw (nbLines + 2) lines above textY, except if there is a single line + // in which case it starts drawing at (nbLines + 3) above textY. + // Also clip to the screen height although the original does not do it. + int y = textY - 4 * CHAR_HEIGHT; + y = CLIP<int>(y, 0, 200 - CHAR_HEIGHT); print_abc(msg, x, y); return; } @@ -351,42 +378,61 @@ void DrasculaEngine::centerText(const char *message, int textX, int textY) { // with the German translation. if (!strchr(msg, ' ')) { int len = strlen(msg); - x = CLIP<int>(textX - len * CHAR_WIDTH / 2, 0, 319 - len * CHAR_WIDTH); + int x = CLIP<int>(textX - (len / 2) * CHAR_WIDTH - 1, 0, 319 - len * CHAR_WIDTH); + int y = textY - 4 * CHAR_HEIGHT; + y = CLIP<int>(y, 0, 200 - CHAR_HEIGHT); print_abc(msg, x, y); return; } // Message doesn't fit on screen, split it - + char messageLines[15][41]; // screenWidth/charWidth = 320/8 = 40. Thus lines can have up to 41 characters with the null terminator (despite the original allocating only 40 characters here). + int curLine = 0; + char messageCurLine[50]; + char tmpMessageCurLine[50]; + *messageCurLine = 0; + *tmpMessageCurLine = 0; // Get a word from the message - curWord = strtok(msg, " "); + char* curWord = strtok(msg, " "); while (curWord != NULL) { // Check if the word and the current line fit on screen - if (tmpMessageLine[0] != '\0') - Common::strlcat(tmpMessageLine, " ", 200); - Common::strlcat(tmpMessageLine, curWord, 200); - if (textFitsCentered(tmpMessageLine, textX)) { + if (tmpMessageCurLine[0] != '\0') + Common::strlcat(tmpMessageCurLine, " ", 50); + Common::strlcat(tmpMessageCurLine, curWord, 50); + if (textFitsCentered(tmpMessageCurLine, textX)) { // Line fits, so add the word to the current message line - strcpy(messageLine, tmpMessageLine); + strcpy(messageCurLine, tmpMessageCurLine); } else { - // Line doesn't fit, so show the current line on screen and - // create a new one - // If it goes off screen, print_abc will adjust it - x = CLIP<int>(textX - strlen(messageLine) * CHAR_WIDTH / 2, 60, 255); - print_abc(messageLine, x, y + curLine * CHAR_HEIGHT); - Common::strlcpy(messageLine, curWord, 200); - Common::strlcpy(tmpMessageLine, curWord, 200); - curLine++; + // Line does't fit. Store the current line and start a new line. + Common::strlcpy(messageLines[curLine++], messageCurLine, 41); + Common::strlcpy(messageCurLine, curWord, 50); + Common::strlcpy(tmpMessageCurLine, curWord, 50); } // Get next word curWord = strtok(NULL, " "); - if (curWord == NULL) { - x = CLIP<int>(textX - strlen(messageLine) * CHAR_WIDTH / 2, 60, 255); - print_abc(messageLine, x, y + curLine * CHAR_HEIGHT); + // The original has an interesting bug that if we split the text on several lines + // a space is added at the end (which impacts the alignment, and may even cause the line + // to become too long). + Common::strlcat(messageCurLine, " ", 50); + if (!textFitsCentered(messageCurLine, textX)) { + messageCurLine[strlen(messageCurLine) - 1] = '\0'; + Common::strlcpy(messageLines[curLine++], messageCurLine, 41); + strcpy(messageLines[curLine++], " "); + } else + Common::strlcpy(messageLines[curLine++], messageCurLine, 41); } } + + // The original starts to draw (nbLines + 2) lines above textY. + // Also clip to the screen height although the original does not do it. + int y = textY - (curLine + 2) * CHAR_HEIGHT; + y = CLIP<int>(y, 0, 200 - curLine * (CHAR_HEIGHT + 2) + 2); + for (int line = 0 ; line < curLine ; ++line, y += CHAR_HEIGHT + 2) { + int textHalfLen = (strlen(messageLines[line]) / 2) * CHAR_WIDTH; + print_abc(messageLines[line], textX - textHalfLen - 1, y); + } } void DrasculaEngine::screenSaver() { diff --git a/engines/drascula/objects.cpp b/engines/drascula/objects.cpp index cd7d502194..02846abcc9 100644 --- a/engines/drascula/objects.cpp +++ b/engines/drascula/objects.cpp @@ -62,7 +62,7 @@ void DrasculaEngine::gotoObject(int pointX, int pointY) { hideCursor(); if (currentChapter == 5 || currentChapter == 6) { - if (hare_se_ve == 0) { + if (characterVisible == 0) { curX = roomX; curY = roomY; updateRoom(); @@ -272,6 +272,8 @@ void DrasculaEngine::updateVisible() { visible[2] = 0; if (_roomNumber == 26 && flags[12] == 1) visible[1] = 0; + if (_roomNumber == 31 && flags[13] == 1) + visible[1] = 0; if (_roomNumber == 35 && flags[14] == 1) visible[2] = 0; if (_roomNumber == 35 && flags[17] == 1) diff --git a/engines/drascula/rooms.cpp b/engines/drascula/rooms.cpp index 8691bd2cb4..57d4517295 100644 --- a/engines/drascula/rooms.cpp +++ b/engines/drascula/rooms.cpp @@ -980,12 +980,12 @@ bool DrasculaEngine::room_59(int fl) { playSound(12); pause(19); stopSound(); - hare_se_ve = 0; + characterVisible = 0; updateRoom(); copyRect(101, 34, curX - 4, curY - 1, 37, 70, drawSurface3, screenSurface); copyBackground(0, 0, 0, 0, 320, 200, screenSurface, bgSurface); updateScreen(); - hare_se_ve = 1; + characterVisible = 1; clearRoom(); loadPic("tlef0.alg", bgSurface, COMPLETE_PAL); loadPic("tlef1.alg", drawSurface3); @@ -1399,7 +1399,7 @@ void DrasculaEngine::update_58_pre() { } void DrasculaEngine::update_58() { - if (hare_se_ve == 1) + if (characterVisible == 1) copyRect(67, 139, 140, 147, 12, 16, drawSurface3, screenSurface); } @@ -1845,7 +1845,7 @@ void DrasculaEngine::enterRoom(int roomIndex) { } if (currentChapter == 5) - hare_se_ve = 1; + characterVisible = 1; updateVisible(); @@ -1885,7 +1885,7 @@ void DrasculaEngine::enterRoom(int roomIndex) { if (currentChapter == 5) { if (_roomNumber == 45) - hare_se_ve = 0; + characterVisible = 0; if (_roomNumber == 49 && flags[7] == 0) { playTalkSequence(4); // sequence 4, chapter 5 } @@ -1961,7 +1961,7 @@ bool DrasculaEngine::exitRoom(int doorNumber) { } if (currentChapter == 5) - hare_se_ve = 1; + characterVisible = 1; clearRoom(); if (!sscanf(_targetSurface[doorNumber], "%d", &roomNum)) { diff --git a/engines/drascula/saveload.cpp b/engines/drascula/saveload.cpp index d0f16aa941..eb72a999d4 100644 --- a/engines/drascula/saveload.cpp +++ b/engines/drascula/saveload.cpp @@ -255,6 +255,19 @@ bool DrasculaEngine::loadGame(int slot) { if (!(in = _saveFileMan->openForLoading(saveFileName))) { error("missing savegame file %s", saveFileName.c_str()); } + + // If we currently are in room 102 while being attached below the pendulum + // the character is invisible and some surface are temporarily used for other + // things. Reset those before loading the savegame otherwise we may have some + // issues such as the protagonist being invisible after reloading a savegame. + if (_roomNumber == 102 && flags[1] == 2) { + characterVisible = 1; + loadPic(96, frontSurface); + loadPic(97, frontSurface); + loadPic(97, extraSurface); + loadPic(99, backSurface); + } + loadMetaData(in, slot, true); Graphics::skipThumbnail(*in); @@ -287,8 +300,23 @@ bool DrasculaEngine::loadGame(int slot) { if (!sscanf(currentData, "%d.ald", &roomNum)) { error("Bad save format"); } + + // When loading room 102 while being attached below the pendulum Some variables + // are not correctly set and can cause random crashes when calling enterRoom below. + // The crash occurs in moveCharacters() when accessing factor_red[curY + curHeight]. + if (roomNum == 102 && flags[1] == 2) { + curX = 103; + curY = 108; + curWidth = curHeight = 0; + } + enterRoom(roomNum); selectVerb(kVerbNone); + + // When loading room 102 while being attached below the pendulum we + // need to call activatePendulum() to properly initialized the scene. + if (_roomNumber == 102 && flags[1] == 2) + activatePendulum(); return true; } diff --git a/engines/drascula/sound.cpp b/engines/drascula/sound.cpp index c576b37660..62ec796678 100644 --- a/engines/drascula/sound.cpp +++ b/engines/drascula/sound.cpp @@ -44,7 +44,7 @@ void DrasculaEngine::updateVolume(Audio::Mixer::SoundType soundType, int prevVol } void DrasculaEngine::volumeControls() { - if (_lang == kSpanish) + if (_lang == kSpanish && currentChapter != 6) loadPic(95, tableSurface); copyRect(1, 56, 73, 63, 177, 97, tableSurface, screenSurface); @@ -101,7 +101,7 @@ void DrasculaEngine::volumeControls() { } - if (_lang == kSpanish) + if (_lang == kSpanish && currentChapter != 6) loadPic(974, tableSurface); selectVerb(kVerbNone); @@ -166,8 +166,8 @@ void DrasculaEngine::MusicFadeout() { void DrasculaEngine::playFile(const char *fname) { Common::SeekableReadStream *stream = _archives.open(fname); if (stream) { - int startOffset = 0; - int soundSize = stream->size() - startOffset; + int startOffset = 32; + int soundSize = stream->size() - 64; if (!strcmp(fname, "3.als") && soundSize == 145166 && _lang != kSpanish) { // WORKAROUND: File 3.als with English speech files has a big silence at diff --git a/engines/drascula/talk.cpp b/engines/drascula/talk.cpp index e9fec868f8..cc329b206b 100644 --- a/engines/drascula/talk.cpp +++ b/engines/drascula/talk.cpp @@ -232,7 +232,7 @@ void DrasculaEngine::talk_solo(const char *said, const char *filename) { if (currentChapter == 1) color_abc(color_solo); - else if (currentChapter == 4) + else if (currentChapter == 5) color_abc(kColorRed); talkInit(filename); diff --git a/engines/dreamweb/detection.cpp b/engines/dreamweb/detection.cpp index 764171bcb0..8e24c44702 100644 --- a/engines/dreamweb/detection.cpp +++ b/engines/dreamweb/detection.cpp @@ -23,6 +23,7 @@ #include "base/plugins.h" #include "common/algorithm.h" +#include "common/savefile.h" #include "common/system.h" #include "common/translation.h" diff --git a/engines/dreamweb/detection_tables.h b/engines/dreamweb/detection_tables.h index cb9bebb304..0a59543c51 100644 --- a/engines/dreamweb/detection_tables.h +++ b/engines/dreamweb/detection_tables.h @@ -244,6 +244,26 @@ static const DreamWebGameDescription gameDescriptions[] = { }, }, + // Czech fan-made translation + // From bug #7078 + { + { + "dreamweb", + "CD", + { + {"dreamweb.r00", 0, "3b5c87717fc40cc5a5ae19c155662ee3", 152918}, + {"dreamweb.r02", 0, "28458718167a040d7e988cf7d2298eae", 210466}, + {"dreamweb.exe", 0, "40cc15bdc8fa3a785b5fd1ecd6194119", 65440}, + AD_LISTEND + }, + Common::CZ_CZE, + Common::kPlatformDOS, + ADGF_CD, + GUIO2(GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_BRIGHTPALETTE) + }, + }, + + { AD_TABLE_END_MARKER } }; diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h index e39f8c0d51..2e5fb424f8 100644 --- a/engines/dreamweb/dreamweb.h +++ b/engines/dreamweb/dreamweb.h @@ -24,17 +24,12 @@ #define DREAMWEB_H #include "common/error.h" -#include "common/file.h" #include "common/keyboard.h" #include "common/random.h" #include "common/rect.h" -#include "common/savefile.h" #include "common/scummsys.h" #include "common/system.h" -#include "audio/audiostream.h" -#include "audio/mixer.h" - #include "engines/engine.h" #include "dreamweb/console.h" @@ -45,6 +40,10 @@ #define SCUMMVM_BLOCK_MAGIC_SIZE 0x1234 #define SAVEGAME_VERSION 1 +namespace Common { +class File; +} + namespace DreamWeb { const unsigned int kNumReelRoutines = 57; diff --git a/engines/dreamweb/saveload.cpp b/engines/dreamweb/saveload.cpp index ce89dae732..a104ba727d 100644 --- a/engines/dreamweb/saveload.cpp +++ b/engines/dreamweb/saveload.cpp @@ -28,6 +28,7 @@ #include "gui/saveload.h" #include "common/config-manager.h" #include "common/translation.h" +#include "common/savefile.h" #include "common/serializer.h" namespace DreamWeb { diff --git a/engines/dreamweb/sound.cpp b/engines/dreamweb/sound.cpp index d3b417de90..2a4cd9c75c 100644 --- a/engines/dreamweb/sound.cpp +++ b/engines/dreamweb/sound.cpp @@ -25,6 +25,8 @@ #include "common/debug.h" #include "common/file.h" +#include "audio/audiostream.h" + #include "dreamweb/dreamweb.h" #include "dreamweb/sound.h" diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp index 68b223392c..4aa487d13f 100644 --- a/engines/dreamweb/stubs.cpp +++ b/engines/dreamweb/stubs.cpp @@ -23,6 +23,7 @@ #include "dreamweb/sound.h" #include "dreamweb/dreamweb.h" #include "common/config-manager.h" +#include "common/file.h" namespace DreamWeb { diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp index c59d3e3ad5..4a7acd2344 100644 --- a/engines/dreamweb/vgagrafx.cpp +++ b/engines/dreamweb/vgagrafx.cpp @@ -21,6 +21,7 @@ */ #include "dreamweb/dreamweb.h" +#include "common/file.h" #include "engines/util.h" #include "graphics/surface.h" #include "image/pcx.h" diff --git a/engines/fullpipe/fullpipe.cpp b/engines/fullpipe/fullpipe.cpp index ebaff32550..c2aae9ba88 100644 --- a/engines/fullpipe/fullpipe.cpp +++ b/engines/fullpipe/fullpipe.cpp @@ -24,6 +24,7 @@ #include "common/archive.h" #include "common/config-manager.h" +#include "audio/mixer.h" #include "engines/util.h" @@ -112,6 +113,8 @@ FullpipeEngine::FullpipeEngine(OSystem *syst, const ADGameDescription *gameDesc) _musicLocal = 0; _trackStartDelay = 0; + _sceneTrackHandle = new Audio::SoundHandle(); + memset(_sceneTracks, 0, sizeof(_sceneTracks)); memset(_trackName, 0, sizeof(_trackName)); memset(_sceneTracksCurrentTrack, 0, sizeof(_sceneTracksCurrentTrack)); @@ -192,6 +195,7 @@ FullpipeEngine::~FullpipeEngine() { delete _rnd; delete _console; delete _globalMessageQueueList; + delete _sceneTrackHandle; } void FullpipeEngine::initialize() { diff --git a/engines/fullpipe/fullpipe.h b/engines/fullpipe/fullpipe.h index 7f20a6d6af..fba61aa13b 100644 --- a/engines/fullpipe/fullpipe.h +++ b/engines/fullpipe/fullpipe.h @@ -30,8 +30,6 @@ #include "common/savefile.h" #include "common/system.h" -#include "audio/mixer.h" - #include "graphics/transparent_surface.h" #include "engines/engine.h" @@ -41,6 +39,10 @@ struct ADGameDescription; +namespace Audio { +class SoundHandle; +} + namespace Fullpipe { enum FullpipeGameFeatures { @@ -312,7 +314,7 @@ public: void lift_openLift(); GameVar *_musicGameVar; - Audio::SoundHandle _sceneTrackHandle; + Audio::SoundHandle *_sceneTrackHandle; public: diff --git a/engines/fullpipe/motion.cpp b/engines/fullpipe/motion.cpp index 1a61cb742a..9cf18f3cc2 100644 --- a/engines/fullpipe/motion.cpp +++ b/engines/fullpipe/motion.cpp @@ -855,9 +855,9 @@ Common::Array<MovItem *> *MovGraph::getPaths(StaticANIObject *ani, int x, int y, if (sz > 0) { for (int j = 0; j < sz; j++) _items[idx]->movitems->push_back(movitems[j]); - - delete movitems; } + + delete movitems; } delete movarr; diff --git a/engines/fullpipe/sound.cpp b/engines/fullpipe/sound.cpp index 230d6c39a9..c82c2c414c 100644 --- a/engines/fullpipe/sound.cpp +++ b/engines/fullpipe/sound.cpp @@ -30,6 +30,7 @@ #include "fullpipe/statics.h" #include "common/memstream.h" +#include "audio/mixer.h" #include "audio/audiostream.h" #include "audio/decoders/vorbis.h" #include "audio/decoders/wave.h" @@ -96,12 +97,13 @@ Sound::Sound() { memset(_directSoundBuffers, 0, sizeof(_directSoundBuffers)); _description = 0; _volume = 100; + _handle = new Audio::SoundHandle(); } Sound::~Sound() { freeSound(); - free(_description); + delete _handle; } bool Sound::load(MfcArchive &file, NGIArchive *archive) { @@ -206,14 +208,14 @@ void Sound::setPanAndVolumeByStaticAni() { } void Sound::setPanAndVolume(int vol, int pan) { - g_fp->_mixer->setChannelVolume(_handle, vol / 39); // 0..10000 - g_fp->_mixer->setChannelBalance(_handle, pan / 78); // -10000..10000 + g_fp->_mixer->setChannelVolume(*_handle, vol / 39); // 0..10000 + g_fp->_mixer->setChannelBalance(*_handle, pan / 78); // -10000..10000 } void Sound::play(int flag) { - Audio::SoundHandle handle = getHandle(); + Audio::SoundHandle *handle = getHandle(); - if (g_fp->_mixer->isSoundHandleActive(handle)) + if (g_fp->_mixer->isSoundHandleActive(*handle)) return; byte *soundData = loadData(); @@ -221,7 +223,7 @@ void Sound::play(int flag) { Audio::RewindableAudioStream *wav = Audio::makeWAVStream(dataStream, DisposeAfterUse::YES); Audio::AudioStream *audioStream = new Audio::LoopingAudioStream(wav, (flag == 1) ? 0 : 1); - g_fp->_mixer->playStream(Audio::Mixer::kSFXSoundType, &handle, audioStream); + g_fp->_mixer->playStream(Audio::Mixer::kSFXSoundType, handle, audioStream); } void Sound::freeSound() { @@ -231,11 +233,11 @@ void Sound::freeSound() { } int Sound::getVolume() { - return g_fp->_mixer->getChannelVolume(_handle) * 39; // 0..10000 + return g_fp->_mixer->getChannelVolume(*_handle) * 39; // 0..10000 } void Sound::stop() { - g_fp->_mixer->stopHandle(_handle); + g_fp->_mixer->stopHandle(*_handle); } void FullpipeEngine::setSceneMusicParameters(GameVar *gvar) { @@ -353,7 +355,7 @@ void FullpipeEngine::startSoundStream1(char *trackName) { stopAllSoundStreams(); #ifdef USE_VORBIS - if (_mixer->isSoundHandleActive(_sceneTrackHandle)) + if (_mixer->isSoundHandleActive(*_sceneTrackHandle)) return; Common::File *track = new Common::File(); @@ -363,7 +365,7 @@ void FullpipeEngine::startSoundStream1(char *trackName) { return; } Audio::RewindableAudioStream *ogg = Audio::makeVorbisStream(track, DisposeAfterUse::YES); - _mixer->playStream(Audio::Mixer::kMusicSoundType, &_sceneTrackHandle, ogg); + _mixer->playStream(Audio::Mixer::kMusicSoundType, _sceneTrackHandle, ogg); #endif } diff --git a/engines/fullpipe/sound.h b/engines/fullpipe/sound.h index 14e766f5bb..983f28312b 100644 --- a/engines/fullpipe/sound.h +++ b/engines/fullpipe/sound.h @@ -23,6 +23,10 @@ #ifndef FULLPIPE_SOUND_H #define FULLPIPE_SOUND_H +namespace Audio { +class SoundHandle; +} + namespace Fullpipe { class Sound : public MemoryObject { @@ -31,7 +35,7 @@ class Sound : public MemoryObject { int _directSoundBuffer; int _directSoundBuffers[7]; byte *_soundData; - Audio::SoundHandle _handle; + Audio::SoundHandle *_handle; int _volume; public: @@ -45,7 +49,7 @@ public: virtual bool load(MfcArchive &file) { assert(0); return false; } // Disable base class void updateVolume(); int getId() const { return _id; } - Audio::SoundHandle getHandle() const { return _handle; } + Audio::SoundHandle *getHandle() const { return _handle; } void play(int flag); void freeSound(); diff --git a/engines/fullpipe/statics.cpp b/engines/fullpipe/statics.cpp index 8ee3b14d0c..36fbb73037 100644 --- a/engines/fullpipe/statics.cpp +++ b/engines/fullpipe/statics.cpp @@ -1576,6 +1576,9 @@ Movement::Movement(Movement *src, int *oldIdxs, int newSize, StaticANIObject *an _m2x = 0; _m2y = 0; + _counter = 0; + _counterMax = 0; + _field_78 = 0; _framePosOffsets = 0; _field_84 = 0; diff --git a/engines/gob/detection/tables_fascin.h b/engines/gob/detection/tables_fascin.h index 7c7c9a7a2f..92272e9852 100644 --- a/engines/gob/detection/tables_fascin.h +++ b/engines/gob/detection/tables_fascin.h @@ -187,6 +187,20 @@ kFeaturesCD, "intro.stk", 0, 0 }, +{ // From bug #7069 + { + "fascination", + "", + AD_ENTRY1s("disk0.stk", "fbf73d7919e1a6752d924eccc14838d7", 190498), + ES_ESP, + kPlatformDOS, + ADGF_NO_FLAGS, + GUIO2(GUIO_NOSUBTITLES, GUIO_NOSPEECH) + }, + kGameTypeFascination, + kFeaturesNone, + "disk0.stk", 0, 0 +}, // -- Amiga -- diff --git a/engines/gob/detection/tables_playtoons.h b/engines/gob/detection/tables_playtoons.h index f249e3ffa6..e495db9e25 100644 --- a/engines/gob/detection/tables_playtoons.h +++ b/engines/gob/detection/tables_playtoons.h @@ -222,6 +222,24 @@ kFeatures640x480, "intro2.stk", 0, 0 }, +{ // Version 1.002. Bug #7052 + { + "playtoons2", + "", + { + {"playtoon.stk", 0, "8c98e9a11be9bb203a55e8c6e68e519b", 25574338}, + {"spirou.stk", 0, "91080dc148de1bbd6a97321c1a1facf3", 9817086}, + {0, 0, 0, 0} + }, + FR_FRA, + kPlatformDOS, + ADGF_NO_FLAGS, + GUIO3(GUIO_NOSUBTITLES, GUIO_NOSPEECH, GUIO_NOASPECT) + }, + kGameTypePlaytoons, + kFeatures640x480, + "intro2.stk", 0, 0 +}, { { "playtoons2", diff --git a/engines/gob/gob.cpp b/engines/gob/gob.cpp index d995f26d9f..b51a6382e6 100644 --- a/engines/gob/gob.cpp +++ b/engines/gob/gob.cpp @@ -26,6 +26,7 @@ #include "base/plugins.h" #include "common/config-manager.h" #include "audio/mididrv.h" +#include "audio/mixer.h" #include "gui/gui-manager.h" #include "gui/dialog.h" diff --git a/engines/gob/inter_playtoons.cpp b/engines/gob/inter_playtoons.cpp index 45f573efcd..13d24dc05d 100644 --- a/engines/gob/inter_playtoons.cpp +++ b/engines/gob/inter_playtoons.cpp @@ -41,7 +41,6 @@ #include "gob/video.h" #include "gob/videoplayer.h" #include "gob/save/saveload.h" -#include "gob/sound/sound.h" namespace Gob { diff --git a/engines/gob/inter_v2.cpp b/engines/gob/inter_v2.cpp index 3aa7ad1664..4b58819c01 100644 --- a/engines/gob/inter_v2.cpp +++ b/engines/gob/inter_v2.cpp @@ -26,9 +26,6 @@ #include "gui/message.h" -#include "audio/mixer.h" -#include "audio/mods/infogrames.h" - #include "gob/gob.h" #include "gob/inter.h" #include "gob/global.h" diff --git a/engines/gob/inter_v4.cpp b/engines/gob/inter_v4.cpp index 656ca6f5c3..d379d5ab11 100644 --- a/engines/gob/inter_v4.cpp +++ b/engines/gob/inter_v4.cpp @@ -205,7 +205,7 @@ void Inter_v4::o4_playVmdOrMusic() { return; } else if (props.lastFrame == -9) { _vm->_sound->bgStop(); - _vm->_sound->bgSetPlayMode(BackgroundAtmosphere::kPlayModeRandom); + _vm->_sound->bgSetPlayMode(Sound::kPlayModeRandom); _vm->_sound->bgPlay(file.c_str(), "SND", SOUND_SND, props.palStart); return; } else if (props.lastFrame < 0) { diff --git a/engines/gob/pregob/onceupon/onceupon.cpp b/engines/gob/pregob/onceupon/onceupon.cpp index a6e4da75e7..50910e77bd 100644 --- a/engines/gob/pregob/onceupon/onceupon.cpp +++ b/engines/gob/pregob/onceupon/onceupon.cpp @@ -30,8 +30,6 @@ #include "gob/anifile.h" #include "gob/aniobject.h" -#include "gob/sound/sound.h" - #include "gob/pregob/txtfile.h" #include "gob/pregob/gctfile.h" diff --git a/engines/gob/pregob/pregob.h b/engines/gob/pregob/pregob.h index 021cf2b3d6..108771a63a 100644 --- a/engines/gob/pregob/pregob.h +++ b/engines/gob/pregob/pregob.h @@ -29,14 +29,14 @@ #include "gob/util.h" #include "gob/aniobject.h" -#include "gob/sound/sounddesc.h" - #include "gob/pregob/txtfile.h" namespace Gob { class GobEngine; +class ANIFile; class Surface; +class SoundDesc; class GCTFile; diff --git a/engines/gob/sound/adlib.h b/engines/gob/sound/adlib.h index d60458295c..9d6b3053b6 100644 --- a/engines/gob/sound/adlib.h +++ b/engines/gob/sound/adlib.h @@ -25,7 +25,6 @@ #include "common/mutex.h" -#include "audio/audiostream.h" #include "audio/mixer.h" namespace OPL { diff --git a/engines/gob/sound/bgatmosphere.cpp b/engines/gob/sound/bgatmosphere.cpp index 21fb70278a..c7be1be96a 100644 --- a/engines/gob/sound/bgatmosphere.cpp +++ b/engines/gob/sound/bgatmosphere.cpp @@ -23,6 +23,7 @@ #include "common/array.h" #include "gob/sound/bgatmosphere.h" +#include "gob/sound/sound.h" #include "gob/sound/sounddesc.h" namespace Gob { @@ -30,7 +31,7 @@ namespace Gob { BackgroundAtmosphere::BackgroundAtmosphere(Audio::Mixer &mixer) : SoundMixer(mixer, Audio::Mixer::kMusicSoundType), _rnd("gobBA") { - _playMode = kPlayModeLinear; + _playMode = Sound::kPlayModeLinear; _queuePos = -1; _shaded = false; _shadable = true; @@ -56,7 +57,7 @@ void BackgroundAtmosphere::stopBA() { SoundMixer::stop(0); } -void BackgroundAtmosphere::setPlayMode(PlayMode mode) { +void BackgroundAtmosphere::setPlayMode(Sound::BackgroundPlayMode mode) { _playMode = mode; } @@ -100,11 +101,11 @@ void BackgroundAtmosphere::getNextQueuePos() { switch (_playMode) { - case kPlayModeLinear: + case Sound::kPlayModeLinear: _queuePos = (_queuePos + 1) % _queue.size(); break; - case kPlayModeRandom: + case Sound::kPlayModeRandom: _queuePos = _rnd.getRandomNumber(_queue.size() - 1); break; diff --git a/engines/gob/sound/bgatmosphere.h b/engines/gob/sound/bgatmosphere.h index 1cfc63c79a..138b65a1c1 100644 --- a/engines/gob/sound/bgatmosphere.h +++ b/engines/gob/sound/bgatmosphere.h @@ -23,31 +23,30 @@ #ifndef GOB_SOUND_BGATMOSPHERE_H #define GOB_SOUND_BGATMOSPHERE_H -#include "audio/mixer.h" #include "common/array.h" #include "common/mutex.h" #include "common/random.h" +#include "gob/sound/sound.h" #include "gob/sound/soundmixer.h" +namespace Audio { +class Mixer; +} + namespace Gob { class SoundDesc; class BackgroundAtmosphere : private SoundMixer { public: - enum PlayMode { - kPlayModeLinear, - kPlayModeRandom - }; - BackgroundAtmosphere(Audio::Mixer &mixer); ~BackgroundAtmosphere(); void playBA(); void stopBA(); - void setPlayMode(PlayMode mode); + void setPlayMode(Sound::BackgroundPlayMode mode); void queueSample(SoundDesc &sndDesc); void queueClear(); @@ -57,7 +56,7 @@ public: void unshade(); private: - PlayMode _playMode; + Sound::BackgroundPlayMode _playMode; Common::Array<SoundDesc *> _queue; int _queuePos; diff --git a/engines/gob/sound/pcspeaker.cpp b/engines/gob/sound/pcspeaker.cpp index d0dcb9a871..7ba9fa75df 100644 --- a/engines/gob/sound/pcspeaker.cpp +++ b/engines/gob/sound/pcspeaker.cpp @@ -20,6 +20,7 @@ * */ +#include "audio/softsynth/pcspk.h" #include "gob/sound/pcspeaker.h" namespace Gob { diff --git a/engines/gob/sound/pcspeaker.h b/engines/gob/sound/pcspeaker.h index ba2e00ce3e..2c3a12a168 100644 --- a/engines/gob/sound/pcspeaker.h +++ b/engines/gob/sound/pcspeaker.h @@ -24,7 +24,10 @@ #define GOB_SOUND_PCSPEAKER_H #include "audio/mixer.h" -#include "audio/softsynth/pcspk.h" + +namespace Audio { +class PCSpeaker; +} namespace Gob { diff --git a/engines/gob/sound/protracker.cpp b/engines/gob/sound/protracker.cpp index ce29100b85..7cf8dbb37c 100644 --- a/engines/gob/sound/protracker.cpp +++ b/engines/gob/sound/protracker.cpp @@ -22,6 +22,7 @@ #include "common/file.h" +#include "audio/audiostream.h" #include "audio/mods/protracker.h" #include "gob/sound/protracker.h" diff --git a/engines/gob/sound/protracker.h b/engines/gob/sound/protracker.h index ccd0d51552..17d909346e 100644 --- a/engines/gob/sound/protracker.h +++ b/engines/gob/sound/protracker.h @@ -24,7 +24,10 @@ #define GOB_SOUND_PROTRACKER_H #include "audio/mixer.h" -#include "audio/audiostream.h" + +namespace Audio { +class AudioStream; +} namespace Gob { diff --git a/engines/gob/sound/sound.cpp b/engines/gob/sound/sound.cpp index 22dfe9d3c3..000eafa031 100644 --- a/engines/gob/sound/sound.cpp +++ b/engines/gob/sound/sound.cpp @@ -28,6 +28,7 @@ #include "gob/game.h" #include "gob/inter.h" +#include "gob/sound/bgatmosphere.h" #include "gob/sound/pcspeaker.h" #include "gob/sound/soundblaster.h" #include "gob/sound/adlplayer.h" @@ -717,7 +718,7 @@ void Sound::bgStop() { _bgatmos->queueClear(); } -void Sound::bgSetPlayMode(BackgroundAtmosphere::PlayMode mode) { +void Sound::bgSetPlayMode(Sound::BackgroundPlayMode mode) { if (!_bgatmos) return; diff --git a/engines/gob/sound/sound.h b/engines/gob/sound/sound.h index 6ebc323b18..f1fd46d24b 100644 --- a/engines/gob/sound/sound.h +++ b/engines/gob/sound/sound.h @@ -23,12 +23,13 @@ #ifndef GOB_SOUND_SOUND_H #define GOB_SOUND_SOUND_H +#include "common/str.h" #include "gob/sound/sounddesc.h" -#include "gob/sound/bgatmosphere.h" namespace Gob { class GobEngine; +class BackgroundAtmosphere; class PCSpeaker; class SoundBlaster; class ADLPlayer; @@ -39,6 +40,11 @@ class CDROM; class Sound { public: + enum BackgroundPlayMode { + kPlayModeLinear, + kPlayModeRandom + }; + static const int kSoundsCount = 60; Sound(GobEngine *vm); @@ -135,7 +141,7 @@ public: void bgPlay(const char *base, const char *ext, SoundType type, int count); void bgStop(); - void bgSetPlayMode(BackgroundAtmosphere::PlayMode mode); + void bgSetPlayMode(BackgroundPlayMode mode); void bgShade(); void bgUnshade(); diff --git a/engines/gob/sound/soundblaster.h b/engines/gob/sound/soundblaster.h index 6a732dbec9..8abed62019 100644 --- a/engines/gob/sound/soundblaster.h +++ b/engines/gob/sound/soundblaster.h @@ -24,10 +24,13 @@ #define GOB_SOUND_SOUNDBLASTER_H #include "common/mutex.h" -#include "audio/mixer.h" #include "gob/sound/soundmixer.h" +namespace Audio { +class Mixer; +} + namespace Gob { class SoundDesc; diff --git a/engines/gob/sound/sounddesc.cpp b/engines/gob/sound/sounddesc.cpp index f981d0b385..d56387078a 100644 --- a/engines/gob/sound/sounddesc.cpp +++ b/engines/gob/sound/sounddesc.cpp @@ -24,7 +24,6 @@ #include "common/memstream.h" #include "common/textconsole.h" -#include "audio/mixer.h" #include "audio/decoders/raw.h" #include "audio/decoders/wave.h" diff --git a/engines/gob/videoplayer.cpp b/engines/gob/videoplayer.cpp index e97848d27e..bbf4ef4162 100644 --- a/engines/gob/videoplayer.cpp +++ b/engines/gob/videoplayer.cpp @@ -21,6 +21,8 @@ */ +#include "video/coktel_decoder.h" + #include "gob/videoplayer.h" #include "gob/global.h" #include "gob/dataio.h" diff --git a/engines/gob/videoplayer.h b/engines/gob/videoplayer.h index 02ed510ec5..1c39ecf2fa 100644 --- a/engines/gob/videoplayer.h +++ b/engines/gob/videoplayer.h @@ -29,11 +29,14 @@ #include "common/str.h" #include "graphics/surface.h" -#include "video/coktel_decoder.h" #include "gob/util.h" #include "gob/draw.h" +namespace Video { +class CoktelDecoder; +} + namespace Gob { class GobEngine; diff --git a/engines/groovie/groovie.cpp b/engines/groovie/groovie.cpp index bbc290eccf..ac77ec3099 100644 --- a/engines/groovie/groovie.cpp +++ b/engines/groovie/groovie.cpp @@ -20,9 +20,6 @@ * */ -#include "audio/mididrv.h" -#include "audio/mixer.h" - #include "groovie/groovie.h" #include "groovie/cursor.h" #include "groovie/detection.h" diff --git a/engines/groovie/music.h b/engines/groovie/music.h index dcb91d42a8..c549527c77 100644 --- a/engines/groovie/music.h +++ b/engines/groovie/music.h @@ -25,6 +25,8 @@ #include "common/array.h" #include "common/mutex.h" +#include "audio/mididrv.h" +#include "audio/mixer.h" class MidiParser; diff --git a/engines/groovie/player.cpp b/engines/groovie/player.cpp index c1b90fbd2c..dea32386f2 100644 --- a/engines/groovie/player.cpp +++ b/engines/groovie/player.cpp @@ -21,6 +21,7 @@ */ #include "common/debug.h" +#include "audio/audiostream.h" #include "groovie/player.h" #include "groovie/groovie.h" diff --git a/engines/groovie/player.h b/engines/groovie/player.h index b1aac963f2..952d3ac208 100644 --- a/engines/groovie/player.h +++ b/engines/groovie/player.h @@ -24,7 +24,10 @@ #define GROOVIE_PLAYER_H #include "common/system.h" -#include "audio/audiostream.h" + +namespace Audio { +class QueuingAudioStream; +} namespace Groovie { diff --git a/engines/groovie/roq.cpp b/engines/groovie/roq.cpp index f14cacd6b8..c1b6c44c4d 100644 --- a/engines/groovie/roq.cpp +++ b/engines/groovie/roq.cpp @@ -40,6 +40,7 @@ // Required for the YUV to RGB conversion #include "graphics/conversion.h" #endif +#include "audio/audiostream.h" #include "audio/mixer.h" #include "audio/decoders/raw.h" diff --git a/engines/groovie/script.cpp b/engines/groovie/script.cpp index eef97b6ff9..47fdaacf7a 100644 --- a/engines/groovie/script.cpp +++ b/engines/groovie/script.cpp @@ -21,7 +21,6 @@ */ #include "audio/mididrv.h" -#include "audio/mixer.h" #include "groovie/script.h" #include "groovie/cell.h" diff --git a/engines/groovie/vdx.cpp b/engines/groovie/vdx.cpp index 09c2e0d3ea..94b6aa0680 100644 --- a/engines/groovie/vdx.cpp +++ b/engines/groovie/vdx.cpp @@ -28,6 +28,7 @@ #include "common/debug.h" #include "common/debug-channels.h" #include "common/textconsole.h" +#include "audio/audiostream.h" #include "audio/mixer.h" #include "audio/decoders/raw.h" #include "graphics/palette.h" diff --git a/engines/hopkins/hopkins.h b/engines/hopkins/hopkins.h index b782d103a8..30140baa2e 100644 --- a/engines/hopkins/hopkins.h +++ b/engines/hopkins/hopkins.h @@ -48,7 +48,6 @@ #include "common/util.h" #include "engines/engine.h" #include "graphics/surface.h" -#include "gui/debugger.h" /** * This is the namespace of the Hopkins engine. diff --git a/engines/hopkins/sound.cpp b/engines/hopkins/sound.cpp index 6660233740..3030636a59 100644 --- a/engines/hopkins/sound.cpp +++ b/engines/hopkins/sound.cpp @@ -26,6 +26,8 @@ #include "hopkins/hopkins.h" #include "audio/decoders/adpcm_intern.h" +#include "audio/decoders/wave.h" +#include "audio/softsynth/pcspk.h" #include "common/system.h" #include "common/config-manager.h" #include "common/file.h" diff --git a/engines/hopkins/sound.h b/engines/hopkins/sound.h index 1fb4f9ae71..49c5846198 100644 --- a/engines/hopkins/sound.h +++ b/engines/hopkins/sound.h @@ -25,10 +25,16 @@ #include "common/scummsys.h" #include "common/str.h" -#include "audio/audiostream.h" -#include "audio/decoders/wave.h" #include "audio/mixer.h" +namespace Audio { +class RewindableAudioStream; +} + +namespace Common { +class SeekableReadStream; +} + namespace Hopkins { class VoiceItem { diff --git a/engines/hugo/dialogs.cpp b/engines/hugo/dialogs.cpp index 8b145b78d8..c741c6a837 100644 --- a/engines/hugo/dialogs.cpp +++ b/engines/hugo/dialogs.cpp @@ -26,7 +26,8 @@ #include "image/bmp.h" #include "hugo/hugo.h" -#include "hugo/display.h" +#include "hugo/dialogs.h" +#include "hugo/file.h" #include "hugo/parser.h" #include "hugo/schedule.h" #include "hugo/sound.h" diff --git a/engines/hugo/dialogs.h b/engines/hugo/dialogs.h index 55bb8f9fd0..aebbeee8c1 100644 --- a/engines/hugo/dialogs.h +++ b/engines/hugo/dialogs.h @@ -28,6 +28,8 @@ namespace Hugo { +class HugoEngine; + enum MenuOption { kMenuWhat = 0, kMenuMusic, diff --git a/engines/hugo/display.cpp b/engines/hugo/display.cpp index a8a22fb4b9..17627608bd 100644 --- a/engines/hugo/display.cpp +++ b/engines/hugo/display.cpp @@ -37,6 +37,7 @@ #include "hugo/hugo.h" #include "hugo/display.h" +#include "hugo/file.h" #include "hugo/inventory.h" #include "hugo/util.h" #include "hugo/object.h" diff --git a/engines/hugo/display.h b/engines/hugo/display.h index e152a7f868..99fda0a638 100644 --- a/engines/hugo/display.h +++ b/engines/hugo/display.h @@ -30,6 +30,11 @@ #ifndef HUGO_DISPLAY_H #define HUGO_DISPLAY_H +namespace Common { +class ReadStream; +class WriteStream; +} + namespace Hugo { enum OverlayState {kOvlUndef, kOvlForeground, kOvlBackground}; // Overlay state diff --git a/engines/hugo/file.h b/engines/hugo/file.h index d43528f0f8..731eb70a35 100644 --- a/engines/hugo/file.h +++ b/engines/hugo/file.h @@ -30,6 +30,8 @@ #ifndef HUGO_FILE_H #define HUGO_FILE_H +#include "common/file.h" + namespace Hugo { /** * Enumerate overlay file types diff --git a/engines/hugo/hugo.cpp b/engines/hugo/hugo.cpp index 8f89832f6b..267eb08436 100644 --- a/engines/hugo/hugo.cpp +++ b/engines/hugo/hugo.cpp @@ -29,7 +29,10 @@ #include "common/textconsole.h" #include "hugo/hugo.h" +#include "hugo/console.h" +#include "hugo/dialogs.h" #include "hugo/file.h" +#include "hugo/game.h" #include "hugo/schedule.h" #include "hugo/display.h" #include "hugo/mouse.h" diff --git a/engines/hugo/hugo.h b/engines/hugo/hugo.h index cc0fcc6ec2..27dfea8725 100644 --- a/engines/hugo/hugo.h +++ b/engines/hugo/hugo.h @@ -24,19 +24,16 @@ #define HUGO_H #include "engines/engine.h" -#include "common/file.h" -#include "hugo/console.h" -#include "hugo/dialogs.h" // This include is here temporarily while the engine is being refactored. #include "hugo/game.h" -#include "hugo/file.h" #define HUGO_DAT_VER_MAJ 0 // 1 byte #define HUGO_DAT_VER_MIN 42 // 1 byte #define DATAALIGNMENT 4 namespace Common { +class SeekableReadStream; class RandomSource; } @@ -209,6 +206,8 @@ class SoundHandler; class IntroHandler; class ObjectHandler; class TextHandler; +class TopMenu; +class HugoConsole; class HugoEngine : public Engine { public: diff --git a/engines/hugo/intro.cpp b/engines/hugo/intro.cpp index 26ef65edf8..e15291e03b 100644 --- a/engines/hugo/intro.cpp +++ b/engines/hugo/intro.cpp @@ -29,9 +29,13 @@ #include "common/system.h" #include "common/textconsole.h" +#include "graphics/font.h" +#include "graphics/pixelformat.h" #include "hugo/hugo.h" #include "hugo/intro.h" +#include "hugo/file.h" +#include "hugo/game.h" #include "hugo/util.h" #include "hugo/display.h" #include "hugo/sound.h" diff --git a/engines/hugo/intro.h b/engines/hugo/intro.h index 7af53c8922..d40cffbfaf 100644 --- a/engines/hugo/intro.h +++ b/engines/hugo/intro.h @@ -29,6 +29,7 @@ #ifndef INTRO_H #define INTRO_H +#include "graphics/surface.h" #include "graphics/fonts/winfont.h" namespace Hugo { diff --git a/engines/hugo/mouse.cpp b/engines/hugo/mouse.cpp index 3674c90757..8c0ba12f8f 100644 --- a/engines/hugo/mouse.cpp +++ b/engines/hugo/mouse.cpp @@ -33,6 +33,7 @@ #include "common/system.h" #include "hugo/hugo.h" +#include "hugo/dialogs.h" #include "hugo/game.h" #include "hugo/mouse.h" #include "hugo/schedule.h" diff --git a/engines/hugo/mouse.h b/engines/hugo/mouse.h index f9d547ec86..0bfa1b0db4 100644 --- a/engines/hugo/mouse.h +++ b/engines/hugo/mouse.h @@ -29,6 +29,13 @@ #ifndef HUGO_MOUSE_H #define HUGO_MOUSE_H + +#include "hugo/game.h" + +namespace Common { +class ReadStream; +} + namespace Hugo { class MouseHandler { diff --git a/engines/hugo/parser.cpp b/engines/hugo/parser.cpp index 998dd5df58..7ee0198882 100644 --- a/engines/hugo/parser.cpp +++ b/engines/hugo/parser.cpp @@ -29,12 +29,12 @@ #include "common/events.h" #include "common/textconsole.h" +#include "gui/debugger.h" #include "hugo/hugo.h" #include "hugo/display.h" #include "hugo/parser.h" #include "hugo/file.h" -#include "hugo/schedule.h" #include "hugo/util.h" #include "hugo/route.h" #include "hugo/sound.h" diff --git a/engines/hugo/parser.h b/engines/hugo/parser.h index 5a2ac7d375..dfdd984832 100644 --- a/engines/hugo/parser.h +++ b/engines/hugo/parser.h @@ -32,6 +32,7 @@ namespace Common { struct Event; +class ReadStream; } namespace Hugo { diff --git a/engines/hugo/sound.cpp b/engines/hugo/sound.cpp index 8591709dc3..09de256789 100644 --- a/engines/hugo/sound.cpp +++ b/engines/hugo/sound.cpp @@ -37,6 +37,7 @@ #include "audio/decoders/raw.h" #include "audio/audiostream.h" #include "audio/midiparser.h" +#include "audio/softsynth/pcspk.h" #include "hugo/hugo.h" #include "hugo/game.h" diff --git a/engines/hugo/sound.h b/engines/hugo/sound.h index 6c3420918d..a623569a8b 100644 --- a/engines/hugo/sound.h +++ b/engines/hugo/sound.h @@ -32,7 +32,10 @@ #include "audio/mixer.h" #include "audio/midiplayer.h" -#include "audio/softsynth/pcspk.h" + +namespace Audio { +class PCSpeaker; +} namespace Hugo { diff --git a/engines/hugo/text.cpp b/engines/hugo/text.cpp index 50b2b64260..617fccc36d 100644 --- a/engines/hugo/text.cpp +++ b/engines/hugo/text.cpp @@ -20,6 +20,7 @@ * */ #include "common/system.h" +#include "common/stream.h" #include "hugo/hugo.h" #include "hugo/text.h" diff --git a/engines/hugo/util.cpp b/engines/hugo/util.cpp index 7b75bf2bc5..bc1525382c 100644 --- a/engines/hugo/util.cpp +++ b/engines/hugo/util.cpp @@ -28,13 +28,11 @@ */ #include "common/system.h" +#include "common/util.h" #include "gui/message.h" -#include "hugo/game.h" -#include "hugo/hugo.h" +#include "hugo/dialogs.h" #include "hugo/util.h" -#include "hugo/sound.h" -#include "hugo/text.h" namespace Hugo { diff --git a/engines/kyra/debugger.cpp b/engines/kyra/debugger.cpp index 6683f973ca..614d23f70e 100644 --- a/engines/kyra/debugger.cpp +++ b/engines/kyra/debugger.cpp @@ -31,8 +31,6 @@ #include "common/system.h" #include "common/config-manager.h" -#include "gui/message.h" - namespace Kyra { Debugger::Debugger(KyraEngine_v1 *vm) diff --git a/engines/kyra/eobcommon.cpp b/engines/kyra/eobcommon.cpp index 38a5ab8440..2264d99dde 100644 --- a/engines/kyra/eobcommon.cpp +++ b/engines/kyra/eobcommon.cpp @@ -24,7 +24,8 @@ #include "kyra/kyra_rpg.h" #include "kyra/resource.h" -#include "kyra/sound_intern.h" +#include "engines/kyra/sound.h" +#include "engines/kyra/sound_adlib.h" #include "kyra/script_eob.h" #include "kyra/timer.h" #include "kyra/debugger.h" @@ -32,9 +33,6 @@ #include "common/config-manager.h" #include "common/translation.h" -#include "audio/mididrv.h" -#include "audio/mixer.h" - #include "backends/keymapper/keymapper.h" namespace Kyra { diff --git a/engines/kyra/kyra_lok.cpp b/engines/kyra/kyra_lok.cpp index 80511c674d..118ca8dfaa 100644 --- a/engines/kyra/kyra_lok.cpp +++ b/engines/kyra/kyra_lok.cpp @@ -33,8 +33,6 @@ #include "common/config-manager.h" #include "common/debug-channels.h" -#include "gui/message.h" - namespace Kyra { KyraEngine_LoK::KyraEngine_LoK(OSystem *system, const GameFlags &flags) diff --git a/engines/kyra/kyra_v2.cpp b/engines/kyra/kyra_v2.cpp index 925dcf7bfe..106420d9c2 100644 --- a/engines/kyra/kyra_v2.cpp +++ b/engines/kyra/kyra_v2.cpp @@ -46,6 +46,8 @@ KyraEngine_v2::KyraEngine_v2(OSystem *system, const GameFlags &flags, const Engi memset(&_sceneScriptState, 0, sizeof(_sceneScriptState)); memset(&_sceneScriptData, 0, sizeof(_sceneScriptData)); + Common::fill(_sceneSpecialScriptsTimer, ARRAYEND(_sceneSpecialScriptsTimer), 0); + _animObjects = 0; _runFlag = true; diff --git a/engines/kyra/lol.h b/engines/kyra/lol.h index e060b307af..af58397200 100644 --- a/engines/kyra/lol.h +++ b/engines/kyra/lol.h @@ -463,6 +463,7 @@ private: const uint8 *_musicTrackMap; const uint16 *_ingameSoundIndex; + int _ingameSoundIndexSize; const uint8 *_ingameGMSoundIndex; int _ingameGMSoundIndexSize; const uint8 *_ingameMT32SoundIndex; diff --git a/engines/kyra/resource.h b/engines/kyra/resource.h index 3ab08a4c7c..c3ebf6e5fe 100644 --- a/engines/kyra/resource.h +++ b/engines/kyra/resource.h @@ -203,7 +203,6 @@ enum KyraResources { k1ConfigStrings, k1AudioTracks, - k1AudioTracks2, k1AudioTracksIntro, k1CreditsStrings, diff --git a/engines/kyra/sound_adlib.cpp b/engines/kyra/sound_adlib.cpp index 1d741d8bd0..1703fb904e 100644 --- a/engines/kyra/sound_adlib.cpp +++ b/engines/kyra/sound_adlib.cpp @@ -44,15 +44,17 @@ #include "common/mutex.h" #include "common/config-manager.h" -#include "audio/mixer.h" #include "audio/fmopl.h" -#include "audio/audiostream.h" // Basic AdLib Programming: // http://www.gamedev.net/reference/articles/article446.asp #define CALLBACKS_PER_SECOND 72 +namespace Audio { +class Mixer; +} + namespace Kyra { class AdLibDriver { diff --git a/engines/kyra/sound_lol.cpp b/engines/kyra/sound_lol.cpp index 8be0cb6ab9..6e7551ed0e 100644 --- a/engines/kyra/sound_lol.cpp +++ b/engines/kyra/sound_lol.cpp @@ -161,7 +161,7 @@ void LoLEngine::snd_playSoundEffect(int track, int volume) { return; _lastSfxTrack = track; - if (track == -1 || track >= _ingameSoundListSize) + if (track == -1 || track >= _ingameSoundIndexSize) return; volume &= 0xFF; @@ -216,10 +216,10 @@ bool LoLEngine::snd_processEnvironmentalSoundEffect(int soundId, int block) { for (int i = 3; i > 0; i--) { int dir = calcMonsterDirection(cbl & 0x1F, cbl >> 5, block & 0x1F, block >> 5); cbl = (cbl + blockShiftTable[dir]) & 0x3FF; - if (cbl != block) { - if (testWallFlag(cbl, 0, 1)) - _environmentSfxVol >>= 1; - } + if (cbl == block) + break; + if (testWallFlag(cbl, 0, 1)) + _environmentSfxVol >>= 1; } } diff --git a/engines/kyra/staticres.cpp b/engines/kyra/staticres.cpp index 1a2e2c093c..e99321ddcb 100644 --- a/engines/kyra/staticres.cpp +++ b/engines/kyra/staticres.cpp @@ -39,7 +39,7 @@ namespace Kyra { -#define RESFILE_VERSION 87 +#define RESFILE_VERSION 88 namespace { bool checkKyraDat(Common::SeekableReadStream *file) { @@ -805,19 +805,11 @@ void KyraEngine_LoK::initStaticResource() { } // audio resource assignment - int size1, size2; - const char *const *soundfiles1 = _staticres->loadStrings(k1AudioTracks, size1); - const char *const *soundfiles2 = _staticres->loadStrings(k1AudioTracks2, size2); - int soundFilesSize = size1 + size2; + int soundFilesSize; + const char *const *soundFiles = _staticres->loadStrings(k1AudioTracks, soundFilesSize); int soundFilesIntroSize = 0; int cdaTableSize = 0; - const char **soundFiles = 0; - if (soundFilesSize) { - soundFiles = new const char*[soundFilesSize]; - for (int i = 0; i < soundFilesSize; i++) - soundFiles[i] = (i < size1) ? soundfiles1[i] : soundfiles2[i - size1]; - } const char *const *soundFilesIntro = _staticres->loadStrings(k1AudioTracksIntro, soundFilesIntroSize); const int32 *cdaTable = (const int32 *)_staticres->loadRawData(k1TownsCDATable, cdaTableSize); diff --git a/engines/kyra/staticres_lol.cpp b/engines/kyra/staticres_lol.cpp index 9a4fc281d5..c40b4a0c7d 100644 --- a/engines/kyra/staticres_lol.cpp +++ b/engines/kyra/staticres_lol.cpp @@ -255,7 +255,7 @@ void LoLEngine::initStaticResource() { int tempSize; _pakFileList = _staticres->loadStrings(kLoLIngamePakFiles, _pakFileListSize); _charDefaults = _staticres->loadCharData(kLoLCharacterDefs, _charDefaultsSize); - _ingameSoundIndex = (const uint16 *)_staticres->loadRawData(kLoLIngameSfxIndex, tempSize); + _ingameSoundIndex = (const uint16 *)_staticres->loadRawData(kLoLIngameSfxIndex, _ingameSoundIndexSize); _musicTrackMap = _staticres->loadRawData(kLoLMusicTrackMap, tempSize); _ingameGMSoundIndex = _staticres->loadRawData(kLoLIngameGMSfxIndex, _ingameGMSoundIndexSize); _ingameMT32SoundIndex = _staticres->loadRawData(kLoLIngameMT32SfxIndex, _ingameMT32SoundIndexSize); diff --git a/engines/lab/anim.cpp b/engines/lab/anim.cpp index f2e6992375..1190f0323b 100644 --- a/engines/lab/anim.cpp +++ b/engines/lab/anim.cpp @@ -28,6 +28,8 @@ * */ +#include "common/file.h" + #include "lab/lab.h" #include "lab/anim.h" diff --git a/engines/lab/dispman.cpp b/engines/lab/dispman.cpp index af235f234b..d642f2fed5 100644 --- a/engines/lab/dispman.cpp +++ b/engines/lab/dispman.cpp @@ -28,6 +28,7 @@ * */ +#include "common/file.h" #include "graphics/palette.h" #include "lab/lab.h" diff --git a/engines/lab/engine.cpp b/engines/lab/engine.cpp index 6ba405380e..4f0a0da777 100644 --- a/engines/lab/engine.cpp +++ b/engines/lab/engine.cpp @@ -29,6 +29,7 @@ */ #include "common/config-manager.h" +#include "common/file.h" #include "gui/message.h" diff --git a/engines/lab/intro.cpp b/engines/lab/intro.cpp index 01e8cac401..0184ff7c69 100644 --- a/engines/lab/intro.cpp +++ b/engines/lab/intro.cpp @@ -28,6 +28,8 @@ * */ +#include "common/file.h" + #include "lab/lab.h" #include "lab/anim.h" diff --git a/engines/lab/lab.cpp b/engines/lab/lab.cpp index 9b0ebfc4e5..39b2feb93d 100644 --- a/engines/lab/lab.cpp +++ b/engines/lab/lab.cpp @@ -31,6 +31,7 @@ #include "common/config-manager.h" #include "common/debug-channels.h" #include "common/error.h" +#include "common/file.h" #include "engines/util.h" diff --git a/engines/lab/map.cpp b/engines/lab/map.cpp index 5c6bb07814..057cac3589 100644 --- a/engines/lab/map.cpp +++ b/engines/lab/map.cpp @@ -28,6 +28,8 @@ * */ +#include "common/file.h" + #include "lab/lab.h" #include "lab/dispman.h" diff --git a/engines/lab/music.cpp b/engines/lab/music.cpp index b58d6dc923..579f450456 100644 --- a/engines/lab/music.cpp +++ b/engines/lab/music.cpp @@ -28,6 +28,8 @@ * */ +#include "common/file.h" +#include "audio/audiostream.h" #include "audio/decoders/raw.h" #include "lab/lab.h" diff --git a/engines/lab/music.h b/engines/lab/music.h index 472fe4fef7..8175e350f1 100644 --- a/engines/lab/music.h +++ b/engines/lab/music.h @@ -31,9 +31,11 @@ #ifndef LAB_MUSIC_H #define LAB_MUSIC_H -#include "common/file.h" #include "audio/mixer.h" -#include "audio/audiostream.h" + +namespace Common { +class File; +} namespace Lab { diff --git a/engines/lab/resource.cpp b/engines/lab/resource.cpp index aae369fbae..9cb35d1088 100644 --- a/engines/lab/resource.cpp +++ b/engines/lab/resource.cpp @@ -28,6 +28,8 @@ * */ +#include "common/file.h" + #include "lab/lab.h" #include "lab/dispman.h" diff --git a/engines/lab/special.cpp b/engines/lab/special.cpp index 9f9b993afa..7c3cb39931 100644 --- a/engines/lab/special.cpp +++ b/engines/lab/special.cpp @@ -28,6 +28,8 @@ * */ +#include "common/file.h" + #include "lab/lab.h" #include "lab/anim.h" diff --git a/engines/lastexpress/entities/gendarmes.cpp b/engines/lastexpress/entities/gendarmes.cpp index b628b8dfe7..1b51dd2006 100644 --- a/engines/lastexpress/entities/gendarmes.cpp +++ b/engines/lastexpress/entities/gendarmes.cpp @@ -174,7 +174,7 @@ IMPLEMENT_FUNCTION_IISS(9, Gendarmes, doCompartment, CarIndex, EntityPosition) strcat((char *)¶meters1->seq1, (char *)¶ms->seq1); strcat((char *)¶meters1->seq2, (char *)¶ms->seq1); - strcat((char *)¶meters1->seq3, (char *)¶ms->seq1); + Common::strlcat((char *)¶meters1->seq3, (char *)¶ms->seq1, 9); // Beware, seq3 is smaller than seq1 if ((getEntities()->isInsideCompartment(kEntityPlayer, (CarIndex)params->param1, (EntityPosition)params->param2) || getEntities()->isInsideCompartment(kEntityPlayer, (CarIndex)params->param1, (EntityPosition)parameters2->param7) diff --git a/engines/lastexpress/sound/entry.cpp b/engines/lastexpress/sound/entry.cpp index 697e6e1269..7308214551 100644 --- a/engines/lastexpress/sound/entry.cpp +++ b/engines/lastexpress/sound/entry.cpp @@ -366,7 +366,7 @@ void SoundEntry::saveLoadWithSerializer(Common::Serializer &s) { assert(_name1.size() <= 16); assert(_name2.size() <= 16); - if (_name2.matchString("NISSND?") && (_status.status & kFlagType9) != kFlag3) { + if (_name2.matchString("NISSND?") && ((_status.status & kFlagType9) != kFlag3)) { s.syncAsUint32LE(_status.status); s.syncAsUint32LE(_type); s.syncAsUint32LE(_blockCount); // field_8; diff --git a/engines/lure/game.cpp b/engines/lure/game.cpp index 38ca0ba54f..84cc91ec9a 100644 --- a/engines/lure/game.cpp +++ b/engines/lure/game.cpp @@ -538,7 +538,7 @@ void Game::handleRightClickMenu() { hotspot = res.getHotspot(room.hotspotId()); assert(hotspot); strings.getString(hotspot->nameId, statusLine); - strcat(statusLine, stringList.getString(S_FOR)); + Common::strlcat(statusLine, stringList.getString(S_FOR), MAX_DESC_SIZE); statusLine += strlen(statusLine); itemId = PopupMenu::ShowItems(GET, player->roomNumber()); @@ -549,7 +549,7 @@ void Game::handleRightClickMenu() { hotspot = res.getHotspot(room.hotspotId()); assert(hotspot); strings.getString(hotspot->nameId, statusLine); - strcat(statusLine, stringList.getString(S_TO)); + Common::strlcat(statusLine, stringList.getString(S_TO), MAX_DESC_SIZE); breakFlag = GetTellActions(); break; @@ -559,7 +559,7 @@ void Game::handleRightClickMenu() { case DRINK: hasItems = (res.numInventoryItems() != 0); if (!hasItems) - strcat(statusLine, stringList.getString(S_ACTION_NOTHING)); + Common::strlcat(statusLine, stringList.getString(S_ACTION_NOTHING), MAX_DESC_SIZE); statusLine += strlen(statusLine); room.update(); @@ -579,9 +579,9 @@ void Game::handleRightClickMenu() { assert(useHotspot); strings.getString(useHotspot->nameId, statusLine); if (action == GIVE) - strcat(statusLine, stringList.getString(S_TO)); + Common::strlcat(statusLine, stringList.getString(S_TO), MAX_DESC_SIZE); else - strcat(statusLine, stringList.getString(S_ON)); + Common::strlcat(statusLine, stringList.getString(S_ON), MAX_DESC_SIZE); statusLine += strlen(statusLine); } else if ((action == DRINK) || (action == EXAMINE)) @@ -762,11 +762,11 @@ bool Game::GetTellActions() { // Second parameter action = (Action) commands[_numTellCommands * 3]; if (action == ASK) - strcat(statusLine, stringList.getString(S_FOR)); + Common::strlcat(statusLine, stringList.getString(S_FOR), MAX_DESC_SIZE); else if (action == GIVE) - strcat(statusLine, stringList.getString(S_TO)); + Common::strlcat(statusLine, stringList.getString(S_TO), MAX_DESC_SIZE); else if (action == USE) - strcat(statusLine, stringList.getString(S_ON)); + Common::strlcat(statusLine, stringList.getString(S_ON), MAX_DESC_SIZE); else { // All other commads don't need a second parameter ++paramIndex; diff --git a/engines/lure/hotspots.cpp b/engines/lure/hotspots.cpp index fbf93e1e14..a972909b8b 100644 --- a/engines/lure/hotspots.cpp +++ b/engines/lure/hotspots.cpp @@ -1898,8 +1898,8 @@ void Hotspot::doStatus(HotspotData *hotspot) { endAction(); strings.getString(room.roomNumber(), buffer); - strcat(buffer, "\n\n"); - strcat(buffer, stringList.getString(S_YOU_ARE_CARRYING)); + Common::strlcat(buffer, "\n\n", MAX_DESC_SIZE); + Common::strlcat(buffer, stringList.getString(S_YOU_ARE_CARRYING), MAX_DESC_SIZE); // Scan through the list and add in any items assigned to the player HotspotDataList &list = res.hotspotData(); @@ -1909,25 +1909,25 @@ void Hotspot::doStatus(HotspotData *hotspot) { if (rec.roomNumber == PLAYER_ID) { if (numItems++ == 0) - strcat(buffer, ": "); + Common::strlcat(buffer, ": ", MAX_DESC_SIZE); else - strcat(buffer, ", "); + Common::strlcat(buffer, ", ", MAX_DESC_SIZE); strings.getString(rec.nameId, buffer + strlen(buffer)); } } // If there were no items, add in the word 'nothing' if (numItems == 0) - strcat(buffer, stringList.getString(S_INV_NOTHING)); + Common::strlcat(buffer, stringList.getString(S_INV_NOTHING), MAX_DESC_SIZE); // If the player has money, add it in uint16 numGroats = res.fieldList().numGroats(); if (numGroats > 0) { - strcat(buffer, "\n\n"); - strcat(buffer, stringList.getString(S_YOU_HAVE)); - sprintf(buffer + strlen(buffer), "%d", numGroats); - strcat(buffer, " "); - strcat(buffer, stringList.getString((numGroats == 1) ? S_GROAT : S_GROATS)); + Common::strlcat(buffer, "\n\n", MAX_DESC_SIZE); + Common::strlcat(buffer, stringList.getString(S_YOU_HAVE), MAX_DESC_SIZE); + snprintf(buffer + strlen(buffer), MAX_DESC_SIZE, "%d", numGroats); + Common::strlcat(buffer, " ", MAX_DESC_SIZE); + Common::strlcat(buffer, stringList.getString((numGroats == 1) ? S_GROAT : S_GROATS), MAX_DESC_SIZE); // Make sure we're not overrunning } // Display the dialog diff --git a/engines/lure/lure.h b/engines/lure/lure.h index b6eb9123ad..af00197c3f 100644 --- a/engines/lure/lure.h +++ b/engines/lure/lure.h @@ -25,7 +25,6 @@ #include "engines/engine.h" #include "common/rect.h" -#include "audio/mixer.h" #include "common/file.h" #include "common/savefile.h" #include "common/util.h" diff --git a/engines/lure/scripts.cpp b/engines/lure/scripts.cpp index 3df119a9da..f7dc06033a 100644 --- a/engines/lure/scripts.cpp +++ b/engines/lure/scripts.cpp @@ -926,8 +926,8 @@ uint16 Script::execute(uint16 startOffset) { opcode >>= 1; if (gDebugLevel >= ERROR_DETAILED) - strcat(debugInfo, (opcode > S_OPCODE_RANDOM) ? "INVALID" : - scriptOpcodes[opcode]); + Common::strlcat(debugInfo, (opcode > S_OPCODE_RANDOM) ? "INVALID" : + scriptOpcodes[opcode], MAX_DESC_SIZE); if (hasParam) { // Flag to read next two bytes as active parameter @@ -1087,7 +1087,7 @@ uint16 Script::execute(uint16 startOffset) { else if (scriptMethodNames[param] == NULL) strcat(debugInfo, " UNKNOWN METHOD"); else { strcat(debugInfo, " "); - strcat(debugInfo, scriptMethodNames[param]); + Common::strlcat(debugInfo, scriptMethodNames[param], MAX_DESC_SIZE); } // Any params diff --git a/engines/made/database.cpp b/engines/made/database.cpp index 3eab31acc2..0020cb398c 100644 --- a/engines/made/database.cpp +++ b/engines/made/database.cpp @@ -40,6 +40,7 @@ namespace Made { */ Object::Object() : _objData(NULL), _freeData(false) { + _objSize = 0; } Object::~Object() { diff --git a/engines/made/made.cpp b/engines/made/made.cpp index f1539297ee..a29aa2512f 100644 --- a/engines/made/made.cpp +++ b/engines/made/made.cpp @@ -58,11 +58,24 @@ MadeEngine::MadeEngine(OSystem *syst, const MadeGameDescription *gameDesc) : Eng const GameSettings *g; + _eventNum = 0; + _eventMouseX = _eventMouseY = 0; + _eventKey = 0; + _autoStopSound = false; + _soundEnergyIndex = 0; + _soundEnergyArray = 0; + _musicBeatStart = 0; + _cdTimeStart = 0; + + _gameId = -1; + const char *gameid = ConfMan.get("gameid").c_str(); for (g = madeSettings; g->gameid; ++g) if (!scumm_stricmp(g->gameid, gameid)) _gameId = g->id; + assert(_gameId != -1); + _rnd = new Common::RandomSource("made"); _console = new MadeConsole(this); @@ -85,6 +98,8 @@ MadeEngine::MadeEngine(OSystem *syst, const MadeGameDescription *gameDesc) : Eng _music = nullptr; + _soundRate = 0; + // Set default sound frequency switch (getGameID()) { case GID_RODNEY: diff --git a/engines/made/pmvplayer.cpp b/engines/made/pmvplayer.cpp index 453e2a4872..0beb132b93 100644 --- a/engines/made/pmvplayer.cpp +++ b/engines/made/pmvplayer.cpp @@ -223,7 +223,10 @@ bool PmvPlayer::play(const char *filename) { //delete _audioStream; delete _fd; - _surface->free(); + + if(_surface) + _surface->free(); + delete _surface; return !_aborted; diff --git a/engines/made/redreader.cpp b/engines/made/redreader.cpp index f92ffd8dd8..a0aaf7be43 100644 --- a/engines/made/redreader.cpp +++ b/engines/made/redreader.cpp @@ -102,7 +102,7 @@ int LzhDecompressor::decompress(Common::SeekableReadStream &source, byte *dest, int bufsize; byte* buffer; - buffer = (byte *) malloc(DICSIZ); + buffer = (byte *)calloc(DICSIZ, 1); _source = &source; _compSize = sourceLen; diff --git a/engines/made/resource.cpp b/engines/made/resource.cpp index f8e763e74e..a9734ed47d 100644 --- a/engines/made/resource.cpp +++ b/engines/made/resource.cpp @@ -43,6 +43,7 @@ Resource::~Resource() { PictureResource::PictureResource() : _picture(NULL), _picturePalette(NULL) { _hasPalette = false; + _paletteColorCount = 0; } PictureResource::~PictureResource() { @@ -182,6 +183,9 @@ void PictureResource::loadChunked(byte *source, int size) { /* AnimationResource */ AnimationResource::AnimationResource() { + _flags = 0; + _width = 0; + _height = 0; } AnimationResource::~AnimationResource() { diff --git a/engines/made/screen.cpp b/engines/made/screen.cpp index edccb68953..33edb3834c 100644 --- a/engines/made/screen.cpp +++ b/engines/made/screen.cpp @@ -91,6 +91,8 @@ Screen::Screen(MadeEngine *vm) : _vm(vm) { _currentFontNum = 0; _fontDrawCtx.clipRect = Common::Rect(320, 200); _fontDrawCtx.destSurface = _backgroundScreen; + _outlineColor = 0; + _dropShadowColor = 0; clearChannels(); } diff --git a/engines/made/sound.cpp b/engines/made/sound.cpp index ad49031e7b..62559efa84 100644 --- a/engines/made/sound.cpp +++ b/engines/made/sound.cpp @@ -155,6 +155,7 @@ void decompressSound(byte *source, byte *dest, uint16 chunkSize, uint16 chunkCou }; soundEnergyItem.position = 0; + memset(deltaSoundBuffer, 0, 1024); if (soundEnergyArray) soundEnergyArray->clear(); @@ -237,6 +238,7 @@ void decompressSound(byte *source, byte *dest, uint16 chunkSize, uint16 chunkCou break; default: + delete[] soundBuffer; return; } @@ -247,6 +249,9 @@ void decompressSound(byte *source, byte *dest, uint16 chunkSize, uint16 chunkCou // soundBuffer. soundBuffer[workChunkSize] = soundBuffer[workChunkSize - 1]; + for (i = 0; i < chunkSize; i++) + soundBuffer[i] = 0; + if (deltaType == 1) { for (i = 0; i < chunkSize - 1; i += 2) { l = i / 2; diff --git a/engines/mads/mads.cpp b/engines/mads/mads.cpp index 29bcd10094..5776d813cf 100644 --- a/engines/mads/mads.cpp +++ b/engines/mads/mads.cpp @@ -58,6 +58,7 @@ MADSEngine::MADSEngine(OSystem *syst, const MADSGameDescription *gameDesc) : _resources = nullptr; _sound = nullptr; _audio = nullptr; + _screen = nullptr; } MADSEngine::~MADSEngine() { diff --git a/engines/mads/menu_views.h b/engines/mads/menu_views.h index c203248ad9..e22b6223a7 100644 --- a/engines/mads/menu_views.h +++ b/engines/mads/menu_views.h @@ -8,20 +8,12 @@ * 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. -<<<<<<< HEAD - -======= * ->>>>>>> master * 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. -<<<<<<< HEAD - -======= * ->>>>>>> master * 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. diff --git a/engines/mads/nebular/sound_nebular.cpp b/engines/mads/nebular/sound_nebular.cpp index 4c360b23d5..5f71c99a94 100644 --- a/engines/mads/nebular/sound_nebular.cpp +++ b/engines/mads/nebular/sound_nebular.cpp @@ -20,16 +20,15 @@ * */ -#include "audio/audiostream.h" #include "audio/fmopl.h" -#include "audio/decoders/raw.h" #include "common/algorithm.h" -#include "common/debug.h" #include "common/md5.h" -#include "common/memstream.h" -#include "mads/sound.h" #include "mads/nebular/sound_nebular.h" +namespace Audio { +class Mixer; +} + namespace MADS { namespace Nebular { diff --git a/engines/mads/nebular/sound_nebular.h b/engines/mads/nebular/sound_nebular.h index 2b80b08d89..a9e1493109 100644 --- a/engines/mads/nebular/sound_nebular.h +++ b/engines/mads/nebular/sound_nebular.h @@ -27,8 +27,14 @@ #include "common/file.h" #include "common/mutex.h" #include "common/queue.h" -#include "audio/audiostream.h" -#include "audio/mixer.h" + +namespace Audio { +class Mixer; +} + +namespace Common { +class SeekableReadStream; +} namespace OPL { class OPL; @@ -36,8 +42,6 @@ class OPL; namespace MADS { -class SoundManager; - namespace Nebular { class ASound; diff --git a/engines/mads/sound.cpp b/engines/mads/sound.cpp index c96fd01882..5f2c9aca56 100644 --- a/engines/mads/sound.cpp +++ b/engines/mads/sound.cpp @@ -20,14 +20,16 @@ * */ -#include "audio/audiostream.h" #include "audio/fmopl.h" -#include "audio/decoders/raw.h" #include "common/memstream.h" #include "mads/sound.h" #include "mads/mads.h" #include "mads/nebular/sound_nebular.h" +namespace Audio { +class Mixer; +} + namespace MADS { SoundManager::SoundManager(MADSEngine *vm, Audio::Mixer *mixer) { diff --git a/engines/mads/sound.h b/engines/mads/sound.h index 2c4de6f21d..9674d4198d 100644 --- a/engines/mads/sound.h +++ b/engines/mads/sound.h @@ -25,12 +25,21 @@ #include "common/scummsys.h" #include "common/queue.h" -#include "audio/audiostream.h" -#include "audio/mixer.h" -#include "mads/nebular/sound_nebular.h" + +namespace Audio { +class Mixer; +} + +namespace OPL { +class OPL; +} namespace MADS { +namespace Nebular { +class ASound; +} + class MADSEngine; class SoundManager { diff --git a/engines/mohawk/POTFILES b/engines/mohawk/POTFILES index 54d9dcaa3a..036059da6a 100644 --- a/engines/mohawk/POTFILES +++ b/engines/mohawk/POTFILES @@ -1,3 +1,4 @@ +engines/mohawk/detection.cpp engines/mohawk/dialogs.cpp engines/mohawk/myst.cpp engines/mohawk/riven.cpp diff --git a/engines/mohawk/detection.cpp b/engines/mohawk/detection.cpp index a64d7ff7df..7c202998eb 100644 --- a/engines/mohawk/detection.cpp +++ b/engines/mohawk/detection.cpp @@ -221,10 +221,25 @@ SaveStateList MohawkMetaEngine::listSaves(const char *target) const { // Loading games is only supported in Myst/Riven currently. #ifdef ENABLE_MYST if (strstr(target, "myst")) { - filenames = Mohawk::MystGameState::generateSaveGameList(); + filenames = g_system->getSavefileManager()->listSavefiles("myst-###.mys"); + size_t prefixLen = sizeof("myst") - 1; + + for (Common::StringArray::const_iterator filename = filenames.begin(); filename != filenames.end(); ++filename) { + // Extract the slot number from the filename + char slot[4]; + slot[0] = (*filename)[prefixLen + 1]; + slot[1] = (*filename)[prefixLen + 2]; + slot[2] = (*filename)[prefixLen + 3]; + slot[3] = '\0'; + + int slotNum = atoi(slot); + + // Read the description from the save + Common::String description = Mohawk::MystGameState::querySaveDescription(slotNum); + saveList.push_back(SaveStateDescriptor(slotNum, description)); + } - for (uint32 i = 0; i < filenames.size(); i++) - saveList.push_back(SaveStateDescriptor(i, filenames[i])); + Common::sort(saveList.begin(), saveList.end(), SaveStateDescriptorSlotComparator()); } else #endif if (strstr(target, "riven")) { @@ -238,11 +253,11 @@ SaveStateList MohawkMetaEngine::listSaves(const char *target) const { } void MohawkMetaEngine::removeSaveState(const char *target, int slot) const { + // Removing saved games is only supported in Myst/Riven currently. #ifdef ENABLE_MYST if (strstr(target, "myst")) { - Common::StringArray filenames = Mohawk::MystGameState::generateSaveGameList(); - Mohawk::MystGameState::deleteSave(filenames[slot]); + Mohawk::MystGameState::deleteSave(slot); } else #endif if (strstr(target, "riven")) { @@ -254,13 +269,7 @@ void MohawkMetaEngine::removeSaveState(const char *target, int slot) const { SaveStateDescriptor MohawkMetaEngine::querySaveMetaInfos(const char *target, int slot) const { #ifdef ENABLE_MYST if (strstr(target, "myst")) { - Common::StringArray filenames = Mohawk::MystGameState::generateSaveGameList(); - - if (slot >= (int) filenames.size()) { - return SaveStateDescriptor(); - } - - return Mohawk::MystGameState::querySaveMetaInfos(filenames[slot]); + return Mohawk::MystGameState::querySaveMetaInfos(slot); } else #endif { diff --git a/engines/mohawk/detection_tables.h b/engines/mohawk/detection_tables.h index 7941a0d51a..e3eab89a34 100644 --- a/engines/mohawk/detection_tables.h +++ b/engines/mohawk/detection_tables.h @@ -40,7 +40,7 @@ static const MohawkGameDescription gameDescriptions[] = { AD_ENTRY1("MYST.DAT", "ae3258c9c90128d274aa6a790b3ad181"), Common::EN_ANY, Common::kPlatformWindows, - ADGF_UNSTABLE, + ADGF_TESTING, GUI_OPTIONS_MYST }, GType_MYST, @@ -58,7 +58,7 @@ static const MohawkGameDescription gameDescriptions[] = { AD_ENTRY1("DEMO.DAT", "c39303dd53fb5c4e7f3c23231c606cd0"), Common::EN_ANY, Common::kPlatformWindows, - ADGF_DEMO | ADGF_UNSTABLE, + ADGF_DEMO | ADGF_TESTING, GUI_OPTIONS_MYST_DEMO }, GType_MYST, @@ -76,7 +76,7 @@ static const MohawkGameDescription gameDescriptions[] = { AD_ENTRY1("MYST.DAT", "4beb3366ed3f3b9bfb6e81a14a43bdcc"), Common::DE_DEU, Common::kPlatformWindows, - ADGF_UNSTABLE, + ADGF_TESTING, GUI_OPTIONS_MYST }, GType_MYST, @@ -94,7 +94,7 @@ static const MohawkGameDescription gameDescriptions[] = { AD_ENTRY1("MYST.DAT", "e0937cca1ab125e48e30dc3cd5046ddf"), Common::DE_DEU, Common::kPlatformWindows, - ADGF_UNSTABLE, + ADGF_TESTING, GUI_OPTIONS_MYST }, GType_MYST, @@ -112,7 +112,7 @@ static const MohawkGameDescription gameDescriptions[] = { AD_ENTRY1("MYST.DAT", "f7e7d7ca69934f1351b5acd4fe4d44c2"), Common::ES_ESP, Common::kPlatformWindows, - ADGF_UNSTABLE, + ADGF_TESTING, GUI_OPTIONS_MYST }, GType_MYST, @@ -130,7 +130,7 @@ static const MohawkGameDescription gameDescriptions[] = { AD_ENTRY1("MYST.DAT", "a5795ce1751fc42525e4f9a1859181d5"), Common::IT_ITA, Common::kPlatformWindows, - ADGF_UNSTABLE, + ADGF_TESTING, GUI_OPTIONS_MYST }, GType_MYST, @@ -148,7 +148,7 @@ static const MohawkGameDescription gameDescriptions[] = { AD_ENTRY1("MYST.DAT", "032c88e3b7e8db4ca475e7b7db9a66bb"), Common::JA_JPN, Common::kPlatformWindows, - ADGF_UNSTABLE, + ADGF_TESTING, GUI_OPTIONS_MYST }, GType_MYST, @@ -166,7 +166,7 @@ static const MohawkGameDescription gameDescriptions[] = { AD_ENTRY1("MYST.DAT", "d631d42567a941c67c78f2e491f4ea58"), Common::FR_FRA, Common::kPlatformWindows, - ADGF_UNSTABLE, + ADGF_TESTING, GUI_OPTIONS_MYST }, GType_MYST, @@ -184,7 +184,7 @@ static const MohawkGameDescription gameDescriptions[] = { AD_ENTRY1("MAKING.DAT", "f6387e8f0f7b8a3e42c95294315d6a0e"), Common::EN_ANY, Common::kPlatformWindows, - ADGF_UNSTABLE, + ADGF_TESTING, GUI_OPTIONS_MYST_MAKING_OF }, GType_MAKINGOF, @@ -202,7 +202,7 @@ static const MohawkGameDescription gameDescriptions[] = { AD_ENTRY1("MAKING.DAT", "03ff62607e64419ab2b6ebf7b7bcdf63"), Common::JA_JPN, Common::kPlatformWindows, - ADGF_UNSTABLE, + ADGF_TESTING, GUI_OPTIONS_MYST_MAKING_OF }, GType_MAKINGOF, @@ -220,7 +220,7 @@ static const MohawkGameDescription gameDescriptions[] = { AD_ENTRY1("MYST.DAT", "c4cae9f143b5947262e6cb2397e1617e"), Common::EN_ANY, Common::kPlatformWindows, - ADGF_UNSTABLE, + ADGF_TESTING, GUI_OPTIONS_MYST_ME }, GType_MYST, @@ -238,7 +238,7 @@ static const MohawkGameDescription gameDescriptions[] = { AD_ENTRY1("MYST.DAT", "f88e0ace66dbca78eebdaaa1d3314ceb"), Common::DE_DEU, Common::kPlatformWindows, - ADGF_UNSTABLE, + ADGF_TESTING, GUI_OPTIONS_MYST_ME }, GType_MYST, @@ -256,7 +256,7 @@ static const MohawkGameDescription gameDescriptions[] = { AD_ENTRY1("MYST.DAT", "aea81633b2d2ae498f09072fb87263b6"), Common::FR_FRA, Common::kPlatformWindows, - ADGF_UNSTABLE, + ADGF_TESTING, GUI_OPTIONS_MYST_ME }, GType_MYST, @@ -274,7 +274,7 @@ static const MohawkGameDescription gameDescriptions[] = { AD_ENTRY1("MYST.DAT", "4a05771b60f4a69869838d01e85c9e80"), Common::PL_POL, Common::kPlatformWindows, - ADGF_UNSTABLE, + ADGF_TESTING, GUI_OPTIONS_MYST_ME }, GType_MYST, @@ -355,6 +355,23 @@ static const MohawkGameDescription gameDescriptions[] = { }, // Riven: The Sequel to Myst + // Version 1.0.0 (5CD) - Russian, Fargus + { + { + "riven", + "", + AD_ENTRY1s("a_Data.MHK", "2a840ed74fe5dc3a388bced674d379d5", 12024358), + Common::RU_RUS, + Common::kPlatformWindows, + ADGF_UNSTABLE, + GUIO1(GUIO_NOASPECT) + }, + GType_RIVEN, + 0, + 0, + }, + + // Riven: The Sequel to Myst // Version 1.1 (5CD) - Russian, Fargus { { @@ -1878,6 +1895,23 @@ static const MohawkGameDescription gameDescriptions[] = { "Living Books Player" }, + // From Matthew Winder in bug#6557 + // v1.0E, English, Windows + { + { + "arthurbday", + "", + AD_ENTRY1s("AB16B.LB", "c169be346de7b0bbfcd18761fc0a3e49", 3093), + Common::EN_ANY, + Common::kPlatformWindows, + ADGF_NO_FLAGS, + GUIO1(GUIO_NOASPECT) + }, + GType_LIVINGBOOKSV2, + 0, + 0, + }, + // From Torsten in bug#3422652 { { @@ -2100,6 +2134,22 @@ static const MohawkGameDescription gameDescriptions[] = { 0 }, + // From Matthew Winder in bug#6557 + { + { + "lilmonster", + "", + AD_ENTRY1s("lmasf.lb", "fcb665df1713d0411a41515efb20bebc", 4136), + Common::EN_ANY, + Common::kPlatformWindows, + ADGF_NO_FLAGS, + GUIO1(GUIO_NOASPECT) + }, + GType_LIVINGBOOKSV2, + 0, + 0 + }, + // From afholman in bug#3309308 { { @@ -2704,7 +2754,7 @@ static const MohawkGameDescription fallbackDescs[] = { AD_ENTRY1(0, 0), Common::UNK_LANG, Common::kPlatformWindows, - ADGF_UNSTABLE, + ADGF_TESTING, GUI_OPTIONS_MYST }, GType_MYST, @@ -2719,7 +2769,7 @@ static const MohawkGameDescription fallbackDescs[] = { AD_ENTRY1(0, 0), Common::UNK_LANG, Common::kPlatformWindows, - ADGF_UNSTABLE, + ADGF_TESTING, GUI_OPTIONS_MYST_MAKING_OF }, GType_MAKINGOF, @@ -2734,7 +2784,7 @@ static const MohawkGameDescription fallbackDescs[] = { AD_ENTRY1(0, 0), Common::UNK_LANG, Common::kPlatformWindows, - ADGF_UNSTABLE, + ADGF_TESTING, GUI_OPTIONS_MYST_ME }, GType_MYST, diff --git a/engines/mohawk/dialogs.h b/engines/mohawk/dialogs.h index bc25c72a43..59b3e01fb7 100644 --- a/engines/mohawk/dialogs.h +++ b/engines/mohawk/dialogs.h @@ -29,11 +29,13 @@ #include "common/str.h" #include "gui/dialog.h" #include "gui/options.h" -#include "gui/widget.h" -#include "gui/widgets/list.h" namespace GUI { class SaveLoadChooser; +class ButtonWidget; +class CheckboxWidget; +class CommandSender; +class StaticTextWidget; } namespace Mohawk { diff --git a/engines/mohawk/myst.cpp b/engines/mohawk/myst.cpp index c16fab9131..633b67f7e9 100644 --- a/engines/mohawk/myst.cpp +++ b/engines/mohawk/myst.cpp @@ -231,11 +231,9 @@ Common::Error MohawkEngine_Myst::run() { // Load game from launcher/command line if requested if (ConfMan.hasKey("save_slot") && hasGameSaveSupport()) { - uint32 gameToLoad = ConfMan.getInt("save_slot"); - Common::StringArray savedGamesList = MystGameState::generateSaveGameList(); - if (gameToLoad > savedGamesList.size()) - error ("Could not find saved game"); - _gameState->load(savedGamesList[gameToLoad]); + int saveSlot = ConfMan.getInt("save_slot"); + if (!_gameState->load(saveSlot)) + error("Failed to load save game from slot %i", saveSlot); } else { // Start us on the first stack. if (getGameType() == GType_MAKINGOF) @@ -606,7 +604,8 @@ void MohawkEngine_Myst::changeToCard(uint16 card, TransitionType transition) { _gfx->runTransition(transition, Common::Rect(544, 333), 10, 0); } else { _gfx->copyBackBufferToScreen(Common::Rect(544, 333)); - _needsUpdate = true; + _system->updateScreen(); + _needsUpdate = false; } } @@ -1083,19 +1082,14 @@ void MohawkEngine_Myst::loadResources() { } Common::Error MohawkEngine_Myst::loadGameState(int slot) { - if (_gameState->load(MystGameState::generateSaveGameList()[slot])) + if (_gameState->load(slot)) return Common::kNoError; return Common::kUnknownError; } Common::Error MohawkEngine_Myst::saveGameState(int slot, const Common::String &desc) { - Common::StringArray saveList = MystGameState::generateSaveGameList(); - - if ((uint)slot < saveList.size()) - MystGameState::deleteSave(saveList[slot]); - - return _gameState->save(desc) ? Common::kNoError : Common::kUnknownError; + return _gameState->save(slot, desc) ? Common::kNoError : Common::kUnknownError; } bool MohawkEngine_Myst::hasGameSaveSupport() const { diff --git a/engines/mohawk/myst_scripts.cpp b/engines/mohawk/myst_scripts.cpp index 04e7c5a9b7..596180ddb2 100644 --- a/engines/mohawk/myst_scripts.cpp +++ b/engines/mohawk/myst_scripts.cpp @@ -31,7 +31,6 @@ #include "common/system.h" #include "common/memstream.h" #include "common/textconsole.h" -#include "gui/message.h" namespace Mohawk { @@ -685,9 +684,14 @@ void MystScriptParser::o_changeBackgroundSound(uint16 op, uint16 var, uint16 arg // Used on Channelwood Card 3225 with argc = 8 i.e. Conditional Sound List debugC(kDebugScript, "Opcode %d: Process Sound Block", op); - Common::MemoryReadStream stream = Common::MemoryReadStream((const byte *) argv, argc * sizeof(uint16)); + Common::MemoryWriteStreamDynamic writeStream = Common::MemoryWriteStreamDynamic(DisposeAfterUse::YES); + for (uint i = 0; i < argc; i++) { + writeStream.writeUint16LE(argv[i]); + } + + Common::MemoryReadStream readStream = Common::MemoryReadStream(writeStream.getData(), writeStream.size()); - MystSoundBlock soundBlock = _vm->readSoundBlock(&stream); + MystSoundBlock soundBlock = _vm->readSoundBlock(&readStream); _vm->applySoundBlock(soundBlock); } diff --git a/engines/mohawk/myst_stacks/credits.cpp b/engines/mohawk/myst_stacks/credits.cpp index b4a2076528..c382263f7c 100644 --- a/engines/mohawk/myst_stacks/credits.cpp +++ b/engines/mohawk/myst_stacks/credits.cpp @@ -28,7 +28,6 @@ #include "mohawk/myst_stacks/credits.h" #include "common/system.h" -#include "gui/message.h" namespace Mohawk { namespace MystStacks { diff --git a/engines/mohawk/myst_stacks/intro.cpp b/engines/mohawk/myst_stacks/intro.cpp index 1d733d8100..f448108199 100644 --- a/engines/mohawk/myst_stacks/intro.cpp +++ b/engines/mohawk/myst_stacks/intro.cpp @@ -28,8 +28,6 @@ #include "mohawk/video.h" #include "mohawk/myst_stacks/intro.h" -#include "gui/message.h" - namespace Mohawk { namespace MystStacks { diff --git a/engines/mohawk/myst_stacks/makingof.cpp b/engines/mohawk/myst_stacks/makingof.cpp index 1059fd0c5e..a0a1f359ba 100644 --- a/engines/mohawk/myst_stacks/makingof.cpp +++ b/engines/mohawk/myst_stacks/makingof.cpp @@ -27,8 +27,6 @@ #include "mohawk/video.h" #include "mohawk/myst_stacks/makingof.h" -#include "gui/message.h" - namespace Mohawk { namespace MystStacks { diff --git a/engines/mohawk/myst_stacks/myst.cpp b/engines/mohawk/myst_stacks/myst.cpp index 9d23d2fb10..bd50c4feb3 100644 --- a/engines/mohawk/myst_stacks/myst.cpp +++ b/engines/mohawk/myst_stacks/myst.cpp @@ -33,8 +33,6 @@ #include "common/system.h" #include "common/textconsole.h" -#include "gui/message.h" - namespace Mohawk { namespace MystStacks { @@ -3089,6 +3087,8 @@ void Myst::clockReset() { } void Myst::clockResetWeight() { + _vm->_sound->replaceSoundMyst(9113); + _clockWeightVideo = _vm->_video->playMovie(_vm->wrapMovieFilename("cl1wlfch", kMystStack)); if (!_clockWeightVideo) error("Failed to open cl1wlfch movie"); diff --git a/engines/mohawk/myst_stacks/selenitic.cpp b/engines/mohawk/myst_stacks/selenitic.cpp index 5402e5a581..454435cf92 100644 --- a/engines/mohawk/myst_stacks/selenitic.cpp +++ b/engines/mohawk/myst_stacks/selenitic.cpp @@ -31,7 +31,6 @@ #include "common/system.h" #include "common/textconsole.h" -#include "gui/message.h" namespace Mohawk { namespace MystStacks { diff --git a/engines/mohawk/myst_stacks/slides.cpp b/engines/mohawk/myst_stacks/slides.cpp index a1413f0d71..0560608b24 100644 --- a/engines/mohawk/myst_stacks/slides.cpp +++ b/engines/mohawk/myst_stacks/slides.cpp @@ -29,7 +29,6 @@ #include "mohawk/myst_stacks/slides.h" #include "common/system.h" -#include "gui/message.h" namespace Mohawk { namespace MystStacks { diff --git a/engines/mohawk/myst_state.cpp b/engines/mohawk/myst_state.cpp index 06cd69b23c..4324d6bde5 100644 --- a/engines/mohawk/myst_state.cpp +++ b/engines/mohawk/myst_state.cpp @@ -106,16 +106,12 @@ MystGameState::MystGameState(MohawkEngine_Myst *vm, Common::SaveFileManager *sav MystGameState::~MystGameState() { } -Common::StringArray MystGameState::generateSaveGameList() { - return g_system->getSavefileManager()->listSavefiles("*.mys"); -} - -bool MystGameState::load(const Common::String &filename) { - if (!loadState(filename)) { +bool MystGameState::load(int slot) { + if (!loadState(slot)) { return false; } - loadMetadata(filename); + loadMetadata(slot); // Set Channelwood elevator state to down, because we start on the lower level _channelwood.elevatorState = 0; @@ -136,7 +132,8 @@ bool MystGameState::load(const Common::String &filename) { return true; } -bool MystGameState::loadState(const Common::String &filename) { +bool MystGameState::loadState(int slot) { + Common::String filename = buildSaveFilename(slot); Common::InSaveFile *loadFile = _saveFileMan->openForLoading(filename); if (!loadFile) { return false; @@ -160,9 +157,10 @@ bool MystGameState::loadState(const Common::String &filename) { return true; } -void MystGameState::loadMetadata(const Common::String &filename) { +void MystGameState::loadMetadata(int slot) { // Open the metadata file - Common::InSaveFile *metadataFile = openMetadataFile(filename); + Common::String filename = buildMetadataFilename(slot); + Common::InSaveFile *metadataFile = _vm->getSaveFileManager()->openForLoading(filename); if (!metadataFile) { return; } @@ -179,25 +177,19 @@ void MystGameState::loadMetadata(const Common::String &filename) { delete metadataFile; } -bool MystGameState::save(const Common::String &filename) { - // Make sure the description does not have an extension - Common::String desc = filename; - if (filename.hasSuffix(".mys") || filename.hasSuffix(".MYS")) { - desc = removeExtension(filename); - } - - if (!saveState(desc)) { +bool MystGameState::save(int slot, const Common::String &desc) { + if (!saveState(slot)) { return false; } updateMetadateForSaving(desc); - return saveMetadata(desc); + return saveMetadata(slot); } -bool MystGameState::saveState(const Common::String &desc) { +bool MystGameState::saveState(int slot) { // Make sure we have the right extension - Common::String filename = desc + ".mys"; + Common::String filename = buildSaveFilename(slot); Common::OutSaveFile *saveFile = _saveFileMan->openForSaving(filename); if (!saveFile) { return false; @@ -213,6 +205,14 @@ bool MystGameState::saveState(const Common::String &desc) { return true; } +Common::String MystGameState::buildSaveFilename(int slot) { + return Common::String::format("myst-%03d.mys", slot); +} + +Common::String MystGameState::buildMetadataFilename(int slot) { + return Common::String::format("myst-%03d.mym", slot); +} + void MystGameState::updateMetadateForSaving(const Common::String &desc) { // Update save creation info TimeDate t; @@ -226,10 +226,10 @@ void MystGameState::updateMetadateForSaving(const Common::String &desc) { _metadata.totalPlayTime = _vm->getTotalPlayTime(); } -bool MystGameState::saveMetadata(const Common::String &desc) { +bool MystGameState::saveMetadata(int slot) { // Write the metadata to a separate file so that the save files // are still compatible with the original engine - Common::String metadataFilename = desc + ".mym"; + Common::String metadataFilename = buildMetadataFilename(slot); Common::OutSaveFile *metadataFile = _saveFileMan->openForSaving(metadataFilename); if (!metadataFile) { return false; @@ -248,14 +248,12 @@ bool MystGameState::saveMetadata(const Common::String &desc) { return true; } -SaveStateDescriptor MystGameState::querySaveMetaInfos(const Common::String filename) { - SaveStateDescriptor desc; - desc.setDescription(filename); - +SaveStateDescriptor MystGameState::querySaveMetaInfos(int slot) { // Open the metadata file - Common::InSaveFile *metadataFile = openMetadataFile(filename); + Common::String filename = buildMetadataFilename(slot); + Common::InSaveFile *metadataFile = g_system->getSavefileManager()->openForLoading(filename); if (!metadataFile) { - return desc; + return SaveStateDescriptor(); } Common::Serializer m(metadataFile, nullptr); @@ -264,10 +262,11 @@ SaveStateDescriptor MystGameState::querySaveMetaInfos(const Common::String filen Mohawk::MystSaveMetadata metadata; if (!metadata.sync(m)) { delete metadataFile; - return desc; + return SaveStateDescriptor(); } // Set the save description + SaveStateDescriptor desc; desc.setDescription(metadata.saveDescription); desc.setSaveDate(metadata.saveYear, metadata.saveMonth, metadata.saveDay); desc.setSaveTime(metadata.saveHour, metadata.saveMinute); @@ -279,20 +278,26 @@ SaveStateDescriptor MystGameState::querySaveMetaInfos(const Common::String filen return desc; } -Common::InSaveFile *MystGameState::openMetadataFile(const Common::String &filename) { - // Remove the extension - Common::String baseName = removeExtension(filename); - +Common::String MystGameState::querySaveDescription(int slot) { // Open the metadata file - return g_system->getSavefileManager()->openForLoading(baseName + ".mym"); -} + Common::String filename = buildMetadataFilename(slot); + Common::InSaveFile *metadataFile = g_system->getSavefileManager()->openForLoading(filename); + if (!metadataFile) { + return ""; + } + + Common::Serializer m(metadataFile, nullptr); -Common::String MystGameState::removeExtension(const Common::String &filename) { - Common::String baseName = filename; - for (uint i = 0; i < 4; i++) { - baseName.deleteLastChar(); + // Read the metadata file + Mohawk::MystSaveMetadata metadata; + if (!metadata.sync(m)) { + delete metadataFile; + return ""; } - return baseName; + + delete metadataFile; + + return metadata.saveDescription; } void MystGameState::syncGameState(Common::Serializer &s, bool isME) { @@ -471,12 +476,14 @@ void MystGameState::syncGameState(Common::Serializer &s, bool isME) { warning("Unexpected File Position 0x%03X At End of Save/Load", s.bytesSynced()); } -void MystGameState::deleteSave(const Common::String &saveName) { - debugC(kDebugSaveLoad, "Deleting save file \'%s\'", saveName.c_str()); - Common::String basename = removeExtension(saveName); +void MystGameState::deleteSave(int slot) { + Common::String filename = buildSaveFilename(slot); + Common::String metadataFilename = buildMetadataFilename(slot); + + debugC(kDebugSaveLoad, "Deleting save file \'%s\'", filename.c_str()); - g_system->getSavefileManager()->removeSavefile(saveName); - g_system->getSavefileManager()->removeSavefile(basename + ".mym"); + g_system->getSavefileManager()->removeSavefile(filename); + g_system->getSavefileManager()->removeSavefile(metadataFilename); } void MystGameState::addZipDest(uint16 stack, uint16 view) { diff --git a/engines/mohawk/myst_state.h b/engines/mohawk/myst_state.h index 50359a5b52..7d5f3f7102 100644 --- a/engines/mohawk/myst_state.h +++ b/engines/mohawk/myst_state.h @@ -58,12 +58,12 @@ public: MystGameState(MohawkEngine_Myst*, Common::SaveFileManager*); ~MystGameState(); - static Common::StringArray generateSaveGameList(); - static SaveStateDescriptor querySaveMetaInfos(const Common::String filename); + static SaveStateDescriptor querySaveMetaInfos(int slot); + static Common::String querySaveDescription(int slot); - bool load(const Common::String &filename); - bool save(const Common::String &filename); - static void deleteSave(const Common::String &saveName); + bool load(int slot); + bool save(int slot, const Common::String &desc); + static void deleteSave(int slot); void addZipDest(uint16 stack, uint16 view); bool isReachableZipDest(uint16 stack, uint16 view); @@ -292,13 +292,13 @@ public: private: void syncGameState(Common::Serializer &s, bool isME); - static Common::InSaveFile *openMetadataFile(const Common::String &filename); - bool loadState(const Common::String &filename); - void loadMetadata(const Common::String &filename); - bool saveState(const Common::String &desc); + static Common::String buildSaveFilename(int slot); + static Common::String buildMetadataFilename(int slot); + bool loadState(int slot); + void loadMetadata(int slot); + bool saveState(int slot); void updateMetadateForSaving(const Common::String &desc); - bool saveMetadata(const Common::String &desc); - static Common::String removeExtension(const Common::String &filename); + bool saveMetadata(int slot); // The values in these regions are lists of VIEW resources // which correspond to visited zip destinations diff --git a/engines/mohawk/riven.cpp b/engines/mohawk/riven.cpp index 898f68c581..178139ab76 100644 --- a/engines/mohawk/riven.cpp +++ b/engines/mohawk/riven.cpp @@ -25,6 +25,7 @@ #include "common/keyboard.h" #include "common/translation.h" #include "common/system.h" +#include "gui/saveload.h" #include "mohawk/cursors.h" #include "mohawk/installer_archive.h" diff --git a/engines/mohawk/riven.h b/engines/mohawk/riven.h index 9c23d07c52..3ea50bb38d 100644 --- a/engines/mohawk/riven.h +++ b/engines/mohawk/riven.h @@ -27,8 +27,6 @@ #include "mohawk/mohawk.h" #include "mohawk/riven_scripts.h" -#include "gui/saveload.h" - #include "common/hashmap.h" #include "common/hash-str.h" #include "common/random.h" diff --git a/engines/mohawk/sound.cpp b/engines/mohawk/sound.cpp index a2c08d4a92..38cb0b3608 100644 --- a/engines/mohawk/sound.cpp +++ b/engines/mohawk/sound.cpp @@ -23,12 +23,12 @@ #include "common/debug.h" #include "common/events.h" #include "common/system.h" -#include "common/util.h" #include "common/textconsole.h" +#include "audio/mididrv.h" #include "audio/midiparser.h" -#include "audio/musicplugin.h" #include "audio/audiostream.h" +#include "audio/decoders/adpcm.h" #include "audio/decoders/mp3.h" #include "audio/decoders/raw.h" #include "audio/decoders/wave.h" diff --git a/engines/mohawk/sound.h b/engines/mohawk/sound.h index c62e6e9874..f09706e155 100644 --- a/engines/mohawk/sound.h +++ b/engines/mohawk/sound.h @@ -26,9 +26,7 @@ #include "common/scummsys.h" #include "common/str.h" -#include "audio/audiostream.h" #include "audio/mixer.h" -#include "audio/decoders/adpcm.h" #include "mohawk/mohawk.h" #include "mohawk/resource.h" @@ -36,6 +34,10 @@ class MidiDriver; class MidiParser; +namespace Audio { +class RewindableAudioStream; +} + namespace Mohawk { #define MAX_CHANNELS 2 // Can there be more than 2? diff --git a/engines/mortevielle/mortevielle.cpp b/engines/mortevielle/mortevielle.cpp index 90d366ed7e..81b2edb57d 100644 --- a/engines/mortevielle/mortevielle.cpp +++ b/engines/mortevielle/mortevielle.cpp @@ -145,6 +145,7 @@ MortevielleEngine::MortevielleEngine(OSystem *system, const MortevielleGameDescr _endGame = false; _loseGame = false; _txxFileFl = false; + _is = 0; } MortevielleEngine::~MortevielleEngine() { diff --git a/engines/mortevielle/sound.cpp b/engines/mortevielle/sound.cpp index f02ccb69ea..77eba4cd6d 100644 --- a/engines/mortevielle/sound.cpp +++ b/engines/mortevielle/sound.cpp @@ -28,6 +28,7 @@ #include "mortevielle/mortevielle.h" #include "mortevielle/sound.h" +#include "audio/audiostream.h" #include "audio/decoders/raw.h" #include "common/scummsys.h" diff --git a/engines/mortevielle/sound.h b/engines/mortevielle/sound.h index d913684935..15b4667afa 100644 --- a/engines/mortevielle/sound.h +++ b/engines/mortevielle/sound.h @@ -28,11 +28,14 @@ #ifndef MORTEVIELLE_SOUND_H #define MORTEVIELLE_SOUND_H -#include "audio/audiostream.h" #include "audio/mixer.h" #include "common/mutex.h" #include "common/queue.h" +namespace Audio { +class QueuingAudioStream; +} + namespace Mortevielle { class MortevielleEngine; diff --git a/engines/neverhood/menumodule.cpp b/engines/neverhood/menumodule.cpp index 826f175d47..0f2a421d83 100644 --- a/engines/neverhood/menumodule.cpp +++ b/engines/neverhood/menumodule.cpp @@ -609,7 +609,8 @@ void TextEditWidget::onClick() { ++newCursorPos; _cursorPos = MIN((int)_entryString.size(), newCursorPos); } - _cursorSurface->setVisible(true); + if (!_readOnly) + _cursorSurface->setVisible(true); refresh(); } Widget::onClick(); @@ -1058,7 +1059,7 @@ static const NRect kSaveGameMenuTextEditRect = { 0, 0, 377, 17 }; static const NRect kSaveGameMenuMouseRect = { 50, 47, 427, 64 }; SaveGameMenu::SaveGameMenu(NeverhoodEngine *vm, Module *parentModule, SavegameList *savegameList) - : GameStateMenu(vm, parentModule, savegameList, kSaveGameMenuButtonFileHashes, kSaveGameMenuButtonCollisionBounds, + : GameStateMenu(vm, parentModule, savegameList, kSaveGameMenuButtonFileHashes, kSaveGameMenuButtonCollisionBounds, 0x30084E25, 0x2328121A, 0x84E21308, &kSaveGameMenuMouseRect, 0x1115A223, 60, 142, kSaveGameMenuListBoxRect, @@ -1068,9 +1069,11 @@ SaveGameMenu::SaveGameMenu(NeverhoodEngine *vm, Module *parentModule, SavegameLi } void SaveGameMenu::performAction() { - ((MenuModule*)_parentModule)->setSavegameInfo(_textEditWidget->getString(), - _listBox->getCurrIndex(), _textEditWidget->isModified()); - leaveScene(0); + if (!_textEditWidget->getString().empty()) { + ((MenuModule*)_parentModule)->setSavegameInfo(_textEditWidget->getString(), + _listBox->getCurrIndex(), _textEditWidget->isModified()); + leaveScene(0); + } } static const uint32 kLoadGameMenuButtonFileHashes[] = { @@ -1089,12 +1092,21 @@ static const NRect kLoadGameMenuButtonCollisionBounds[] = { static const NRect kLoadGameMenuListBoxRect = { 0, 0, 320, 272 }; static const NRect kLoadGameMenuTextEditRect = { 0, 0, 320, 17 }; + +#if 0 +// Unlike the original game, the text widget in our load dialog is read-only so +// don't change the mouse cursor to indicate that you can type the name of the +// game to load. +// +// Since we allow multiple saved games to have the same name, it's probably +// better this way. static const NRect kLoadGameMenuMouseRect = { 263, 48, 583, 65 }; +#endif LoadGameMenu::LoadGameMenu(NeverhoodEngine *vm, Module *parentModule, SavegameList *savegameList) : GameStateMenu(vm, parentModule, savegameList, kLoadGameMenuButtonFileHashes, kLoadGameMenuButtonCollisionBounds, 0x98620234, 0x201C2474, - 0x2023098E, &kLoadGameMenuMouseRect, + 0x2023098E, NULL /* &kLoadGameMenuMouseRect */, 0x04040409, 263, 142, kLoadGameMenuListBoxRect, 0x10924C03, 0, 263, 48, kLoadGameMenuTextEditRect, 0x0BC600A3, 0x0F960021) { @@ -1102,8 +1114,11 @@ LoadGameMenu::LoadGameMenu(NeverhoodEngine *vm, Module *parentModule, SavegameLi } void LoadGameMenu::performAction() { - ((MenuModule*)_parentModule)->setLoadgameInfo(_listBox->getCurrIndex()); - leaveScene(0); + // TODO: The original would display a message here if nothing was selected. + if (!_textEditWidget->getString().empty()) { + ((MenuModule*)_parentModule)->setLoadgameInfo(_listBox->getCurrIndex()); + leaveScene(0); + } } static const uint32 kDeleteGameMenuButtonFileHashes[] = { @@ -1134,8 +1149,11 @@ DeleteGameMenu::DeleteGameMenu(NeverhoodEngine *vm, Module *parentModule, Savega } void DeleteGameMenu::performAction() { - ((MenuModule*)_parentModule)->setDeletegameInfo(_listBox->getCurrIndex()); - leaveScene(0); + // TODO: The original would display a message here if no game was selected. + if (!_textEditWidget->getString().empty()) { + ((MenuModule*)_parentModule)->setDeletegameInfo(_listBox->getCurrIndex()); + leaveScene(0); + } } QueryOverwriteMenu::QueryOverwriteMenu(NeverhoodEngine *vm, Module *parentModule, const Common::String &description) diff --git a/engines/neverhood/neverhood.h b/engines/neverhood/neverhood.h index 0661bcba0e..9eac4ffc44 100644 --- a/engines/neverhood/neverhood.h +++ b/engines/neverhood/neverhood.h @@ -30,7 +30,6 @@ #include "common/savefile.h" #include "common/str-array.h" #include "common/system.h" -#include "audio/mixer.h" #include "engines/engine.h" #include "gui/debugger.h" #include "neverhood/console.h" diff --git a/engines/neverhood/sound.h b/engines/neverhood/sound.h index 512b0fef98..24947f0191 100644 --- a/engines/neverhood/sound.h +++ b/engines/neverhood/sound.h @@ -24,6 +24,7 @@ #define NEVERHOOD_SOUND_H #include "audio/audiostream.h" +#include "audio/mixer.h" #include "common/array.h" #include "graphics/surface.h" #include "neverhood/neverhood.h" diff --git a/engines/parallaction/objects.cpp b/engines/parallaction/objects.cpp index 50a5b38d8d..8f895f1532 100644 --- a/engines/parallaction/objects.cpp +++ b/engines/parallaction/objects.cpp @@ -163,7 +163,7 @@ int16 Program::findLocal(const char* name) { int16 Program::addLocal(const char *name, int16 value, int16 min, int16 max) { assert(_numLocals < NUM_LOCALS); - strcpy(_localNames[_numLocals], name); + Common::strlcpy(_localNames[_numLocals], name, 10); _locals[_numLocals].setRange(min, max); _locals[_numLocals].setValue(value); diff --git a/engines/parallaction/parallaction.cpp b/engines/parallaction/parallaction.cpp index 2b75e78582..bbe759dffe 100644 --- a/engines/parallaction/parallaction.cpp +++ b/engines/parallaction/parallaction.cpp @@ -60,6 +60,7 @@ Parallaction::Parallaction(OSystem *syst, const PARALLACTIONGameDescription *gam DebugMan.addDebugChannel(kDebugMenu, "menu", "Menu debug level"); DebugMan.addDebugChannel(kDebugInventory, "inventory", "Inventory debug level"); + _screenWidth = 0; _screenHeight = 0; _screenSize = 0; _gameType = 0; @@ -86,6 +87,7 @@ Parallaction::Parallaction(OSystem *syst, const PARALLACTIONGameDescription *gam _inventory = 0; _currentLocationIndex = 0; _numLocations = 0; + _language = 0; } Parallaction::~Parallaction() { @@ -208,7 +210,7 @@ void Parallaction::allocateLocationSlot(const char *name) { error("No more location slots available. Please report this immediately to ScummVM team"); if (_currentLocationIndex == -1) { - strcpy(_locationNames[_numLocations], name); + Common::strlcpy(_locationNames[_numLocations], name, 10); _currentLocationIndex = _numLocations; _numLocations++; diff --git a/engines/parallaction/parallaction_br.cpp b/engines/parallaction/parallaction_br.cpp index 1e1c0b0a3d..9f045cb397 100644 --- a/engines/parallaction/parallaction_br.cpp +++ b/engines/parallaction/parallaction_br.cpp @@ -320,7 +320,7 @@ void Parallaction_br::changeLocation() { freeLocation(false); // load new location - strcpy(_location._name, _newLocationName.c_str()); + Common::strlcpy(_location._name, _newLocationName.c_str(), 100); parseLocation(_location._name); if (_location._startPosition.x != -1000) { diff --git a/engines/parallaction/saveload.cpp b/engines/parallaction/saveload.cpp index 6d598d9557..eff088d5ee 100644 --- a/engines/parallaction/saveload.cpp +++ b/engines/parallaction/saveload.cpp @@ -25,10 +25,7 @@ #include "common/textconsole.h" #include "common/translation.h" -#include "gui/dialog.h" #include "gui/saveload.h" -#include "gui/widget.h" -#include "gui/widgets/list.h" #include "gui/message.h" #include "parallaction/parallaction.h" diff --git a/engines/pegasus/neighborhood/mars/mars.cpp b/engines/pegasus/neighborhood/mars/mars.cpp index df5a75541c..7c4a8a98ba 100644 --- a/engines/pegasus/neighborhood/mars/mars.cpp +++ b/engines/pegasus/neighborhood/mars/mars.cpp @@ -1950,7 +1950,7 @@ void Mars::pickedUpItem(Item *item) { } void Mars::dropItemIntoRoom(Item *item, Hotspot *dropSpot) { - if (dropSpot->getObjectID() == kAttackRobotHotSpotID) { + if (dropSpot && dropSpot->getObjectID() == kAttackRobotHotSpotID) { _attackingItem = (InventoryItem *)item; startExtraSequence(kMars48RobotDefends, kExtraCompletedFlag, kFilterNoInput); loadLoopSound2(""); diff --git a/engines/prince/prince.cpp b/engines/prince/prince.cpp index 55f12a6560..f1fd5a25d3 100644 --- a/engines/prince/prince.cpp +++ b/engines/prince/prince.cpp @@ -41,6 +41,7 @@ #include "engines/advancedDetector.h" #include "audio/audiostream.h" +#include "audio/decoders/wave.h" #include "prince/prince.h" #include "prince/font.h" @@ -1542,20 +1543,18 @@ void PrinceEngine::showAnim(Anim &anim) { // make_special_shadow if ((anim._flags & 0x80)) { - if (animSurface) { - DrawNode newDrawNode; - newDrawNode.posX = x; - newDrawNode.posY = y + animSurface->h - anim._shadowBack; - newDrawNode.posZ = Hero::kHeroShadowZ; - newDrawNode.width = 0; - newDrawNode.height = 0; - newDrawNode.scaleValue = _scaleValue; - newDrawNode.originalRoomSurface = nullptr; - newDrawNode.data = this; - newDrawNode.drawFunction = &Hero::showHeroShadow; - newDrawNode.s = animSurface; - _drawNodeList.push_back(newDrawNode); - } + DrawNode newDrawNode; + newDrawNode.posX = x; + newDrawNode.posY = y + animSurface->h - anim._shadowBack; + newDrawNode.posZ = Hero::kHeroShadowZ; + newDrawNode.width = 0; + newDrawNode.height = 0; + newDrawNode.scaleValue = _scaleValue; + newDrawNode.originalRoomSurface = nullptr; + newDrawNode.data = this; + newDrawNode.drawFunction = &Hero::showHeroShadow; + newDrawNode.s = animSurface; + _drawNodeList.push_back(newDrawNode); } //ShowFrameCodeShadow diff --git a/engines/prince/sound.cpp b/engines/prince/sound.cpp index 032297ee43..c9746842ef 100644 --- a/engines/prince/sound.cpp +++ b/engines/prince/sound.cpp @@ -20,15 +20,13 @@ * */ -#include "prince/prince.h" #include "prince/sound.h" #include "prince/musNum.h" -#include "common/config-manager.h" -#include "common/memstream.h" #include "common/archive.h" -#include "audio/decoders/raw.h" -#include "audio/audiostream.h" +#include "common/debug.h" +#include "audio/mididrv.h" +#include "audio/midiparser.h" namespace Prince { diff --git a/engines/prince/sound.h b/engines/prince/sound.h index cc44b0a110..4257a4a37b 100644 --- a/engines/prince/sound.h +++ b/engines/prince/sound.h @@ -23,13 +23,7 @@ #ifndef PRINCE_SOUND_H #define PRINCE_SOUND_H -#include "audio/audiostream.h" -#include "audio/decoders/wave.h" -#include "audio/fmopl.h" -#include "audio/mididrv.h" -#include "audio/midiparser.h" #include "audio/midiplayer.h" -#include "audio/mixer.h" #include "common/memstream.h" namespace Prince { diff --git a/engines/queen/detection.cpp b/engines/queen/detection.cpp index 81e0767836..aed8b7dcb1 100644 --- a/engines/queen/detection.cpp +++ b/engines/queen/detection.cpp @@ -105,6 +105,19 @@ static const QueenGameDescription gameDescriptions[] = { }, }, + // DOS Demo - English (from Bugreport #6946) + { + { + "queen", + "Demo Alt", + AD_ENTRY1s("queen.1", "2871fc6f8090f37fa1a0c556a1c97460", 3735447), + Common::EN_ANY, + Common::kPlatformDOS, + ADGF_DEMO, + GUIO1(GUIO_NOSPEECH) + }, + }, + // DOS Interview Demo - English { { @@ -131,20 +144,18 @@ static const QueenGameDescription gameDescriptions[] = { }, }, -#if 0 // Amiga Floppy - English { { "queen", "Floppy", - AD_ENTRY1s("queen.1", NULL, 351775), // TODO: Fill in correct MD5 + AD_ENTRY1s("queen.1", "9c209c2cbc1730e3138663c4fd29c2e8", 351775), Common::EN_ANY, Common::kPlatformAmiga, ADGF_NO_FLAGS, GUIO1(GUIO_NOSPEECH) }, }, -#endif // DOS Floppy - English { @@ -198,6 +209,19 @@ static const QueenGameDescription gameDescriptions[] = { }, }, + // DOS Floppy - Russian (From Bugreport #6946) + { + { + "queen", + "Floppy", + AD_ENTRY1s("queen.1", "f5e827645d3c887be3bdf4729d847756", 22677657), + Common::RU_RUS, + Common::kPlatformDOS, + ADGF_NO_FLAGS, + GUIO1(GUIO_NOSPEECH) + }, + }, + // DOS CD - French { { @@ -211,35 +235,31 @@ static const QueenGameDescription gameDescriptions[] = { }, }, -#if 0 // DOS Floppy - German { { "queen", "Floppy", - AD_ENTRY1s("queen.1", NULL, 22240013), // TODO: Fill in correct MD5 + AD_ENTRY1s("queen.1", "f5e827645d3c887be3bdf4729d847756", 22240013), Common::DE_DEU, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO1(GUIO_NOSPEECH) }, }, -#endif -#if 0 // DOS CD - German { { "queen", "Talkie", - AD_ENTRY1s("queen.1", NULL, 217648975), // TODO: Fill in correct MD5 + AD_ENTRY1s("queen.1", "551d595be8af890fc4cb8533c9c5f5f1", 217648975), Common::DE_DEU, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO1(GAMEOPTION_ALT_INTRO) }, }, -#endif #if 0 // DOS CD - Hebrew @@ -256,20 +276,18 @@ static const QueenGameDescription gameDescriptions[] = { }, #endif -#if 0 // DOS Floppy - Italian { { "queen", "Floppy", - AD_ENTRY1s("queen.1", NULL, 22461366), // TODO: Fill in correct MD5 + AD_ENTRY1s("queen.1", "f5e827645d3c887be3bdf4729d847756", 22461366), Common::IT_ITA, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO1(GUIO_NOSPEECH) }, }, -#endif // DOS CD - Italian { @@ -284,20 +302,18 @@ static const QueenGameDescription gameDescriptions[] = { }, }, -#if 0 // DOS CD - Spanish { { "queen", "Talkie", - AD_ENTRY1s("queen.1", NULL, 190730602), // TODO: Fill in correct MD5 + AD_ENTRY1s("queen.1", "b6302bccf70463de3d5faf0f0628f742", 190730602), Common::ES_ESP, Common::kPlatformDOS, ADGF_NO_FLAGS, GUIO1(GAMEOPTION_ALT_INTRO) }, }, -#endif // DOS CD - English (Compressed Freeware Release v1.0) { @@ -377,6 +393,19 @@ static const QueenGameDescription gameDescriptions[] = { }, }, + // DOS CD - Hungarian (Compressed Freeware Release v1.02) + { + { + "queen", + "Talkie", + AD_ENTRY1s("queen.1c", "21fd690b372f8a6289f6f33bc986276c", 51329031), + Common::HU_HUN, + Common::kPlatformDOS, + ADGF_NO_FLAGS, + GUIO1(GAMEOPTION_ALT_INTRO) + }, + }, + // TODO: Freeware Release for Spanish DOS CD is missing. #if 0 // DOS CD - Spanish (Compressed Freeware Release v1.0) diff --git a/engines/queen/sound.cpp b/engines/queen/sound.cpp index 63e24454c1..d715d3737e 100644 --- a/engines/queen/sound.cpp +++ b/engines/queen/sound.cpp @@ -35,10 +35,10 @@ #include "audio/audiostream.h" #include "audio/decoders/flac.h" -#include "audio/mididrv.h" #include "audio/decoders/mp3.h" #include "audio/decoders/raw.h" #include "audio/decoders/vorbis.h" +#include "audio/mods/rjp1.h" #define SB_HEADER_SIZE_V104 110 #define SB_HEADER_SIZE_V110 122 diff --git a/engines/queen/sound.h b/engines/queen/sound.h index d06d93b9e1..f5d3970b80 100644 --- a/engines/queen/sound.h +++ b/engines/queen/sound.h @@ -23,10 +23,11 @@ #ifndef QUEEN_SOUND_H #define QUEEN_SOUND_H -#include "common/util.h" #include "audio/mixer.h" -#include "audio/mods/rjp1.h" -#include "queen/defs.h" + +namespace Audio { +class AudioStream; +} namespace Common { class File; diff --git a/engines/saga/detection_tables.h b/engines/saga/detection_tables.h index 8b3a0e5207..71225ceb2f 100644 --- a/engines/saga/detection_tables.h +++ b/engines/saga/detection_tables.h @@ -733,6 +733,36 @@ static const SAGAGameDescription gameDescriptions[] = { GUIO1(GUIO_NOASPECT) }, GID_IHNM, + GF_IHNM_COLOR_FIX, + IHNM_DEFAULT_SCENE, + &IHNM_Resources, + ARRAYSIZE(IHNMCD_GameFonts), + IHNMCD_GameFonts, + NULL, + }, + + // I Have No Mouth And I Must Scream - German fan CD translation + // English CD version with German text patch (with Nimdok) + // (English speech - German text) + { + { + "ihnm", + "fan-made", + { + {"musicfm.res", GAME_MUSICFILE_FM, "0439083e3dfdc51b486071d45872ae52", 302676}, + {"musicgm.res", GAME_MUSICFILE_GM, "80f875a1fb384160d1f4b27166eef583", 314020}, + {"scream.res", GAME_RESOURCEFILE, "46bbdc65d164ba7e89836a0935eec8e6", 79219797}, + {"scripts.res", GAME_SCRIPTFILE, "be38bbc5a26be809dbf39f13befebd01", 523800}, + {"patch.re_", GAME_PATCHFILE | GAME_RESOURCEFILE, "58b79e61594779513c7f2d35509fa89e", 5038599}, + {"sfx.res", GAME_SOUNDFILE, "1c610d543f32ec8b525e3f652536f269", 22561056}, + { NULL, 0, NULL, 0} + }, + Common::DE_DEU, + Common::kPlatformDOS, + ADGF_NO_FLAGS, + GUIO1(GUIO_NOASPECT) + }, + GID_IHNM, 0, IHNM_DEFAULT_SCENE, &IHNM_Resources, @@ -761,7 +791,7 @@ static const SAGAGameDescription gameDescriptions[] = { GUIO1(GUIO_NOASPECT) }, GID_IHNM, - 0, + GF_IHNM_COLOR_FIX, IHNM_DEFAULT_SCENE, &IHNM_Resources, ARRAYSIZE(IHNMCD_GameFonts), @@ -790,7 +820,7 @@ static const SAGAGameDescription gameDescriptions[] = { GUIO1(GUIO_NOASPECT) }, GID_IHNM, - 0, + GF_IHNM_COLOR_FIX, IHNM_DEFAULT_SCENE, &IHNM_Resources, ARRAYSIZE(IHNMCD_GameFonts), diff --git a/engines/saga/displayinfo.h b/engines/saga/displayinfo.h index a0cdf5733b..67448936ce 100644 --- a/engines/saga/displayinfo.h +++ b/engines/saga/displayinfo.h @@ -177,11 +177,11 @@ static PanelButton ITE_OptionPanelButtons[] = { {kPanelButtonOption, 241,98, 57,17, kTextSave,'s',0, 0,0,0}, //save {kPanelButtonOptionSaveFiles, 166,20, 112,74, 0,'-',0, 0,0,0}, //savefiles - {kPanelButtonOptionText,106,4, 0,0, kTextGameOptions,'-',0, 0,0,0}, // text: game options - {kPanelButtonOptionText,11,22, 0,0, kTextReadingSpeed,'-',0, 0,0,0}, // text: read speed - {kPanelButtonOptionText,28,22, 0,0, kTextShowDialog,'-',0, 0,0,0}, // text: read speed - {kPanelButtonOptionText,73,41, 0,0, kTextMusic,'-',0, 0,0,0}, // text: music - {kPanelButtonOptionText,69,60, 0,0, kTextSound,'-',0, 0,0,0}, // text: noise + {kPanelButtonOptionText,-1,4, 0,0, kTextGameOptions,'-',0, 0,0,0}, // text: game options + {kPanelButtonOptionText,5,18, 109,17, kTextReadingSpeed,'-',0, 0,0,0}, // text: read speed + {kPanelButtonOptionText,5,18, 109,17, kTextShowDialog,'-',0, 0,0,0}, // text: read speed + {kPanelButtonOptionText,5,37, 109,17, kTextMusic,'-',0, 0,0,0}, // text: music + {kPanelButtonOptionText,5,56, 109,17, kTextSound,'-',0, 0,0,0}, // text: noise }; static PanelButton ITE_QuitPanelButtons[] = { @@ -326,10 +326,10 @@ static PanelButton IHNM_ConversePanelButtons[] = { static PanelButton IHNM_OptionPanelButtons[] = { {kPanelButtonOptionSlider, 421,16, 16,138, 0,'-',0, 0,0,0}, //slider-scroller - {kPanelButtonOptionText,28,36, 0,0, kTextReadingSpeed,'-',0, 0,0,0}, // text: read speed - {kPanelButtonOptionText,60,61, 0,0, kTextMusic,'-',0, 0,0,0}, // text: music - {kPanelButtonOptionText,60,86, 0,0, kTextSound,'-',0, 0,0,0}, // text: noise - {kPanelButtonOptionText,56,111, 0,0, kTextVoices,'-',0, 0,0,0}, // text: voices + {kPanelButtonOptionText,11,30, 139,21, kTextReadingSpeed,'-',0, 0,0,0}, // text: read speed + {kPanelButtonOptionText,11,55, 139,21, kTextMusic,'-',0, 0,0,0}, // text: music + {kPanelButtonOptionText,11,80, 139,21, kTextSound,'-',0, 0,0,0}, // text: noise + {kPanelButtonOptionText,11,105, 139,21, kTextVoices,'-',0, 0,0,0}, // text: voices {kPanelButtonOption, 154,30, 79,23, kTextReadingSpeed,'r',0, 0,0,0}, //read speed {kPanelButtonOption, 154,55, 79,23, kTextMusic,'m',0, 0,0,0}, //music {kPanelButtonOption, 154,80, 79,23, kTextSound,'n',0, 0,0,0}, //sound-noise diff --git a/engines/saga/interface.cpp b/engines/saga/interface.cpp index ad940aaf8b..cb09d53762 100644 --- a/engines/saga/interface.cpp +++ b/engines/saga/interface.cpp @@ -867,7 +867,7 @@ void Interface::calcOptionSaveSlider() { void Interface::drawPanelText(InterfacePanel *panel, PanelButton *panelButton) { const char *text; - int textWidth; + int textWidth, textHeight; Rect rect; Point textPoint; KnownColor textShadowKnownColor = kKnownColorVerbTextShadow; @@ -900,12 +900,26 @@ void Interface::drawPanelText(InterfacePanel *panel, PanelButton *panelButton) { } panel->calcPanelButtonRect(panelButton, rect); + if (_vm->getGameId() == GID_ITE) { + textWidth = _vm->_font->getStringWidth(kKnownFontMedium, text, 0, kFontNormal); + textHeight = _vm->_font->getHeight(kKnownFontMedium); + } else { + textWidth = _vm->_font->getStringWidth(kKnownFontVerb, text, 0, kFontNormal); + textHeight = _vm->_font->getHeight(kKnownFontVerb); + } if (panelButton->xOffset < 0) { - if (_vm->getGameId() == GID_ITE) - textWidth = _vm->_font->getStringWidth(kKnownFontMedium, text, 0, kFontNormal); - else - textWidth = _vm->_font->getStringWidth(kKnownFontVerb, text, 0, kFontNormal); + // Special case: Centered to dialog. This is used for things like the + // title of a dialog. rect.left += 2 + (panel->imageWidth - 1 - textWidth) / 2; + } else { + // The standard case is used for the things that look a bit like buttons + // but are not clickable, e.g. texts like "Music", "Sound", etc. + if (_vm->getGameId() == GID_ITE) { + rect.left = rect.right - textWidth - 3; + } else { + rect.left = (rect.right + rect.left - textWidth) / 2; + } + rect.top = (rect.top + rect.bottom - textHeight) / 2; } textPoint.x = rect.left; @@ -1865,7 +1879,7 @@ void Interface::drawStatusBar() { // Fixes bug #1848016 - "IHNM: Wrong Subtitles Color (Spanish)". This // also applies to the German and French versions (bug #7064 - "IHNM: // text mistake in german version"). - int offset = (_vm->getLanguage() == Common::ES_ESP || _vm->getLanguage() == Common::DE_DEU || _vm->getLanguage() == Common::FR_FRA) ? 1 : 0; + int offset = (_vm->getFeatures() & GF_IHNM_COLOR_FIX) ? 1 : 0; // Disable the status text in IHNM when the chapter is 8 if (_vm->getGameId() == GID_IHNM && _vm->_scene->currentChapterNumber() == 8) diff --git a/engines/saga/isomap.cpp b/engines/saga/isomap.cpp index 77680178c1..e50378b9c0 100644 --- a/engines/saga/isomap.cpp +++ b/engines/saga/isomap.cpp @@ -97,6 +97,23 @@ IsoMap::IsoMap(SagaEngine *vm) : _vm(vm) { _viewScroll.x = (128 - 8) * 16; _viewScroll.y = (128 - 8) * 16 - 64; _viewDiff = 1; + _platformHeight = 0; + _queueCount = _readCount = 0; + + for (int i = 0; i < SAGA_DRAGON_SEARCH_DIAMETER; i++) + for (int j = 0; j < SAGA_DRAGON_SEARCH_DIAMETER; j++) + _dragonSearchArray.cell[i][j].visited = _dragonSearchArray.cell[i][j].direction = 0; + + for (int i = 0; i < SAGA_SEARCH_DIAMETER; i++) + for (int j = 0; j < SAGA_SEARCH_DIAMETER; j++) + _searchArray.cell[i][j].visited = _searchArray.cell[i][j].direction = 0; + + for (int i = 0; i < SAGA_SEARCH_QUEUE_SIZE; i++) { + memset(&_dragonSearchArray.queue[i], 0, sizeof(DragonTilePoint)); + memset(&_searchArray.queue[i], 0, sizeof(TilePoint)); + } + + memset(&_tileMap, 0, sizeof(TileMapData)); } void IsoMap::loadImages(const ByteArray &resourceData) { diff --git a/engines/saga/music.cpp b/engines/saga/music.cpp index cd48ebaa4d..0bc1e8a2a0 100644 --- a/engines/saga/music.cpp +++ b/engines/saga/music.cpp @@ -32,7 +32,10 @@ #include "audio/midiparser.h" #include "audio/midiparser_qt.h" #include "audio/miles.h" +#include "audio/decoders/flac.h" +#include "audio/decoders/mp3.h" #include "audio/decoders/raw.h" +#include "audio/decoders/vorbis.h" #include "common/config-manager.h" #include "common/file.h" #include "common/substream.h" diff --git a/engines/saga/music.h b/engines/saga/music.h index 2e7cc4c5ec..0213f4108a 100644 --- a/engines/saga/music.h +++ b/engines/saga/music.h @@ -25,13 +25,10 @@ #ifndef SAGA_MUSIC_H #define SAGA_MUSIC_H +#include "audio/mididrv.h" #include "audio/midiplayer.h" #include "audio/midiparser.h" #include "audio/mixer.h" -#include "audio/decoders/mp3.h" -#include "audio/decoders/vorbis.h" -#include "audio/decoders/flac.h" -#include "common/mutex.h" namespace Saga { diff --git a/engines/saga/puzzle.cpp b/engines/saga/puzzle.cpp index 099bf79e6b..2c9a02beec 100644 --- a/engines/saga/puzzle.cpp +++ b/engines/saga/puzzle.cpp @@ -86,6 +86,11 @@ Puzzle::Puzzle(SagaEngine *vm) : _vm(vm), _solved(false), _active(false) { _hintBox.setWidth(240); _hintBox.setHeight(30); + _hintNextRqState = kRQNoHint; + _hintGiver = 0; + _hintSpeaker = 0; + _slidePointX = _slidePointY = 0; + initPieceInfo( 0, 268, 18, 0, 0, 0 + PUZZLE_X_OFFSET, 0 + PUZZLE_Y_OFFSET, 0, 3, Point(0, 1), Point(0, 62), Point(15, 31), Point(0, 0), Point(0, 0), Point(0,0)); initPieceInfo( 1, 270, 52, 0, 0, 0 + PUZZLE_X_OFFSET, 32 + PUZZLE_Y_OFFSET, 0, 4, diff --git a/engines/saga/saga.cpp b/engines/saga/saga.cpp index 77a21e7f93..649888e7ea 100644 --- a/engines/saga/saga.cpp +++ b/engines/saga/saga.cpp @@ -582,7 +582,7 @@ ColorId SagaEngine::KnownColor2ColorId(KnownColor knownColor) { // Fixes bug #1848016 - "IHNM: Wrong Subtitles Color (Spanish)". This // also applies to the German and French versions (bug #7064 - "IHNM: // text mistake in german version"). - int offset = (getLanguage() == Common::ES_ESP || getLanguage() == Common::DE_DEU || getLanguage() == Common::FR_FRA) ? 1 : 0; + int offset = (getFeatures() & GF_IHNM_COLOR_FIX) ? 1 : 0; switch (knownColor) { case(kKnownColorTransparent): diff --git a/engines/saga/saga.h b/engines/saga/saga.h index 9c7b2f5295..06cb411e5a 100644 --- a/engines/saga/saga.h +++ b/engines/saga/saga.h @@ -139,7 +139,8 @@ enum GameFeatures { GF_ITE_FLOPPY = 1 << 0, GF_ITE_DOS_DEMO = 1 << 1, GF_EXTRA_ITE_CREDITS = 1 << 2, - GF_8BIT_UNSIGNED_PCM = 1 << 3 + GF_8BIT_UNSIGNED_PCM = 1 << 3, + GF_IHNM_COLOR_FIX = 1 << 4 }; enum VerbTypeIds { diff --git a/engines/saga/saveload.cpp b/engines/saga/saveload.cpp index e659e09ce8..2d798bb0d6 100644 --- a/engines/saga/saveload.cpp +++ b/engines/saga/saveload.cpp @@ -56,7 +56,7 @@ SaveFileData *SagaEngine::getSaveFile(uint idx) { return &_saveFiles[_saveFilesCount - idx - 1]; } else { if (!emptySlot.name[0]) - strcpy(emptySlot.name, getTextString(kTextNewSave)); + Common::strlcpy(emptySlot.name, getTextString(kTextNewSave), SAVE_TITLE_SIZE); return (idx == 0) ? &emptySlot : &_saveFiles[_saveFilesCount - idx]; } diff --git a/engines/saga/shorten.cpp b/engines/saga/shorten.cpp index 1e1c397212..db67d510bc 100644 --- a/engines/saga/shorten.cpp +++ b/engines/saga/shorten.cpp @@ -21,7 +21,9 @@ */ #include "common/scummsys.h" +#include "common/stream.h" #include "common/textconsole.h" +#include "audio/audiostream.h" #include "saga/shorten.h" diff --git a/engines/saga/shorten.h b/engines/saga/shorten.h index 556abaf311..4d4ec328c6 100644 --- a/engines/saga/shorten.h +++ b/engines/saga/shorten.h @@ -30,9 +30,14 @@ #define SOUND_SHORTEN_H #include "common/scummsys.h" -#include "common/stream.h" -#include "audio/audiostream.h" +namespace Audio { +class AudioStream; +} + +namespace Common { +class ReadStream; +} namespace Saga { diff --git a/engines/saga/sound.cpp b/engines/saga/sound.cpp index 0eb6f8a82a..f4e31542fe 100644 --- a/engines/saga/sound.cpp +++ b/engines/saga/sound.cpp @@ -27,8 +27,6 @@ #include "audio/audiostream.h" #include "audio/mixer.h" -#include "audio/decoders/adpcm.h" -#include "audio/decoders/raw.h" namespace Saga { diff --git a/engines/sci/console.cpp b/engines/sci/console.cpp index a092e0676d..1661f92cfe 100644 --- a/engines/sci/console.cpp +++ b/engines/sci/console.cpp @@ -1861,7 +1861,7 @@ bool Console::cmdSavedBits(int argc, const char **argv) { for (uint i = 0; i < entries.size(); ++i) { uint16 offset = entries[i].getOffset(); - const Hunk& h = hunks->_table[offset]; + const Hunk& h = hunks->at(offset); if (strcmp(h.type, "SaveBits()") == 0) { byte* memoryPtr = (byte *)h.mem; @@ -1928,7 +1928,7 @@ bool Console::cmdShowSavedBits(int argc, const char **argv) { return true; } - const Hunk& h = hunks->_table[memoryHandle.getOffset()]; + const Hunk& h = hunks->at(memoryHandle.getOffset()); if (strcmp(h.type, "SaveBits()") != 0) { debugPrintf("Invalid address.\n"); @@ -2144,32 +2144,32 @@ bool Console::segmentInfo(int nr) { break; case SEG_TYPE_CLONES: { - CloneTable *ct = (CloneTable *)mobj; + CloneTable &ct = *(CloneTable *)mobj; debugPrintf("clones\n"); - for (uint i = 0; i < ct->_table.size(); i++) - if (ct->isValidEntry(i)) { + for (uint i = 0; i < ct.size(); i++) + if (ct.isValidEntry(i)) { reg_t objpos = make_reg(nr, i); debugPrintf(" [%04x] %s; copy of ", i, _engine->_gamestate->_segMan->getObjectName(objpos)); // Object header - const Object *obj = _engine->_gamestate->_segMan->getObject(ct->_table[i].getPos()); + const Object *obj = _engine->_gamestate->_segMan->getObject(ct[i].getPos()); if (obj) - debugPrintf("[%04x:%04x] %s : %3d vars, %3d methods\n", PRINT_REG(ct->_table[i].getPos()), - _engine->_gamestate->_segMan->getObjectName(ct->_table[i].getPos()), + debugPrintf("[%04x:%04x] %s : %3d vars, %3d methods\n", PRINT_REG(ct[i].getPos()), + _engine->_gamestate->_segMan->getObjectName(ct[i].getPos()), obj->getVarCount(), obj->getMethodCount()); } } break; case SEG_TYPE_LISTS: { - ListTable *lt = (ListTable *)mobj; + ListTable < = *(ListTable *)mobj; debugPrintf("lists\n"); - for (uint i = 0; i < lt->_table.size(); i++) - if (lt->isValidEntry(i)) { + for (uint i = 0; i < lt.size(); i++) + if (lt.isValidEntry(i)) { debugPrintf(" [%04x]: ", i); - printList(&(lt->_table[i])); + printList(<[i]); } } break; @@ -2180,13 +2180,13 @@ bool Console::segmentInfo(int nr) { } case SEG_TYPE_HUNK: { - HunkTable *ht = (HunkTable *)mobj; + HunkTable &ht = *(HunkTable *)mobj; - debugPrintf("hunk (total %d)\n", ht->entries_used); - for (uint i = 0; i < ht->_table.size(); i++) - if (ht->isValidEntry(i)) { + debugPrintf("hunk (total %d)\n", ht.entries_used); + for (uint i = 0; i < ht.size(); i++) + if (ht.isValidEntry(i)) { debugPrintf(" [%04x] %d bytes at %p, type=%s\n", - i, ht->_table[i].size, ht->_table[i].mem, ht->_table[i].type); + i, ht[i].size, ht[i].mem, ht[i].type); } } break; @@ -4362,7 +4362,7 @@ void Console::printList(List *list) { return; } - node = &(nt->_table[pos.getOffset()]); + node = &nt->at(pos.getOffset()); debugPrintf("\t%04x:%04x : %04x:%04x -> %04x:%04x\n", PRINT_REG(pos), PRINT_REG(node->key), PRINT_REG(node->value)); @@ -4392,7 +4392,7 @@ int Console::printNode(reg_t addr) { return 1; } - list = &(lt->_table[addr.getOffset()]); + list = <->at(addr.getOffset()); debugPrintf("%04x:%04x : first x last = (%04x:%04x, %04x:%04x)\n", PRINT_REG(addr), PRINT_REG(list->first), PRINT_REG(list->last)); } else { @@ -4411,7 +4411,7 @@ int Console::printNode(reg_t addr) { debugPrintf("Address does not contain a node\n"); return 1; } - node = &(nt->_table[addr.getOffset()]); + node = &nt->at(addr.getOffset()); debugPrintf("%04x:%04x : prev x next = (%04x:%04x, %04x:%04x); maps %04x:%04x -> %04x:%04x\n", PRINT_REG(addr), PRINT_REG(node->pred), PRINT_REG(node->succ), PRINT_REG(node->key), PRINT_REG(node->value)); diff --git a/engines/sci/detection_tables.h b/engines/sci/detection_tables.h index 76c819961e..c01613268a 100644 --- a/engines/sci/detection_tables.h +++ b/engines/sci/detection_tables.h @@ -239,6 +239,19 @@ static const struct ADGameDescription SciGameDescriptions[] = { AD_LISTEND}, Common::EN_ANY, Common::kPlatformAmiga, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) }, + // Codename: Iceman - English Atari ST + // Game version 1.041 + // Executable reports "1.002.041" + { "iceman", "",{ + { "resource.map", 0, "066e89b685ad788e06bae0b76d0d37d3", 5718 }, + { "resource.000", 0, "053278385ce910a3f630f2e45e3c10be", 26987 }, + { "resource.001", 0, "32b351072fccf76fc82234d73d28c08b", 438880 }, + { "resource.002", 0, "36670a917550757d57df84c96cf9e6d9", 566667 }, + { "resource.003", 0, "d97a96f1ab91b41cf46a02cc89b0a04e", 624304 }, + { "resource.004", 0, "8613c45fc771d658e5a505b9a4a54f31", 670884 }, + AD_LISTEND }, + Common::EN_ANY, Common::kPlatformAtariST, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) }, + // Codename: Iceman - English DOS Non-Interactive Demo // Executable scanning reports "0.000.685" {"iceman", "Demo", { @@ -336,6 +349,19 @@ static const struct ADGameDescription SciGameDescriptions[] = { AD_LISTEND}, Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) }, + // Conquests of Camelot - English Atari ST + // Game version 1.019.000 + // Floppy: INT#10.12.90 + // Executable reports "1.002.038" + {"camelot", "", { + {"resource.map", 0, "0f80a11867be91a158823887a49cf443", 7290}, + {"resource.001", 0, "162f66c42e4146ee63f78fba6f1a6757", 596773}, + {"resource.002", 0, "162f66c42e4146ee63f78fba6f1a6757", 724615}, + {"resource.003", 0, "162f66c42e4146ee63f78fba6f1a6757", 713351}, + {"resource.004", 0, "162f66c42e4146ee63f78fba6f1a6757", 718766}, + AD_LISTEND}, + Common::EN_ANY, Common::kPlatformAtariST, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) }, + // Conquests of Camelot - English DOS // SCI interpreter version 0.000.685 {"camelot", "", { @@ -926,6 +952,22 @@ static const struct ADGameDescription SciGameDescriptions[] = { AD_LISTEND}, Common::EN_ANY, Common::kPlatformAmiga, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) }, + // Hoyle 1 - English Atari ST + // Game version 1.000.104, SCI interpreter version 1.002.024 + {"hoyle1", "", { + {"resource.001", 0, "e0dd44069a62a463fd124974b915f10d", 518127}, + {"resource.map", 0, "0af9a3dcd72a091960de070432e1f524", 4386}, + AD_LISTEND}, + Common::EN_ANY, Common::kPlatformAtariST, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) }, + + // Hoyle 1 - English Atari ST + // Game version 1.000.108, SCI interpreter version 1.002.026 + {"hoyle1", "", { + {"resource.map", 0, "ed8355f84752e49ffa1f0cf9eca4b28e", 4140}, + {"resource.001", 0, "e0dd44069a62a463fd124974b915f10d", 517454}, + AD_LISTEND}, + Common::EN_ANY, Common::kPlatformAtariST, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) }, + // Hoyle 2 - English DOS // SCI interpreter version 0.000.572 {"hoyle2", "", { @@ -969,6 +1011,15 @@ static const struct ADGameDescription SciGameDescriptions[] = { AD_LISTEND}, Common::EN_ANY, Common::kPlatformAmiga, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) }, + // Hoyle 2 - English Atari ST + // Game version 1.001.017 + // Executable scanning reports "1.002.034" + {"hoyle2", "", { + {"resource.map", 0, "13c8cc977598b6ad61d24c6296a090fd", 1356}, + {"resource.001", 0, "8f2dd70abe01112eca464cda818b5eb6", 216280}, + AD_LISTEND}, + Common::EN_ANY, Common::kPlatformAtariST, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) }, + // Hoyle 2 - English Macintosh // Executable scanning reports "x.yyy.zzz" {"hoyle2", "", { @@ -1964,6 +2015,17 @@ static const struct ADGameDescription SciGameDescriptions[] = { AD_LISTEND}, Common::EN_ANY, Common::kPlatformAmiga, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) }, + // Larry 2 - English Atari ST + // Game version 1.001.006 + // Executable reports "1.000.159" 1988-12-02 12:22 p.m. + {"lsl2", "", { + {"resource.map", 0, "2fc3ce7da1346e4dadfee18606d814fc", 4758}, + {"resource.001", 0, "4a24443a25e2b1492462a52809605dc2", 477342}, + {"resource.002", 0, "4a24443a25e2b1492462a52809605dc2", 406698}, + {"resource.003", 0, "4a24443a25e2b1492462a52809605dc2", 592433}, + AD_LISTEND}, + Common::EN_ANY, Common::kPlatformAtariST, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) }, + // Larry 2 - English DOS Non-Interactive Demo // Executable scanning reports "x.yyy.zzz" // SCI interpreter version 0.000.409 @@ -2021,6 +2083,17 @@ static const struct ADGameDescription SciGameDescriptions[] = { AD_LISTEND}, Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) }, + // Larry 2 - English Atari ST (Kixx) + // Game version 1.002.000 + // Executable reports "1.001.008" 1989-01-12 16:30 + {"lsl2", "", { + {"resource.map", 0, "2c9c3b0923e3764f5ab999bcb71c2d47", 4758}, + {"resource.001", 0, "4a24443a25e2b1492462a52809605dc2", 477625}, + {"resource.002", 0, "4a24443a25e2b1492462a52809605dc2", 406935}, + {"resource.003", 0, "4a24443a25e2b1492462a52809605dc2", 592533}, + AD_LISTEND}, + Common::EN_ANY, Common::kPlatformAtariST, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) }, + // Larry 3 - English Amiga (from www.back2roots.org) // Executable scanning reports "1.002.032" // SCI interpreter version 0.000.685 @@ -2035,6 +2108,19 @@ static const struct ADGameDescription SciGameDescriptions[] = { AD_LISTEND}, Common::EN_ANY, Common::kPlatformAmiga, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) }, + // Larry 3 - English Atari ST + // Game version 1.021, 1990-01-27 + // Int#6.26.90 + // Executable scanning reports "1.002.026" + {"lsl3", "", { + {"resource.map", 0, "0b6bd3e039682830a51c5755c06591db", 5916}, + {"resource.001", 0, "f18441027154292836b973c655fa3175", 456722}, + {"resource.002", 0, "f18441027154292836b973c655fa3175", 578024}, + {"resource.003", 0, "f18441027154292836b973c655fa3175", 506807}, + {"resource.004", 0, "f18441027154292836b973c655fa3175", 513651}, + AD_LISTEND}, + Common::EN_ANY, Common::kPlatformAtariST, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) }, + // Larry 3 - English DOS (supplied by ssburnout in bug report #3049193) // 1.021 8x5.25" (label: Int#5.15.90) {"lsl3", "", { @@ -2903,6 +2989,17 @@ static const struct ADGameDescription SciGameDescriptions[] = { AD_LISTEND}, Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) }, + // Police Quest 2 - English Atari ST + // Game version 1.002.011 DS 1989-07-21 + // Executable reports "1.002.003" + {"pq2", "", { + {"resource.map", 0, "28a6f471c7900c2c92da40eecb615d9d", 4584}, + {"resource.001", 0, "77f02def3094af804fd2371db25b7100", 509525}, + {"resource.002", 0, "77f02def3094af804fd2371db25b7100", 546000}, + {"resource.003", 0, "77f02def3094af804fd2371db25b7100", 591851}, + AD_LISTEND}, + Common::EN_ANY, Common::kPlatformAtariST, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) }, + // Police Quest 2 - English DOS (from FRG) // SCI interpreter version 0.000.395 {"pq2", "", { @@ -2922,6 +3019,17 @@ static const struct ADGameDescription SciGameDescriptions[] = { AD_LISTEND}, Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) }, + // Police Quest 2 - English Atari ST + // Game version 1.001.006 1989-01-16 13:30 + // Executable reports "1.001.009" + {"pq2", "", { + {"resource.map", 0, "8e1161c684b342742d30f938a4839a4b", 4518}, + {"resource.001", 0, "77f02def3094af804fd2371db25b7100", 506563}, + {"resource.002", 0, "77f02def3094af804fd2371db25b7100", 541261}, + {"resource.003", 0, "77f02def3094af804fd2371db25b7100", 587511}, + AD_LISTEND}, + Common::EN_ANY, Common::kPlatformAtariST, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) }, + // Police Quest 2 - Japanese PC-98 (also includes english language) // Executable scanning reports "x.yyy.zzz" // SCI interpreter version unknown @@ -3191,6 +3299,19 @@ static const struct ADGameDescription SciGameDescriptions[] = { AD_LISTEND}, Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) }, + // Quest for Glory 1 / Hero's Quest - English Atari ST + // Game version 1.137 + // Executable reports "1.002.028" + {"qfg1", "", { + {"resource.map", 0, "2a794066ad161acbedac8fa14e46905d", 6438}, + {"resource.000", 0, "40332d3ebfc70a4b6a6a0443c2763287", 79204}, + {"resource.001", 0, "f7fc269d3db146830d6427d3e02d4187", 473547}, + {"resource.002", 0, "e64004e020fdf1813be52b639b08be89", 635687}, + {"resource.003", 0, "f0af87c60ec869946da442833aa5afa8", 640438}, + {"resource.004", 0, "f0af87c60ec869946da442833aa5afa8", 644452}, + AD_LISTEND}, + Common::EN_ANY, Common::kPlatformAtariST, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) }, + // Quest for Glory 1 / Hero's Quest - English DOS Demo // Executable scanning reports "0.000.685" {"qfg1", "Demo", { @@ -3270,6 +3391,7 @@ static const struct ADGameDescription SciGameDescriptions[] = { Common::EN_ANY, Common::kPlatformMacintosh, ADGF_MACRESFORK, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) }, // Quest for Glory 2 - English Amiga + // Game version 1.109 // Executable scanning reports "1.003.004" // SCI interpreter version 0.001.010 {"qfg2", "", { @@ -3692,6 +3814,18 @@ static const struct ADGameDescription SciGameDescriptions[] = { AD_LISTEND}, Common::EN_ANY, Common::kPlatformAmiga, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) }, + // Space Quest 3 - English Atari ST + // Game version 1.0Q 1989-27-03 17:00 + // Int#1.002.002 + // Executable reports "1.002.001" + {"sq3", "", { + {"resource.map", 0, "c36e322805949affd882a75803a6a54e", 5484}, + {"resource.001", 0, "ceeda7202b96e5c85ecaa88a40a540fc", 485146}, + {"resource.002", 0, "ceeda7202b96e5c85ecaa88a40a540fc", 720227}, + {"resource.003", 0, "ceeda7202b96e5c85ecaa88a40a540fc", 688524}, + AD_LISTEND}, + Common::EN_ANY, Common::kPlatformAtariST, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) }, + // Space Quest 3 - German Amiga (also includes english language) // Executable scanning reports "1.004.006" // SCI interpreter version 0.000.453 (just a guess) @@ -4222,6 +4356,16 @@ static const struct ADGameDescription SciGameDescriptions[] = { AD_LISTEND}, Common::FR_FRA, Common::kPlatformWindows, ADGF_UNSTABLE | ADGF_CD, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) }, + // Torin's Passage - Russian Windows CD (SoftClub official translate) + // SCI interpreter version 2.100.002 + // VERSION file "1.0" + { "torin", "",{ + { "resource.aud", 0, "f66df699be5ed011b16b3f816cee8a04", 210583510 }, + { "ressci.000", 0, "e672da099fb1663b87c78abc6c8ba2a4", 130622695 }, + { "resmap.000", 0, "643859f8f2be8e7701611e29b3b65208", 9799 }, + AD_LISTEND }, + Common::RU_RUS, Common::kPlatformWindows, ADGF_UNSTABLE | ADGF_CD, GUIO4(GUIO_NOASPECT, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) }, + // Torin's Passage - English Macintosh {"torin", "", { {"Data1", 0, "63887e33cc282c92dc1f916f54aea8eb", 700786}, diff --git a/engines/sci/engine/kgraphics32.cpp b/engines/sci/engine/kgraphics32.cpp index 7850a10006..d5540f72b1 100644 --- a/engines/sci/engine/kgraphics32.cpp +++ b/engines/sci/engine/kgraphics32.cpp @@ -26,8 +26,6 @@ #include "graphics/cursorman.h" #include "graphics/surface.h" -#include "gui/message.h" - #include "sci/sci.h" #include "sci/event.h" #include "sci/resource.h" diff --git a/engines/sci/engine/savegame.cpp b/engines/sci/engine/savegame.cpp index fcb65157d8..0cc1e752e1 100644 --- a/engines/sci/engine/savegame.cpp +++ b/engines/sci/engine/savegame.cpp @@ -60,24 +60,125 @@ namespace Sci { #pragma mark - -// Experimental hack: Use syncWithSerializer to sync. By default, this assume -// the object to be synced is a subclass of Serializable and thus tries to invoke -// the saveLoadWithSerializer() method. But it is possible to specialize this -// template function to handle stuff that is not implementing that interface. -template<typename T> -void syncWithSerializer(Common::Serializer &s, T &obj) { +// These are serialization functions for various objects. + +void syncWithSerializer(Common::Serializer &s, Common::Serializable &obj) { + obj.saveLoadWithSerializer(s); +} + +// FIXME: Object could implement Serializable to make use of the function +// above. +void syncWithSerializer(Common::Serializer &s, Object &obj) { obj.saveLoadWithSerializer(s); } +void syncWithSerializer(Common::Serializer &s, reg_t &obj) { + // Segment and offset are accessed directly here + s.syncAsUint16LE(obj._segment); + s.syncAsUint16LE(obj._offset); +} + +void syncWithSerializer(Common::Serializer &s, synonym_t &obj) { + s.syncAsUint16LE(obj.replaceant); + s.syncAsUint16LE(obj.replacement); +} + +void syncWithSerializer(Common::Serializer &s, Class &obj) { + s.syncAsSint32LE(obj.script); + syncWithSerializer(s, obj.reg); +} + +void syncWithSerializer(Common::Serializer &s, List &obj) { + syncWithSerializer(s, obj.first); + syncWithSerializer(s, obj.last); +} + +void syncWithSerializer(Common::Serializer &s, Node &obj) { + syncWithSerializer(s, obj.pred); + syncWithSerializer(s, obj.succ); + syncWithSerializer(s, obj.key); + syncWithSerializer(s, obj.value); +} + +#ifdef ENABLE_SCI32 +void syncWithSerializer(Common::Serializer &s, SciArray<reg_t> &obj) { + byte type = 0; + uint32 size = 0; + + if (s.isSaving()) { + type = (byte)obj.getType(); + size = obj.getSize(); + } + s.syncAsByte(type); + s.syncAsUint32LE(size); + if (s.isLoading()) { + obj.setType((int8)type); + + // HACK: Skip arrays that have a negative type + if ((int8)type < 0) + return; + + obj.setSize(size); + } + + for (uint32 i = 0; i < size; i++) { + reg_t value; + + if (s.isSaving()) + value = obj.getValue(i); + + syncWithSerializer(s, value); + + if (s.isLoading()) + obj.setValue(i, value); + } +} + +void syncWithSerializer(Common::Serializer &s, SciString &obj) { + uint32 size = 0; + + if (s.isSaving()) { + size = obj.getSize(); + s.syncAsUint32LE(size); + } else { + s.syncAsUint32LE(size); + obj.setSize(size); + } + + for (uint32 i = 0; i < size; i++) { + char value = 0; + + if (s.isSaving()) + value = obj.getValue(i); + + s.syncAsByte(value); + + if (s.isLoading()) + obj.setValue(i, value); + } +} +#endif + +#pragma mark - + // By default, sync using syncWithSerializer, which in turn can easily be overloaded. template<typename T> struct DefaultSyncer : Common::BinaryFunction<Common::Serializer, T, void> { void operator()(Common::Serializer &s, T &obj) const { - //obj.saveLoadWithSerializer(s); syncWithSerializer(s, obj); } }; +// Syncer for entries in a segment obj table +template<typename T> +struct SegmentObjTableEntrySyncer : Common::BinaryFunction<Common::Serializer, typename T::Entry &, void> { + void operator()(Common::Serializer &s, typename T::Entry &entry) const { + s.syncAsSint32LE(entry.next_free); + + syncWithSerializer(s, entry.data); + } +}; + /** * Sync a Common::Array using a Common::Serializer. * When saving, this writes the length of the array, then syncs (writes) all entries. @@ -116,18 +217,10 @@ void syncArray(Common::Serializer &s, Common::Array<T> &arr) { sync(s, arr); } - -template<> -void syncWithSerializer(Common::Serializer &s, reg_t &obj) { - // Segment and offset are accessed directly here - s.syncAsUint16LE(obj._segment); - s.syncAsUint16LE(obj._offset); -} - -template<> -void syncWithSerializer(Common::Serializer &s, synonym_t &obj) { - s.syncAsUint16LE(obj.replaceant); - s.syncAsUint16LE(obj.replacement); +template<typename T, class Syncer> +void syncArray(Common::Serializer &s, Common::Array<T> &arr) { + ArraySyncer<T, Syncer> sync; + sync(s, arr); } void SegManager::saveLoadWithSerializer(Common::Serializer &s) { @@ -247,12 +340,6 @@ void SegManager::saveLoadWithSerializer(Common::Serializer &s) { } -template<> -void syncWithSerializer(Common::Serializer &s, Class &obj) { - s.syncAsSint32LE(obj.script); - syncWithSerializer(s, obj.reg); -} - static void sync_SavegameMetadata(Common::Serializer &s, SavegameMetadata &obj) { s.syncString(obj.name); s.syncVersion(CURRENT_SAVEGAME_VERSION); @@ -331,102 +418,13 @@ void Object::saveLoadWithSerializer(Common::Serializer &s) { syncArray<reg_t>(s, _variables); } -template<> -void syncWithSerializer(Common::Serializer &s, SegmentObjTable<Clone>::Entry &obj) { - s.syncAsSint32LE(obj.next_free); - - syncWithSerializer<Object>(s, obj); -} - -template<> -void syncWithSerializer(Common::Serializer &s, SegmentObjTable<List>::Entry &obj) { - s.syncAsSint32LE(obj.next_free); - - syncWithSerializer(s, obj.first); - syncWithSerializer(s, obj.last); -} - -template<> -void syncWithSerializer(Common::Serializer &s, SegmentObjTable<Node>::Entry &obj) { - s.syncAsSint32LE(obj.next_free); - - syncWithSerializer(s, obj.pred); - syncWithSerializer(s, obj.succ); - syncWithSerializer(s, obj.key); - syncWithSerializer(s, obj.value); -} - -#ifdef ENABLE_SCI32 -template<> -void syncWithSerializer(Common::Serializer &s, SegmentObjTable<SciArray<reg_t> >::Entry &obj) { - s.syncAsSint32LE(obj.next_free); - - byte type = 0; - uint32 size = 0; - - if (s.isSaving()) { - type = (byte)obj.getType(); - size = obj.getSize(); - } - s.syncAsByte(type); - s.syncAsUint32LE(size); - if (s.isLoading()) { - obj.setType((int8)type); - - // HACK: Skip arrays that have a negative type - if ((int8)type < 0) - return; - - obj.setSize(size); - } - - for (uint32 i = 0; i < size; i++) { - reg_t value; - - if (s.isSaving()) - value = obj.getValue(i); - - syncWithSerializer(s, value); - - if (s.isLoading()) - obj.setValue(i, value); - } -} - -template<> -void syncWithSerializer(Common::Serializer &s, SegmentObjTable<SciString>::Entry &obj) { - s.syncAsSint32LE(obj.next_free); - - uint32 size = 0; - - if (s.isSaving()) { - size = obj.getSize(); - s.syncAsUint32LE(size); - } else { - s.syncAsUint32LE(size); - obj.setSize(size); - } - - for (uint32 i = 0; i < size; i++) { - char value = 0; - - if (s.isSaving()) - value = obj.getValue(i); - - s.syncAsByte(value); - - if (s.isLoading()) - obj.setValue(i, value); - } -} -#endif template<typename T> void sync_Table(Common::Serializer &s, T &obj) { s.syncAsSint32LE(obj.first_free); s.syncAsSint32LE(obj.entries_used); - syncArray<typename T::Entry>(s, obj._table); + syncArray<typename T::Entry, SegmentObjTableEntrySyncer<T> >(s, obj._table); } void CloneTable::saveLoadWithSerializer(Common::Serializer &s) { @@ -903,7 +901,7 @@ void SegManager::reconstructClones() { if (!isUsed) continue; - CloneTable::Entry &seeker = ct->_table[j]; + CloneTable::value_type &seeker = ct->at(j); const Object *baseObj = getObject(seeker.getSpeciesSelector()); seeker.cloneFromObject(baseObj); if (!baseObj) { diff --git a/engines/sci/engine/scriptdebug.cpp b/engines/sci/engine/scriptdebug.cpp index 7d70f30d55..b017e62df7 100644 --- a/engines/sci/engine/scriptdebug.cpp +++ b/engines/sci/engine/scriptdebug.cpp @@ -741,13 +741,13 @@ void logKernelCall(const KernelFunction *kernelCall, const KernelSubFunction *ke switch (mobj->getType()) { case SEG_TYPE_HUNK: { - HunkTable *ht = (HunkTable *)mobj; + HunkTable &ht = *(HunkTable *)mobj; int index = argv[parmNr].getOffset(); - if (ht->isValidEntry(index)) { + if (ht.isValidEntry(index)) { // NOTE: This ", deleted" isn't as useful as it could // be because it prints the status _after_ the kernel // call. - debugN(" ('%s' hunk%s)", ht->_table[index].type, ht->_table[index].mem ? "" : ", deleted"); + debugN(" ('%s' hunk%s)", ht[index].type, ht[index].mem ? "" : ", deleted"); } else debugN(" (INVALID hunk ref)"); break; diff --git a/engines/sci/engine/seg_manager.cpp b/engines/sci/engine/seg_manager.cpp index 8090b1861d..95e3cd15f9 100644 --- a/engines/sci/engine/seg_manager.cpp +++ b/engines/sci/engine/seg_manager.cpp @@ -247,9 +247,9 @@ Object *SegManager::getObject(reg_t pos) const { if (mobj != NULL) { if (mobj->getType() == SEG_TYPE_CLONES) { - CloneTable *ct = (CloneTable *)mobj; - if (ct->isValidEntry(pos.getOffset())) - obj = &(ct->_table[pos.getOffset()]); + CloneTable &ct = *(CloneTable *)mobj; + if (ct.isValidEntry(pos.getOffset())) + obj = &(ct[pos.getOffset()]); else warning("getObject(): Trying to get an invalid object"); } else if (mobj->getType() == SEG_TYPE_SCRIPT) { @@ -313,7 +313,7 @@ reg_t SegManager::findObjectByName(const Common::String &name, int index) { } else if (mobj->getType() == SEG_TYPE_CLONES) { // It's clone table, scan all objects in it const CloneTable *ct = (const CloneTable *)mobj; - for (uint idx = 0; idx < ct->_table.size(); ++idx) { + for (uint idx = 0; idx < ct->size(); ++idx) { if (!ct->isValidEntry(idx)) continue; @@ -404,7 +404,7 @@ reg_t SegManager::allocateHunkEntry(const char *hunk_type, int size) { offset = table->allocEntry(); reg_t addr = make_reg(_hunksSegId, offset); - Hunk *h = &(table->_table[offset]); + Hunk *h = &table->at(offset); if (!h) return NULL_REG; @@ -424,7 +424,7 @@ byte *SegManager::getHunkPointer(reg_t addr) { return NULL; } - return (byte *)ht->_table[addr.getOffset()].mem; + return (byte *)ht->at(addr.getOffset()).mem; } Clone *SegManager::allocateClone(reg_t *addr) { @@ -439,7 +439,7 @@ Clone *SegManager::allocateClone(reg_t *addr) { offset = table->allocEntry(); *addr = make_reg(_clonesSegId, offset); - return &(table->_table[offset]); + return &table->at(offset); } List *SegManager::allocateList(reg_t *addr) { @@ -453,7 +453,7 @@ List *SegManager::allocateList(reg_t *addr) { offset = table->allocEntry(); *addr = make_reg(_listsSegId, offset); - return &(table->_table[offset]); + return &table->at(offset); } Node *SegManager::allocateNode(reg_t *addr) { @@ -467,7 +467,7 @@ Node *SegManager::allocateNode(reg_t *addr) { offset = table->allocEntry(); *addr = make_reg(_nodesSegId, offset); - return &(table->_table[offset]); + return &table->at(offset); } reg_t SegManager::newNode(reg_t value, reg_t key) { @@ -486,14 +486,14 @@ List *SegManager::lookupList(reg_t addr) { return NULL; } - ListTable *lt = (ListTable *)_heap[addr.getSegment()]; + ListTable < = *(ListTable *)_heap[addr.getSegment()]; - if (!lt->isValidEntry(addr.getOffset())) { + if (!lt.isValidEntry(addr.getOffset())) { error("Attempt to use non-list %04x:%04x as list", PRINT_REG(addr)); return NULL; } - return &(lt->_table[addr.getOffset()]); + return &(lt[addr.getOffset()]); } Node *SegManager::lookupNode(reg_t addr, bool stopOnDiscarded) { @@ -507,9 +507,9 @@ Node *SegManager::lookupNode(reg_t addr, bool stopOnDiscarded) { return NULL; } - NodeTable *nt = (NodeTable *)_heap[addr.getSegment()]; + NodeTable &nt = *(NodeTable *)_heap[addr.getSegment()]; - if (!nt->isValidEntry(addr.getOffset())) { + if (!nt.isValidEntry(addr.getOffset())) { if (!stopOnDiscarded) return NULL; @@ -517,7 +517,7 @@ Node *SegManager::lookupNode(reg_t addr, bool stopOnDiscarded) { return NULL; } - return &(nt->_table[addr.getOffset()]); + return &(nt[addr.getOffset()]); } SegmentRef SegManager::dereference(reg_t pointer) { @@ -873,32 +873,32 @@ SciArray<reg_t> *SegManager::allocateArray(reg_t *addr) { offset = table->allocEntry(); *addr = make_reg(_arraysSegId, offset); - return &(table->_table[offset]); + return &table->at(offset); } SciArray<reg_t> *SegManager::lookupArray(reg_t addr) { if (_heap[addr.getSegment()]->getType() != SEG_TYPE_ARRAY) error("Attempt to use non-array %04x:%04x as array", PRINT_REG(addr)); - ArrayTable *arrayTable = (ArrayTable *)_heap[addr.getSegment()]; + ArrayTable &arrayTable = *(ArrayTable *)_heap[addr.getSegment()]; - if (!arrayTable->isValidEntry(addr.getOffset())) + if (!arrayTable.isValidEntry(addr.getOffset())) error("Attempt to use non-array %04x:%04x as array", PRINT_REG(addr)); - return &(arrayTable->_table[addr.getOffset()]); + return &(arrayTable[addr.getOffset()]); } void SegManager::freeArray(reg_t addr) { if (_heap[addr.getSegment()]->getType() != SEG_TYPE_ARRAY) error("Attempt to use non-array %04x:%04x as array", PRINT_REG(addr)); - ArrayTable *arrayTable = (ArrayTable *)_heap[addr.getSegment()]; + ArrayTable &arrayTable = *(ArrayTable *)_heap[addr.getSegment()]; - if (!arrayTable->isValidEntry(addr.getOffset())) + if (!arrayTable.isValidEntry(addr.getOffset())) error("Attempt to use non-array %04x:%04x as array", PRINT_REG(addr)); - arrayTable->_table[addr.getOffset()].destroy(); - arrayTable->freeEntry(addr.getOffset()); + arrayTable[addr.getOffset()].destroy(); + arrayTable.freeEntry(addr.getOffset()); } SciString *SegManager::allocateString(reg_t *addr) { @@ -913,32 +913,32 @@ SciString *SegManager::allocateString(reg_t *addr) { offset = table->allocEntry(); *addr = make_reg(_stringSegId, offset); - return &(table->_table[offset]); + return &table->at(offset); } SciString *SegManager::lookupString(reg_t addr) { if (_heap[addr.getSegment()]->getType() != SEG_TYPE_STRING) error("lookupString: Attempt to use non-string %04x:%04x as string", PRINT_REG(addr)); - StringTable *stringTable = (StringTable *)_heap[addr.getSegment()]; + StringTable &stringTable = *(StringTable *)_heap[addr.getSegment()]; - if (!stringTable->isValidEntry(addr.getOffset())) + if (!stringTable.isValidEntry(addr.getOffset())) error("lookupString: Attempt to use non-string %04x:%04x as string", PRINT_REG(addr)); - return &(stringTable->_table[addr.getOffset()]); + return &(stringTable[addr.getOffset()]); } void SegManager::freeString(reg_t addr) { if (_heap[addr.getSegment()]->getType() != SEG_TYPE_STRING) error("freeString: Attempt to use non-string %04x:%04x as string", PRINT_REG(addr)); - StringTable *stringTable = (StringTable *)_heap[addr.getSegment()]; + StringTable &stringTable = *(StringTable *)_heap[addr.getSegment()]; - if (!stringTable->isValidEntry(addr.getOffset())) + if (!stringTable.isValidEntry(addr.getOffset())) error("freeString: Attempt to use non-string %04x:%04x as string", PRINT_REG(addr)); - stringTable->_table[addr.getOffset()].destroy(); - stringTable->freeEntry(addr.getOffset()); + stringTable[addr.getOffset()].destroy(); + stringTable.freeEntry(addr.getOffset()); } #endif diff --git a/engines/sci/engine/segment.cpp b/engines/sci/engine/segment.cpp index bb90698e6a..2cff799f4b 100644 --- a/engines/sci/engine/segment.cpp +++ b/engines/sci/engine/segment.cpp @@ -97,7 +97,7 @@ Common::Array<reg_t> CloneTable::listAllOutgoingReferences(reg_t addr) const { error("Unexpected request for outgoing references from clone at %04x:%04x", PRINT_REG(addr)); } - const Clone *clone = &(_table[addr.getOffset()]); + const Clone *clone = &at(addr.getOffset()); // Emit all member variables (including references to the 'super' delegate) for (uint i = 0; i < clone->getVarCount(); i++) @@ -112,7 +112,7 @@ Common::Array<reg_t> CloneTable::listAllOutgoingReferences(reg_t addr) const { void CloneTable::freeAtAddress(SegManager *segMan, reg_t addr) { #ifdef GC_DEBUG - Object *victim_obj = &(_table[addr.getOffset()]); + Object *victim_obj = &at(addr.getOffset()); if (!(victim_obj->_flags & OBJECT_FLAG_FREED)) warning("[GC] Clone %04x:%04x not reachable and not freed (freeing now)", PRINT_REG(addr)); @@ -208,7 +208,7 @@ Common::Array<reg_t> ListTable::listAllOutgoingReferences(reg_t addr) const { error("Invalid list referenced for outgoing references: %04x:%04x", PRINT_REG(addr)); } - const List *list = &(_table[addr.getOffset()]); + const List *list = &at(addr.getOffset()); tmp.push_back(list->first); tmp.push_back(list->last); @@ -225,7 +225,7 @@ Common::Array<reg_t> NodeTable::listAllOutgoingReferences(reg_t addr) const { if (!isValidEntry(addr.getOffset())) { error("Invalid node referenced for outgoing references: %04x:%04x", PRINT_REG(addr)); } - const Node *node = &(_table[addr.getOffset()]); + const Node *node = &at(addr.getOffset()); // We need all four here. Can't just stick with 'pred' OR 'succ' because node operations allow us // to walk around from any given node @@ -252,13 +252,13 @@ SegmentRef DynMem::dereference(reg_t pointer) { SegmentRef ArrayTable::dereference(reg_t pointer) { SegmentRef ret; ret.isRaw = false; - ret.maxSize = _table[pointer.getOffset()].getSize() * 2; - ret.reg = _table[pointer.getOffset()].getRawData(); + ret.maxSize = at(pointer.getOffset()).getSize() * 2; + ret.reg = at(pointer.getOffset()).getRawData(); return ret; } void ArrayTable::freeAtAddress(SegManager *segMan, reg_t sub_addr) { - _table[sub_addr.getOffset()].destroy(); + at(sub_addr.getOffset()).destroy(); freeEntry(sub_addr.getOffset()); } @@ -268,7 +268,7 @@ Common::Array<reg_t> ArrayTable::listAllOutgoingReferences(reg_t addr) const { error("Invalid array referenced for outgoing references: %04x:%04x", PRINT_REG(addr)); } - const SciArray<reg_t> *array = &(_table[addr.getOffset()]); + const SciArray<reg_t> *array = &at(addr.getOffset()); for (uint32 i = 0; i < array->getSize(); i++) { reg_t value = array->getValue(i); @@ -305,8 +305,8 @@ void SciString::fromString(const Common::String &string) { SegmentRef StringTable::dereference(reg_t pointer) { SegmentRef ret; ret.isRaw = true; - ret.maxSize = _table[pointer.getOffset()].getSize(); - ret.raw = (byte *)_table[pointer.getOffset()].getRawData(); + ret.maxSize = at(pointer.getOffset()).getSize(); + ret.raw = (byte *)at(pointer.getOffset()).getRawData(); return ret; } diff --git a/engines/sci/engine/segment.h b/engines/sci/engine/segment.h index 2699bc2e5b..50c77d0538 100644 --- a/engines/sci/engine/segment.h +++ b/engines/sci/engine/segment.h @@ -210,16 +210,17 @@ struct Hunk { template<typename T> struct SegmentObjTable : public SegmentObj { typedef T value_type; - struct Entry : public T { + struct Entry { + T data; int next_free; /* Only used for free entries */ }; enum { HEAPENTRY_INVALID = -1 }; - int first_free; /**< Beginning of a singly linked list for entries */ int entries_used; /**< Statistical information */ - Common::Array<Entry> _table; + typedef Common::Array<Entry> ArrayType; + ArrayType _table; public: SegmentObjTable(SegmentType type) : SegmentObj(type) { @@ -272,6 +273,14 @@ public: tmp.push_back(make_reg(segId, i)); return tmp; } + + uint size() const { return _table.size(); } + + T &at(uint index) { return _table[index].data; } + const T &at(uint index) const { return _table[index].data; } + + T &operator[](uint index) { return at(index); } + const T &operator[](uint index) const { return at(index); } }; @@ -323,8 +332,8 @@ struct HunkTable : public SegmentObjTable<Hunk> { } void freeEntryContents(int idx) { - free(_table[idx].mem); - _table[idx].mem = 0; + free(at(idx).mem); + at(idx).mem = 0; } virtual void freeEntry(int idx) { @@ -502,7 +511,7 @@ struct StringTable : public SegmentObjTable<SciString> { StringTable() : SegmentObjTable<SciString>(SEG_TYPE_STRING) {} virtual void freeAtAddress(SegManager *segMan, reg_t sub_addr) { - _table[sub_addr.getOffset()].destroy(); + at(sub_addr.getOffset()).destroy(); freeEntry(sub_addr.getOffset()); } diff --git a/engines/sci/sound/drivers/midi.cpp b/engines/sci/sound/drivers/midi.cpp index aa464cdc19..5e82e4a729 100644 --- a/engines/sci/sound/drivers/midi.cpp +++ b/engines/sci/sound/drivers/midi.cpp @@ -27,7 +27,7 @@ #include "common/memstream.h" #include "common/system.h" -#include "audio/fmopl.h" +#include "audio/mididrv.h" #include "sci/resource.h" #include "sci/engine/features.h" diff --git a/engines/sci/sound/music.h b/engines/sci/sound/music.h index a610f32d89..047f63b3b7 100644 --- a/engines/sci/sound/music.h +++ b/engines/sci/sound/music.h @@ -27,12 +27,16 @@ #include "common/mutex.h" #include "audio/mixer.h" -#include "audio/audiostream.h" #include "sci/sci.h" #include "sci/resource.h" #include "sci/sound/drivers/mididriver.h" +namespace Audio { +class LoopingAudioStream; +class RewindableAudioStream; +} + namespace Sci { enum SoundStatus { diff --git a/engines/sci/sound/soundcmd.cpp b/engines/sci/sound/soundcmd.cpp index e7b25eb1fc..fe33ea1feb 100644 --- a/engines/sci/sound/soundcmd.cpp +++ b/engines/sci/sound/soundcmd.cpp @@ -21,6 +21,8 @@ */ #include "common/config-manager.h" +#include "audio/audiostream.h" +#include "audio/mixer.h" #include "sci/sound/audio.h" #include "sci/sound/music.h" #include "sci/sound/soundcmd.h" diff --git a/engines/scumm/POTFILES b/engines/scumm/POTFILES index 246f14d3f0..039aa16755 100644 --- a/engines/scumm/POTFILES +++ b/engines/scumm/POTFILES @@ -1,3 +1,4 @@ +engines/scumm/detection.cpp engines/scumm/dialogs.cpp engines/scumm/help.cpp engines/scumm/input.cpp diff --git a/engines/scumm/detection.cpp b/engines/scumm/detection.cpp index 9264a6443b..4c9d1221aa 100644 --- a/engines/scumm/detection.cpp +++ b/engines/scumm/detection.cpp @@ -29,6 +29,7 @@ #include "common/md5.h" #include "common/savefile.h" #include "common/system.h" +#include "common/translation.h" #include "audio/mididrv.h" @@ -185,6 +186,11 @@ Common::String ScummEngine_v70he::generateFilename(const int room) const { } if (_filenamePattern.genMethod == kGenHEPC || _filenamePattern.genMethod == kGenHEIOS) { + if (id == '3' && _game.id == GID_MOONBASE) { + result = Common::String::format("%s.u32", _filenamePattern.pattern); + break; + } + // For HE >= 98, we already called snprintf above. if (_game.heversion < 98 || room < 0) result = Common::String::format("%s.he%c", _filenamePattern.pattern, id); @@ -957,6 +963,7 @@ public: virtual int getMaximumSaveSlot() const; virtual void removeSaveState(const char *target, int slot) const; virtual SaveStateDescriptor querySaveMetaInfos(const char *target, int slot) const; + virtual const ExtraGuiOptions getExtraGuiOptions(const Common::String &target) const; }; bool ScummMetaEngine::hasFeature(MetaEngineFeature f) const { @@ -1329,6 +1336,21 @@ SaveStateDescriptor ScummMetaEngine::querySaveMetaInfos(const char *target, int return desc; } +static const ExtraGuiOption comiObjectLabelsOption = { + _s("Show Object Line"), + _s("Show the names of objects at the bottom of the screen"), + "object_labels", + true +}; + +const ExtraGuiOptions ScummMetaEngine::getExtraGuiOptions(const Common::String &target) const { + ExtraGuiOptions options; + if (target.empty() || ConfMan.get("gameid", target) == "comi") { + options.push_back(comiObjectLabelsOption); + } + return options; +} + #if PLUGIN_ENABLED_DYNAMIC(SCUMM) REGISTER_PLUGIN_DYNAMIC(SCUMM, PLUGIN_TYPE_ENGINE, ScummMetaEngine); #else diff --git a/engines/scumm/detection_tables.h b/engines/scumm/detection_tables.h index 5a994cb699..bb3e7f6ec3 100644 --- a/engines/scumm/detection_tables.h +++ b/engines/scumm/detection_tables.h @@ -245,9 +245,11 @@ static const GameSettings gameVariantsTable[] = { {"monkey", "CD", 0, GID_MONKEY, 5, 0, MDT_ADLIB, GF_AUDIOTRACKS, UNK, GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI)}, {"monkey", "FM-TOWNS", 0, GID_MONKEY, 5, 0, MDT_TOWNS, GF_AUDIOTRACKS, Common::kPlatformFMTowns, GUIO4(GUIO_NOSPEECH, GUIO_NOMIDI, GUIO_MIDITOWNS, GUIO_NOASPECT)}, {"monkey", "SEGA", 0, GID_MONKEY, 5, 0, MDT_NONE, GF_AUDIOTRACKS, Common::kPlatformSegaCD, GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI)}, + {"monkey", "SE Talkie", 0, GID_MONKEY, 5, 0, MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, GF_AUDIOTRACKS, UNK, GUIO0()}, {"monkey2", "", 0, GID_MONKEY2, 5, 0, MDT_PCSPK | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, UNK, GUIO1(GUIO_NOSPEECH)}, {"monkey2", "FM-TOWNS", 0, GID_MONKEY2, 5, 0, MDT_PCSPK | MDT_TOWNS | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, Common::kPlatformFMTowns, GUIO5(GUIO_NOSPEECH, GUIO_MIDITOWNS, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_NOASPECT)}, + {"monkey2", "SE Talkie",0, GID_MONKEY2, 5, 0, MDT_PCSPK | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, UNK, GUIO0()}, {"atlantis", "", 0, GID_INDY4, 5, 0, MDT_PCSPK | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, UNK, GUIO0()}, {"atlantis", "Steam", "steam", GID_INDY4, 5, 0, MDT_PCSPK | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, UNK, GUIO0()}, diff --git a/engines/scumm/dialogs.cpp b/engines/scumm/dialogs.cpp index 21c7428621..8a6b545bf2 100644 --- a/engines/scumm/dialogs.cpp +++ b/engines/scumm/dialogs.cpp @@ -33,10 +33,8 @@ #include "scummhelp.h" #endif -#include "gui/about.h" - #include "gui/gui-manager.h" -#include "gui/widgets/list.h" +#include "gui/widget.h" #include "gui/ThemeEval.h" #include "scumm/dialogs.h" @@ -45,14 +43,12 @@ #include "scumm/imuse/imuse.h" #include "scumm/imuse_digi/dimuse.h" #include "scumm/verbs.h" -#include "audio/mididrv.h" -#include "audio/mixer.h" #ifndef DISABLE_HELP #include "scumm/help.h" #endif -#ifdef SMALL_SCREEN_DEVICE +#ifdef GUI_ENABLE_KEYSDIALOG #include "gui/KeysDialog.h" #endif diff --git a/engines/scumm/dialogs.h b/engines/scumm/dialogs.h index 08222dd8cd..bd0645597e 100644 --- a/engines/scumm/dialogs.h +++ b/engines/scumm/dialogs.h @@ -24,15 +24,13 @@ #define SCUMM_DIALOGS_H #include "common/str.h" +#include "common/keyboard.h" #include "gui/dialog.h" -#include "gui/widget.h" #include "engines/dialogs.h" -#include "scumm/detection.h" - namespace GUI { -class ListWidget; class CommandSender; +class StaticTextWidget; } diff --git a/engines/scumm/he/animation_he.cpp b/engines/scumm/he/animation_he.cpp index 8483a8a402..0a3a56ceda 100644 --- a/engines/scumm/he/animation_he.cpp +++ b/engines/scumm/he/animation_he.cpp @@ -22,16 +22,21 @@ #ifdef ENABLE_HE +#include "common/scummsys.h" + #include "scumm/he/animation_he.h" #include "scumm/he/intern_he.h" -#include "audio/audiostream.h" #include "video/smk_decoder.h" #ifdef USE_BINK #include "video/bink_decoder.h" #endif +namespace Audio { +class Mixer; +} + namespace Scumm { MoviePlayer::MoviePlayer(ScummEngine_v90he *vm, Audio::Mixer *mixer) : _vm(vm) { diff --git a/engines/scumm/he/animation_he.h b/engines/scumm/he/animation_he.h index 677a4b4247..6891ed8bf0 100644 --- a/engines/scumm/he/animation_he.h +++ b/engines/scumm/he/animation_he.h @@ -23,7 +23,9 @@ #if !defined(SCUMM_HE_ANIMATION_H) && defined(ENABLE_HE) #define SCUMM_HE_ANIMATION_H -#include "audio/mixer.h" +namespace Audio { +class Mixer; +} namespace Common { class String; diff --git a/engines/scumm/he/intern_he.h b/engines/scumm/he/intern_he.h index 370f54c1d8..06e6b249f6 100644 --- a/engines/scumm/he/intern_he.h +++ b/engines/scumm/he/intern_he.h @@ -184,8 +184,11 @@ protected: }; #ifdef ENABLE_HE +class Moonbase; + class ScummEngine_v71he : public ScummEngine_v70he { friend class Wiz; + friend class Moonbase; protected: bool _skipProcessActors; @@ -244,6 +247,10 @@ public: void queueAuxEntry(int actorNum, int subIndex); void remapHEPalette(const uint8 *src, uint8 *dst); + +public: + /* Moonbase stuff */ + Moonbase *_moonbase; }; class ScummEngine_v72he : public ScummEngine_v71he { @@ -433,7 +440,7 @@ protected: byte filename[260]; int32 status; int32 flags; - int32 unk2; + int32 number; int32 wizResNum; }; diff --git a/engines/scumm/he/logic/moonbase_logic.cpp b/engines/scumm/he/logic/moonbase_logic.cpp new file mode 100644 index 0000000000..a32356614f --- /dev/null +++ b/engines/scumm/he/logic/moonbase_logic.cpp @@ -0,0 +1,253 @@ +/* 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 "scumm/he/intern_he.h" +#include "scumm/he/logic_he.h" +#include "scumm/he/moonbase/moonbase.h" + +namespace Scumm { + +/** + * Logic code for: + * Moonbase Commander + */ +class LogicHEmoonbase : public LogicHE { +public: + LogicHEmoonbase(ScummEngine_v90he *vm) : LogicHE(vm) {} + + int versionID(); + + int32 dispatch(int op, int numArgs, int32 *args); + +private: + void op_create_multi_state_wiz(int op, int numArgs, int32 *args); + void op_load_multi_channel_wiz(int op, int numArgs, int32 *args); + void op_wiz_from_multi_channel_wiz(int op, int numArgs, int32 *args); + void op_dos_command(int op, int numArgs, int32 *args); + void op_set_fow_sentinel(int32 *args); + void op_set_fow_information(int op, int numArgs, int32 *args); + int op_set_fow_image(int op, int numArgs, int32 *args); + + void op_ai_test_kludge(int op, int numArgs, int32 *args); + void op_ai_master_control_program(int op, int numArgs, int32 *args); + void op_ai_reset(int op, int numArgs, int32 *args); + void op_ai_set_type(int op, int numArgs, int32 *args); + void op_ai_clean_up(int op, int numArgs, int32 *args); +}; + +int LogicHEmoonbase::versionID() { + if (_vm->_game.features & GF_DEMO) + return -100; + else if (strcmp(_vm->_game.variant, "1.1") == 0) + return 110; + else + return 100; +} + +#define OP_CREATE_MULTI_STATE_WIZ 100 +#define OP_LOAD_MULTI_CHANNEL_WIZ 101 +#define OP_WIZ_FROM_MULTI_CHANNEL_WIZ 102 +#define OP_DOS_COMMAND 103 +#define OP_SET_FOW_SENTINEL 104 +#define OP_SET_FOW_INFORMATION 105 +#define OP_SET_FOW_IMAGE 106 + +#define OP_AI_TEST_KLUDGE 10000 +#define OP_AI_MASTER_CONTROL_PROGRAM 10001 +#define OP_AI_RESET 10002 +#define OP_AI_SET_TYPE 10003 +#define OP_AI_CLEAN_UP 10004 + +#define OP_NET_REMOTE_START_SCRIPT 1492 +#define OP_NET_DO_INIT_ALL 1493 +#define OP_NET_DO_INIT_PROVIDER 1494 +#define OP_NET_DO_INIT_SESSION 1495 +#define OP_NET_DO_INIT_USER 1496 +#define OP_NET_QUERY_PROVIDERS 1497 +#define OP_NET_GET_PROVIDER_NAME 1498 +#define OP_NET_SET_PROVIDER 1499 +#define OP_NET_CLOSE_PROVIDER 1500 +#define OP_NET_QUERY_SESSIONS 1501 +#define OP_NET_GET_SESSION_NAME 1502 +#define OP_NET_CREATE_SESSION 1503 +#define OP_NET_JOIN_SESSION 1504 +#define OP_NET_END_SESSION 1505 +#define OP_NET_ADD_USER 1506 +#define OP_NET_REMOVE_USER 1507 +#define OP_NET_WHO_SENT_THIS 1508 +#define OP_NET_REMOTE_SEND_ARRAY 1509 +#define OP_NET_WHO_AM_I 1510 +#define OP_NET_REMOTE_START_FUNCTION 1511 +#define OP_NET_GET_PLAYER_LONG_NAME 1512 +#define OP_NET_GET_PLAYER_SHORT_NAME 1513 +#define OP_NET_SET_PROVIDER_BY_NAME 1516 +#define OP_NET_HOST_TCPIP_GAME 1517 +#define OP_NET_JOIN_TCPIP_GAME 1518 +#define OP_NET_SET_FAKE_LAG 1555 +#define OP_NET_GET_HOST_NAME 1556 +#define OP_NET_GET_IP_FROM_NAME 1557 +#define OP_NET_GET_SESSION_PLAYER_COUNT 1558 +#define OP_NET_DISABLE_SESSION_PLAYER_JOIN 1559 +#define OP_NET_START_QUERY_SESSIONS 1560 +#define OP_NET_UPDATE_QUERY_SESSIONS 1561 +#define OP_NET_STOP_QUERY_SESSIONS 1562 +#define OP_NET_DESTROY_PLAYER 1563 +#define OP_NET_ENABLE_SESSION_PLAYER_JOIN 1564 +#define OP_NET_SET_AI_PLAYER_COUNT 1565 + + +int32 LogicHEmoonbase::dispatch(int op, int numArgs, int32 *args) { + switch (op) { + case OP_CREATE_MULTI_STATE_WIZ: + op_create_multi_state_wiz(op, numArgs, args); + break; + case OP_LOAD_MULTI_CHANNEL_WIZ: + op_load_multi_channel_wiz(op, numArgs, args); + break; + case OP_WIZ_FROM_MULTI_CHANNEL_WIZ: + op_wiz_from_multi_channel_wiz(op, numArgs, args); + break; + case OP_DOS_COMMAND: + op_dos_command(op, numArgs, args); + break; + case OP_SET_FOW_SENTINEL: + op_set_fow_sentinel(args); + break; + case OP_SET_FOW_INFORMATION: + op_set_fow_information(op, numArgs, args); + break; + case OP_SET_FOW_IMAGE: + return op_set_fow_image(op, numArgs, args); + break; + + case OP_AI_TEST_KLUDGE: + op_ai_test_kludge(op, numArgs, args); + break; + case OP_AI_MASTER_CONTROL_PROGRAM: + op_ai_master_control_program(op, numArgs, args); + break; + case OP_AI_RESET: + op_ai_reset(op, numArgs, args); + break; + case OP_AI_SET_TYPE: + op_ai_set_type(op, numArgs, args); + break; + case OP_AI_CLEAN_UP: + op_ai_clean_up(op, numArgs, args); + break; + + default: + LogicHE::dispatch(op, numArgs, args); + } + + return 0; +} + +void LogicHEmoonbase::op_create_multi_state_wiz(int op, int numArgs, int32 *args) { + warning("STUB: op_create_multi_state_wiz()"); + LogicHE::dispatch(op, numArgs, args); +} + +void LogicHEmoonbase::op_load_multi_channel_wiz(int op, int numArgs, int32 *args) { + warning("STUB: op_load_multi_channel_wiz()"); + LogicHE::dispatch(op, numArgs, args); +} + +void LogicHEmoonbase::op_wiz_from_multi_channel_wiz(int op, int numArgs, int32 *args) { + warning("STUB: op_wiz_from_multi_channel_wiz()"); + LogicHE::dispatch(op, numArgs, args); +} + +void LogicHEmoonbase::op_dos_command(int op, int numArgs, int32 *args) { + warning("STUB: op_dos_command()"); + LogicHE::dispatch(op, numArgs, args); +} + +void LogicHEmoonbase::op_set_fow_sentinel(int32 *args) { + debug(2, "op_set_fow_sentinel(%d, %d, %d)", args[0], args[1], args[2]); + + _vm->_moonbase->_fowSentinelImage = args[0]; + _vm->_moonbase->_fowSentinelState = args[1]; + _vm->_moonbase->_fowSentinelConditionBits = args[2]; +} + +void LogicHEmoonbase::op_set_fow_information(int op, int numArgs, int32 *args) { + Common::String str; + + str = Common::String::format("op_set_fow_information(%d", args[0]); + for (int i = 1; i < numArgs; i++) { + str += Common::String::format(", %d", args[i]); + } + str += ")"; + + debug(2, "%s", str.c_str()); + + _vm->_moonbase->setFOWInfo( + args[0], // array + args[1], // array down dimension + args[2], // array across dimension + args[3], // logical view X coordinate + args[4], // logical view Y coordinate + args[5], // screen draw clip rect x1 + args[6], // screen draw clip rect y1 + args[7], // screen draw clip rect x2 + args[8], // screen draw clip rect y2 + args[9], // techinque + args[10] // frame + ); +} + +int LogicHEmoonbase::op_set_fow_image(int op, int numArgs, int32 *args) { + debug(2, "op_set_fow_image(%d)", args[0]); + return _vm->_moonbase->setFOWImage(args[0]) ? 1 : 0; +} + +void LogicHEmoonbase::op_ai_test_kludge(int op, int numArgs, int32 *args) { + warning("STUB: op_ai_test_kludge()"); + LogicHE::dispatch(op, numArgs, args); +} + +void LogicHEmoonbase::op_ai_master_control_program(int op, int numArgs, int32 *args) { + warning("STUB: op_ai_master_control_program()"); + LogicHE::dispatch(op, numArgs, args); +} + +void LogicHEmoonbase::op_ai_reset(int op, int numArgs, int32 *args) { + warning("STUB: op_ai_reset)"); + LogicHE::dispatch(op, numArgs, args); +} + +void LogicHEmoonbase::op_ai_set_type(int op, int numArgs, int32 *args) { + warning("STUB: op_ai_set_type()"); + LogicHE::dispatch(op, numArgs, args); +} + +void LogicHEmoonbase::op_ai_clean_up(int op, int numArgs, int32 *args) { + warning("STUB: op_ai_clean_up()"); + LogicHE::dispatch(op, numArgs, args); +} + +LogicHE *makeLogicHEmoonbase(ScummEngine_v90he *vm) { + return new LogicHEmoonbase(vm); +} + +} // End of namespace Scumm diff --git a/engines/scumm/he/moonbase/moonbase.cpp b/engines/scumm/he/moonbase/moonbase.cpp new file mode 100644 index 0000000000..34d4368725 --- /dev/null +++ b/engines/scumm/he/moonbase/moonbase.cpp @@ -0,0 +1,179 @@ +/* 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 "scumm/he/intern_he.h" +#include "scumm/he/moonbase/moonbase.h" + +namespace Scumm { + +Moonbase::Moonbase(ScummEngine_v71he *vm) : _vm(vm) { + initFOW(); +} + +Moonbase::~Moonbase() { +} + +void Moonbase::blitT14WizImage(uint8 *dst, int dstw, int dsth, int dstPitch, const Common::Rect *clipBox, + uint8 *wizd, int x, int y, int rawROP, int paramROP) { + bool premulAlpa = false; + + if (rawROP == 1) + premulAlpa = true; + + Common::Rect clippedDstRect(dstw, dsth); + if (clipBox) { + Common::Rect clip(clipBox->left, clipBox->top, clipBox->right, clipBox->bottom); + if (clippedDstRect.intersects(clip)) { + clippedDstRect.clip(clip); + } else { + return; + } + } + + int width = READ_LE_UINT16(wizd + 0x8 + 0); + int height = READ_LE_UINT16(wizd + 0x8 + 2); + + Common::Rect srcLimitsRect(width, height); + Common::Rect dstOperation(x, y, x + width, y + height); + if (!clippedDstRect.intersects(dstOperation)) + return; + Common::Rect clippedRect = clippedDstRect.findIntersectingRect(dstOperation); + + int cx = clippedRect.right - clippedRect.left; + int cy = clippedRect.bottom - clippedRect.top; + + int sx = ((clippedRect.left - x) + srcLimitsRect.left); + int sy = ((clippedRect.top - y) + srcLimitsRect.top); + + dst += clippedRect.top * dstPitch + clippedRect.left * 2; + + int headerSize = READ_LE_UINT32(wizd + 0x4); + uint8 *dataPointer = wizd + 0x8 + headerSize; + + for (int i = 0; i < sy; i++) { + uint16 lineSize = READ_LE_UINT16(dataPointer + 0); + + dataPointer += lineSize; + } + + for (int i = 0; i < cy; i++) { + uint16 lineSize = READ_LE_UINT16(dataPointer + 0); + uint8 *singlesOffset = READ_LE_UINT16(dataPointer + 2) + dataPointer; + uint8 *quadsOffset = READ_LE_UINT16(dataPointer + 4) + dataPointer; + + int pixels = 0; + byte *dst1 = dst; + byte *codes = dataPointer + 6; + + while (1) { + int code = *codes - 2; + codes++; + + if (code <= 0) { // quad or single + uint8 *src; + int cnt; + if (code == 0) { // quad + src = quadsOffset; + quadsOffset += 8; + cnt = 4; // 4 pixels + } else { // single + src = singlesOffset; + singlesOffset += 2; + cnt = 1; + } + + for (int c = 0; c < cnt; c++) { + if (pixels >= sx) { + if (rawROP == 1) { // MMX_PREMUL_ALPHA_COPY + WRITE_LE_UINT16(dst1, READ_LE_UINT16(src)); + } else if (rawROP == 2) { // MMX_ADDITIVE + uint16 color = READ_LE_UINT16(src); + uint16 orig = READ_LE_UINT16(dst1); + + uint32 r = MIN<uint32>(0x7c00, (orig & 0x7c00) + (color & 0x7c00)); + uint32 g = MIN<uint32>(0x03e0, (orig & 0x03e0) + (color & 0x03e0)); + uint32 b = MIN<uint32>(0x001f, (orig & 0x001f) + (color & 0x001f)); + WRITE_LE_UINT16(dst1, (r | g | b)); + } else if (rawROP == 5) { // MMX_CHEAP_50_50 + uint16 color = (READ_LE_UINT16(src) >> 1) & 0x3DEF; + uint16 orig = (READ_LE_UINT16(dst1) >> 1) & 0x3DEF; + WRITE_LE_UINT16(dst1, (color + orig)); + } + dst1 += 2; + } + src += 2; + pixels++; + } + } else { // skip + if ((code & 1) == 0) { + code >>= 1; + + for (int j = 0; j < code; j++) { + if (pixels >= sx) + dst1 += 2; + pixels++; + } + } else { // special case + if (pixels >= sx) { + int alpha = code >> 1; + uint16 color = READ_LE_UINT16(singlesOffset); + uint32 orig = READ_LE_UINT16(dst1); + + if (!premulAlpa) { + WRITE_LE_UINT16(dst1, color); // ENABLE_PREMUL_ALPHA = 0 + } else { + if (alpha > 32) { + alpha -= 32; + + uint32 oR = orig & 0x7c00; + uint32 oG = orig & 0x03e0; + uint32 oB = orig & 0x1f; + uint32 dR = ((((color & 0x7c00) - oR) * alpha) >> 5) + oR; + uint32 dG = ((((color & 0x3e0) - oG) * alpha) >> 5) + oG; + uint32 dB = ((((color & 0x1f) - oB) * alpha) >> 5) + oB; + + WRITE_LE_UINT16(dst1, (dR & 0x7c00) | (dG & 0x3e0) | (dB & 0x1f)); + } else { + uint32 pix = ((orig << 16) | orig) & 0x3e07c1f; + pix = (((pix * alpha) & 0xffffffff) >> 5) & 0x3e07c1f; + pix = ((pix >> 16) + pix + color) & 0xffff; + WRITE_LE_UINT16(dst1, pix); + } + } + + dst1 += 2; + } + singlesOffset += 2; + pixels++; + } + } + + if (pixels >= cx + sx) + break; + } + + dataPointer += lineSize; + dst += dstPitch; + } +} + +} // End of namespace Scumm diff --git a/engines/scumm/he/moonbase/moonbase.h b/engines/scumm/he/moonbase/moonbase.h new file mode 100644 index 0000000000..e82ae0164f --- /dev/null +++ b/engines/scumm/he/moonbase/moonbase.h @@ -0,0 +1,99 @@ +/* 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 SCUMM_HE_MOONBASE_H +#define SCUMM_HE_MOONBASE_H + +#ifdef ENABLE_HE + +#include "common/winexe_pe.h" + +namespace Scumm { + +class Moonbase { +public: + Moonbase(ScummEngine_v71he *vm); + ~Moonbase(); + + void blitT14WizImage(uint8 *dst, int dstw, int dsth, int dstPitch, const Common::Rect *clipBox, + uint8 *wizd, int srcx, int srcy, int rawROP, int paramROP); + + // FOW Stuff + void initFOW(); + void releaseFOWResources(); + + bool setFOWImage(int id); + + void setFOWInfo(int fowInfoArray, int downDim, int acrossDim, int viewX, int viewY, int clipX1, + int clipY1, int clipX2, int clipY2, int technique, int nFrame); + + + void renderFOW(uint8 *destSurface, int dstPitch, int dstType, int dstw, int dsth, int flags); + +private: + int readFOWVisibilityArray(int array, int y, int x); + void renderFOWState(uint8 *destSurface, int dstPitch, int dstType, int dstw, int dsth, int x, int y, int srcw, int srch, int state, int flags); + +public: + int _fowSentinelImage; + int _fowSentinelState; + uint32 _fowSentinelConditionBits; + +private: + ScummEngine_v71he *_vm; + + int _fowFrameBaseNumber; + int _fowAnimationFrames; + int _fowCurrentFOWFrame; + + int32 _fowTileW; + int32 _fowTileH; + + uint8 *_fowImage; + int _fowClipX1; + int _fowClipY1; + int _fowClipX2; + int _fowClipY2; + + int _fowDrawX; + int _fowDrawY; + + int _fowVtx1; + int _fowVty1; + int _fowMvx; + int _fowMvy; + int _fowVw; + int _fowVh; + + bool _fowBlackMode; + + int _fowRenderTable[32768]; + + Common::PEResources _exe; + Common::String _fileName; +}; + +} // End of namespace Scumm + +#endif // ENABLE_HE + +#endif // SCUMM_HE_MOONBASE_H diff --git a/engines/scumm/he/moonbase/moonbase_fow.cpp b/engines/scumm/he/moonbase/moonbase_fow.cpp new file mode 100644 index 0000000000..3f3730b6f1 --- /dev/null +++ b/engines/scumm/he/moonbase/moonbase_fow.cpp @@ -0,0 +1,417 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#include "common/config-manager.h" + +#include "scumm/he/intern_he.h" +#include "scumm/he/moonbase/moonbase.h" + +namespace Scumm { + +#define FOW_ANIM_FRAME_COUNT 38 + +void Moonbase::initFOW() { + _fowSentinelImage = -1; + _fowSentinelState = -1; + _fowSentinelConditionBits = 0; + + _fowFrameBaseNumber = 0; + _fowAnimationFrames = 1; + _fowCurrentFOWFrame = 0; + + _fowTileW = 0; + _fowTileH = 0; + + _fowImage = nullptr; + _fowClipX1 = 0; + _fowClipY1 = 0; + _fowClipX2 = 0; + _fowClipY2 = 0; + + _fowDrawX = 0; + _fowDrawY = 0; + + _fowVtx1 = 0; + _fowVty1 = 0; + _fowMvx = 0; + _fowMvy = 0; + _fowVw = 0; + _fowVh = 0; + + _fowBlackMode = true; + + memset(_fowRenderTable, 0, 32768); +} + +void Moonbase::releaseFOWResources() { + if (_fowImage) { + free(_fowImage); + _fowImage = 0; + } +} + +bool Moonbase::setFOWImage(int image) { + releaseFOWResources(); + + if (!_fowImage) { + Common::String fowImageFilename(ConfMan.get("MOONX_FOWImageFilename").c_str()); + +#if 0 // TODO + if (!fowImageFilename.empty()) { + void *wiz = loadWizFromFilename(fowImageFilename); + + if (wiz) { + captureFOWImageFromLocation(wiz, file.size()); + free(wiz); + } + } +#endif + + if (!_fowImage && image < 0) { + int resId; + + // PIECES BUBBLES CIRCLES SIMPLE* WEDGEY BUBBLE2 + // WEDGE2 SPIKEY ANGLES SMOOTHED WUZZY SYS7-BEVELED + if (image >= -12 && image <= -1) + resId = 210 - image; // 211-222 range + else + resId = 214; // default, SIMPLE + + if (_fileName.empty()) { // We are running for the first time + _fileName = _vm->generateFilename(-3); + + if (!_exe.loadFromEXE(_fileName)) + error("Cannot open file %s", _fileName.c_str()); + } + + Common::SeekableReadStream *stream = _exe.getResource(Common::kPERCData, resId); + + if (stream->size()) { + _fowImage = (uint8 *)malloc(stream->size()); + + stream->read(_fowImage, stream->size()); + } + + delete stream; + } + + if (!_fowImage && image > 0) + _fowImage = _vm->getResourceAddress(rtImage, image); + + if (!_fowImage) + return false; + } + + int nStates = _vm->_wiz->getWizImageStates(_fowImage); + + if (nStates > FOW_ANIM_FRAME_COUNT) { + releaseFOWResources(); + return false; + } + + _fowAnimationFrames = (nStates + FOW_ANIM_FRAME_COUNT - 1) / FOW_ANIM_FRAME_COUNT; + + _vm->_wiz->getWizImageDim(_fowImage, (nStates - 1), _fowTileW, _fowTileH); + _fowBlackMode = !_vm->_wiz->isWizPixelNonTransparent(_fowImage, nStates - 1, 0, 0, 0); + + if (ConfMan.hasKey("EnableFOWRects")) + _fowBlackMode = (ConfMan.getInt("EnableFOWRects") == 1); + + return true; +} + +enum FOWElement { + FOW_EMPTY = 0, + FOW_SOLID = 1, + + FF_L = 0x01, + FF_R = 0x02, + FF_T = 0x04, + FF_B = 0x08, + FF_T_L = 0x10, + FF_T_R = 0x20, + FF_B_L = 0x40, + FF_B_R = 0x80, + FF_Q_A = (FF_L | FF_T | FF_T_L), + FF_Q_B = (FF_R | FF_T | FF_T_R), + FF_Q_C = (FF_L | FF_B | FF_B_L), + FF_Q_D = (FF_R | FF_B | FF_B_R) +}; + +int Moonbase::readFOWVisibilityArray(int array, int y, int x) { + _vm->VAR(116) = array; + + if (_vm->readArray(116, y, x) > 0) + return FOW_EMPTY; + + return FOW_SOLID; +} + +void Moonbase::setFOWInfo(int fowInfoArray, int downDim, int acrossDim, int viewX, int viewY, int clipX1, + int clipY1, int clipX2, int clipY2, int technique, int nFrame) { + if (!_fowImage) + return; + + _fowDrawX = clipX1; + _fowDrawY = clipY1; + + _fowClipX1 = clipX1; + _fowClipY1 = clipY1; + _fowClipX2 = clipX2; + _fowClipY2 = clipY2; + + // Figure out the number of tiles are involved + int view_W = (clipX2 - clipX1) + 1; + int view_H = (clipY2 - clipY1) + 1; + + int tw = _fowTileW; + int th = _fowTileH; + + int dw = acrossDim; + int dh = downDim; + + int dlw = dw * tw; + int dlh = dh * th; + + _fowMvx = (0 <= viewX) ? (viewX % dlw) : (dlw - (-viewX % dlw)); + _fowMvy = (0 <= viewY) ? (viewY % dlh) : (dlh - (-viewY % dlh)); + + _fowVtx1 = _fowMvx / tw; + _fowVty1 = _fowMvy / th; + + _fowVw = (((_fowMvx + view_W + tw - 1) / tw) - _fowVtx1) + 1; + _fowVh = (((_fowMvy + view_H + th - 1) / th) - _fowVty1) + 1; + + // Build the connectivity table + int t = (_fowVty1 - 1); if (t >= dh) { t = 0; } else if (t < 0) { t = (dh - 1); } + int m = (_fowVty1 + 0); if (m >= dh) { m = 0; } else if (m < 0) { m = (dh - 1); } + int b = (_fowVty1 + 1); if (b >= dh) { b = 0; } else if (b < 0) { b = (dh - 1); } + + int il = (_fowVtx1 - 1); if (il >= dh) { il = 0; } else if (il < 0) { il = (dw - 1); } + int ic = (_fowVtx1 + 0); if (ic >= dh) { ic = 0; } else if (ic < 0) { ic = (dw - 1); } + int ir = (_fowVtx1 + 1); if (ir >= dh) { ir = 0; } else if (ir < 0) { ir = (dw - 1); } + + int dataOffset = (_fowVw * 3); + int dataOffset2 = (dataOffset * 2); + int *pOutterRenderTableA = _fowRenderTable; + int *pOutterRenderTableB = pOutterRenderTableA + dataOffset; + + for (int ay = 0; ay < _fowVh; ay++) { + int l = il; + int c = ic; + int r = ir; + + int *pRenderTableA = pOutterRenderTableA; + int *pRenderTableB = pOutterRenderTableB; + + pOutterRenderTableA += dataOffset2; + pOutterRenderTableB += dataOffset2; + + for (int ax = 0; ax < _fowVw; ax++) { + int visibility = readFOWVisibilityArray(fowInfoArray, m, c); + + if (visibility == FOW_EMPTY) { + int bits = 0; + + if (readFOWVisibilityArray(fowInfoArray, t, l) != 0) bits |= FF_T_L; + if (readFOWVisibilityArray(fowInfoArray, t, c) != 0) bits |= FF_T; + if (readFOWVisibilityArray(fowInfoArray, t, r) != 0) bits |= FF_T_R; + if (readFOWVisibilityArray(fowInfoArray, m, l) != 0) bits |= FF_L; + if (readFOWVisibilityArray(fowInfoArray, m, r) != 0) bits |= FF_R; + if (readFOWVisibilityArray(fowInfoArray, b, l) != 0) bits |= FF_B_L; + if (readFOWVisibilityArray(fowInfoArray, b, c) != 0) bits |= FF_B; + if (readFOWVisibilityArray(fowInfoArray, b, r) != 0) bits |= FF_B_R; + + if (bits) { + *pRenderTableA++ = 1; + *pRenderTableB++ = 1; + + // Quadrant (A) + if (bits & FF_Q_A) { + *pRenderTableA++ = ( + ((FF_L & bits) ? 1 : 0) | + ((FF_T & bits) ? 2 : 0) | + ((FF_T_L & bits) ? 4 : 0) + ) + 0; + } else { + *pRenderTableA++ = 0; + } + + // Quadrant (B) + if (bits & FF_Q_B) { + *pRenderTableA++ = ( + ((FF_R & bits) ? 1 : 0) | + ((FF_T & bits) ? 2 : 0) | + ((FF_T_R & bits) ? 4 : 0) + ) + 8; + } else { + *pRenderTableA++ = 0; + } + + // Quadrant (C) + if (bits & FF_Q_C) { + *pRenderTableB++ = ( + ((FF_L & bits) ? 1 : 0) | + ((FF_B & bits) ? 2 : 0) | + ((FF_B_L & bits) ? 4 : 0) + ) + 16; + } else { + *pRenderTableB++ = 0; + } + + // Quadrant (D) + if (bits & FF_Q_D) { + *pRenderTableB++ = ( + ((FF_R & bits) ? 1 : 0) | + ((FF_B & bits) ? 2 : 0) | + ((FF_B_R & bits) ? 4 : 0) + ) + 24; + } else { + *pRenderTableB++ = 0; + } + } else { + *pRenderTableA++ = 0; + *pRenderTableB++ = 0; + } + } else { + if (_fowBlackMode) { + *pRenderTableA++ = 2; + *pRenderTableB++ = 2; + } else { + *pRenderTableA++ = 1; + *pRenderTableA++ = 33; + *pRenderTableA++ = 34; + + *pRenderTableB++ = 1; + *pRenderTableB++ = 35; + *pRenderTableB++ = 36; + } + } + + if (++l >= dw) { l = 0; } + if (++c >= dw) { c = 0; } + if (++r >= dw) { r = 0; } + } + + if (++t >= dh) { t = 0; } + if (++m >= dh) { m = 0; } + if (++b >= dh) { b = 0; } + } + + _fowCurrentFOWFrame = (nFrame >= 0) ? (nFrame % _fowAnimationFrames) : ((-nFrame) % _fowAnimationFrames); + _fowFrameBaseNumber = (_fowCurrentFOWFrame * FOW_ANIM_FRAME_COUNT); +} + +void Moonbase::renderFOWState(uint8 *destSurface, int dstPitch, int dstType, int dstw, int dsth, int x, int y, int srcw, int srch, int state, int flags) { + int32 spotx, spoty; + + _vm->_wiz->getWizImageSpot(_fowImage, state, spotx, spoty); + Common::Rect r(_fowClipX1, _fowClipY1, _fowClipX2, _fowClipY2); + + _vm->_wiz->drawWizImageEx(destSurface, _fowImage, 0, dstPitch, dstType, dstw, dsth, x - spotx, y - spoty, srcw, srch, state, &r, flags, 0, 0, 16, 0, 0); +} + +static void blackRect_16bpp(uint8 *destSurface, int dstPitch, int dstw, int dsth, int x1, int y1, int x2, int y2) { + byte *dst = destSurface + dstPitch * y1 + x1 * 2; + int h = y2 - y1; + int w = ((x2 - x1) + 1) * 2; + + while ( --h >= 0 ) { + memset(dst, 0, w); + dst += dstPitch; + } +} + +void Moonbase::renderFOW(uint8 *destSurface, int dstPitch, int dstType, int dstw, int dsth, int flags) { + if (!_fowImage) + return; + + const int *pOutterRenderTable = _fowRenderTable; + int ixPos = ((_fowVtx1 * _fowTileW) - _fowMvx) + _fowDrawX; + int yPos = ((_fowVty1 * _fowTileH) - _fowMvy) + _fowDrawY; + int dataOffset = _fowVw * 3; + int halfTileHeight = _fowTileH / 2; + int cx2 = MIN(_fowClipX2, (dstw - 1)); + int cy2 = MIN(_fowClipY2, (dsth - 1)); + + for (int ry = 0; ry < _fowVh; ry++) { + int real_yPos = yPos; + + for (int i = 0; i < 2; i++) { + const int *pRenderTable = pOutterRenderTable; + pOutterRenderTable += dataOffset; + + int xPos = ixPos; + + for (int rx = 0; rx < _fowVw; rx++) { + int nState = *pRenderTable++; + + if (nState != 0) { + if (nState == 2) { + int countLeft = (_fowVw - rx); + int count = 0; + + for (; count < countLeft; count++) { + if (*(pRenderTable + count) != 2) + break; + + pRenderTable++; + rx++; + } + count++; + + int x1 = xPos; + int y1 = real_yPos; + + xPos += _fowTileW * count; + int x2 = (xPos - 1); + int y2 = ((y1 + halfTileHeight) - 1); + + x1 = MAX(0, x1); + y1 = MAX(0, y1); + x2 = MIN(x2, cx2); + y2 = MIN(y2, cy2); + + if ((x2 >= x1) && (y2 >= y1) && (x1 <= _fowClipX2) && (y1 <= _fowClipY2)) + blackRect_16bpp(destSurface, dstPitch, dstw, dsth, x1, y1, x2, y2); + } else { + int subState; + + if ((subState = *pRenderTable++) != 0) + renderFOWState(destSurface, dstPitch, dstType, dstw, dsth, xPos, yPos, _fowTileW, _fowTileH, (subState + _fowFrameBaseNumber), flags); + + if ((subState = *pRenderTable++) != 0) + renderFOWState(destSurface, dstPitch, dstType, dstw, dsth, xPos, yPos, _fowTileW, _fowTileH, (subState + _fowFrameBaseNumber), flags); + + xPos += _fowTileW; + } + } else { + xPos += _fowTileW; + } + } + real_yPos += halfTileHeight; + } + yPos += _fowTileH; + } +} + +} // End of namespace Scumm diff --git a/engines/scumm/he/script_v100he.cpp b/engines/scumm/he/script_v100he.cpp index afc6633ef6..4388433c7e 100644 --- a/engines/scumm/he/script_v100he.cpp +++ b/engines/scumm/he/script_v100he.cpp @@ -549,20 +549,20 @@ void ScummEngine_v100he::o100_arrayOps() { debug(9,"o100_arrayOps: array %d case %d", array, subOp); switch (subOp) { - case 35: + case 35: // SO_FORMATTED_STRING decodeScriptString(string); len = resStrLen(string); data = defineArray(array, kStringArray, 0, 0, 0, len); memcpy(data, string, len); break; - case 77: // SO_ASSIGN_STRING + case 77: // SO_STRING copyScriptString(string, sizeof(string)); len = resStrLen(string); data = defineArray(array, kStringArray, 0, 0, 0, len); memcpy(data, string, len); break; - case 128: // SO_ASSIGN_2DIM_LIST + case 128: // SO_ASSIGN_2DIM_LIST len = getStackList(list, ARRAYSIZE(list)); id = readVar(array); if (id == 0) @@ -572,7 +572,7 @@ void ScummEngine_v100he::o100_arrayOps() { writeArray(array, c, len, list[len]); } break; - case 129: // SO_ASSIGN_INT_LIST + case 129: // SO_ASSIGN_INT_LIST b = pop(); c = pop(); id = readVar(array); @@ -583,7 +583,7 @@ void ScummEngine_v100he::o100_arrayOps() { writeArray(array, 0, b + c, pop()); } break; - case 130: + case 130: // len = getStackList(list, ARRAYSIZE(list)); dim1end = pop(); dim1start = pop(); @@ -607,7 +607,7 @@ void ScummEngine_v100he::o100_arrayOps() { dim2start++; } break; - case 131: + case 131: // SO_COMPLEX_ARRAY_COPY_OPERATION { int a2_dim1end = pop(); int a2_dim1start = pop(); @@ -624,7 +624,7 @@ void ScummEngine_v100he::o100_arrayOps() { copyArray(array, a1_dim2start, a1_dim2end, a1_dim1start, a1_dim1end, array2, a2_dim2start, a2_dim2end, a2_dim1start, a2_dim1end); } break; - case 132: + case 132: // SO_COMPLEX_ARRAY_MATH_OPERATION // TODO: Used by room 2 script 2180 in Moonbase Commander fetchScriptWord(); fetchScriptWord(); @@ -659,9 +659,9 @@ void ScummEngine_v100he::o100_arrayOps() { default: error("o100_arrayOps: case 132 unknown type %d)", type); } - debug(0, "o100_arrayOps: case 132 type %d", type); + warning("STUB: o100_arrayOps: case 132 type %d", type); break; - case 133: + case 133: // SO_RANGE_ARRAY_ASSIGNMENT b = pop(); c = pop(); dim1end = pop(); @@ -1110,6 +1110,7 @@ void ScummEngine_v100he::o100_resourceRoutines() { break; case 128: // TODO: Clear Heap + warning("STUB: o100_resourceRoutines: clear Heap"); break; case 129: // Dummy case @@ -1310,36 +1311,36 @@ void ScummEngine_v100he::o100_wizImageOps() { if (_wizParams.img.resNum) _wiz->processWizImage(&_wizParams); break; - case 128: - _wizParams.field_239D = pop(); - _wizParams.field_2399 = pop(); - _wizParams.field_23A5 = pop(); - _wizParams.field_23A1 = pop(); - copyScriptString(_wizParams.string2, sizeof(_wizParams.string2)); + case 128: // Font create _wizParams.processMode = 15; + _wizParams.fontProperties.bgColor = pop(); + _wizParams.fontProperties.fgColor = pop(); + _wizParams.fontProperties.size = pop(); + _wizParams.fontProperties.style = pop(); + copyScriptString(_wizParams.fontProperties.fontName, sizeof(_wizParams.fontProperties.fontName)); break; case 129: _wizParams.processMode = 14; break; - case 130: + case 130: // Font render _wizParams.processMode = 16; - _wizParams.field_23AD = pop(); - _wizParams.field_23A9 = pop(); - copyScriptString(_wizParams.string1, sizeof(_wizParams.string1)); + _wizParams.fontProperties.yPos = pop(); + _wizParams.fontProperties.xPos = pop(); + copyScriptString(_wizParams.fontProperties.string, sizeof(_wizParams.fontProperties.string)); break; case 131: _wizParams.processMode = 13; break; - case 133: + case 133: // Render ellipse _wizParams.processMode = 17; - _wizParams.field_23CD = pop(); - _wizParams.field_23C9 = pop(); - _wizParams.field_23C5 = pop(); - _wizParams.field_23C1 = pop(); - _wizParams.field_23BD = pop(); - _wizParams.field_23B9 = pop(); - _wizParams.field_23B5 = pop(); - _wizParams.field_23B1 = pop(); + _wizParams.ellipseProperties.color = pop(); + _wizParams.ellipseProperties.lod = pop(); + _wizParams.ellipseProperties.ky = pop(); + _wizParams.ellipseProperties.kx = pop(); + _wizParams.ellipseProperties.qy = pop(); + _wizParams.ellipseProperties.qx = pop(); + _wizParams.ellipseProperties.py = pop(); + _wizParams.ellipseProperties.px = pop(); break; case 134: _wizParams.processFlags |= kWPFFillColor | kWPFClipBox2; @@ -1781,14 +1782,14 @@ void ScummEngine_v100he::o100_setSpriteInfo() { byte subOp = fetchScriptByte(); switch (subOp) { - case 0: + case 0: // SO_INIT _curMaxSpriteId = pop(); _curSpriteId = pop(); if (_curSpriteId > _curMaxSpriteId) SWAP(_curSpriteId, _curMaxSpriteId); break; - case 2: + case 2: // SO_ANGLE args[0] = pop(); if (_curSpriteId > _curMaxSpriteId) break; @@ -1799,7 +1800,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() { for (; spriteId <= _curMaxSpriteId; spriteId++) _sprite->setSpriteAngle(spriteId, args[0]); break; - case 3: + case 3: // SO_ANIMATION args[0] = pop(); if (_curSpriteId > _curMaxSpriteId) break; @@ -1810,7 +1811,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() { for (; spriteId <= _curMaxSpriteId; spriteId++) _sprite->setSpriteFlagAutoAnim(spriteId, args[0]); break; - case 4: + case 4: // SO_ANIMATION_SPEED args[0] = pop(); if (_curSpriteId > _curMaxSpriteId) break; @@ -1821,7 +1822,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() { for (; spriteId <= _curMaxSpriteId; spriteId++) _sprite->setSpriteAnimSpeed(spriteId, args[0]); break; - case 6: + case 6: // SO_AT args[1] = pop(); args[0] = pop(); if (_curSpriteId > _curMaxSpriteId) @@ -1833,7 +1834,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() { for (; spriteId <= _curMaxSpriteId; spriteId++) _sprite->setSpritePosition(spriteId, args[0], args[1]); break; - case 7: + case 7: // SO_AT_IMAGE args[0] = pop(); if (_curSpriteId > _curMaxSpriteId) break; @@ -1844,7 +1845,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() { for (; spriteId <= _curMaxSpriteId; spriteId++) _sprite->setSpriteSourceImage(spriteId, args[0]); break; - case 16: + case 16: // SO_CLASS n = getStackList(args, ARRAYSIZE(args)); if (_curSpriteId != 0 && _curMaxSpriteId != 0 && n != 0) { int *p = &args[n - 1]; @@ -1867,7 +1868,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() { } while (--n); } break; - case 32: + case 32: // SO_ERASE args[0] = pop(); if (_curSpriteId > _curMaxSpriteId) break; @@ -1878,7 +1879,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() { for (; spriteId <= _curMaxSpriteId; spriteId++) _sprite->setSpriteFlagEraseType(spriteId, args[0]); break; - case 38: + case 38: // SO_GROUP args[0] = pop(); if (_curSpriteId > _curMaxSpriteId) break; @@ -1889,7 +1890,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() { for (; spriteId <= _curMaxSpriteId; spriteId++) _sprite->setSpriteGroup(spriteId, args[0]); break; - case 40: + case 40: // SO_IMAGE args[0] = pop(); if (_curSpriteId > _curMaxSpriteId) break; @@ -1900,7 +1901,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() { for (; spriteId <= _curMaxSpriteId; spriteId++) _sprite->setSpriteImage(spriteId, args[0]); break; - case 48: + case 48: // SO_MASK args[0] = pop(); if (_curSpriteId > _curMaxSpriteId) break; @@ -1911,7 +1912,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() { for (; spriteId <= _curMaxSpriteId; spriteId++) _sprite->setSpriteMaskImage(spriteId, args[0]); break; - case 49: + case 49: // SO_MOVE args[1] = pop(); args[0] = pop(); if (_curSpriteId > _curMaxSpriteId) @@ -1923,10 +1924,10 @@ void ScummEngine_v100he::o100_setSpriteInfo() { for (; spriteId <= _curMaxSpriteId; spriteId++) _sprite->moveSprite(spriteId, args[0], args[1]); break; - case 52: + case 52: // SO_NAME copyScriptString(string, sizeof(string)); break; - case 53: + case 53: // SO_NEW if (_curSpriteId > _curMaxSpriteId) break; spriteId = _curSpriteId; @@ -1936,7 +1937,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() { for (; spriteId <= _curMaxSpriteId; spriteId++) _sprite->resetSprite(spriteId); break; - case 54: + case 54: // SO_NEW_GENERAL_PROPERTY args[1] = pop(); args[0] = pop(); if (_curSpriteId > _curMaxSpriteId) @@ -1948,7 +1949,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() { for (; spriteId <= _curMaxSpriteId; spriteId++) _sprite->setSpriteGeneralProperty(spriteId, args[0], args[1]); break; - case 57: + case 57: // SO_PALETTE args[0] = pop(); if (_curSpriteId > _curMaxSpriteId) break; @@ -1959,7 +1960,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() { for (; spriteId <= _curMaxSpriteId; spriteId++) _sprite->setSpritePalette(spriteId, args[0]); break; - case 59: + case 59: // SO_PRIORITY args[0] = pop(); if (_curSpriteId > _curMaxSpriteId) break; @@ -1970,7 +1971,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() { for (; spriteId <= _curMaxSpriteId; spriteId++) _sprite->setSpritePriority(spriteId, args[0]); break; - case 60: + case 60: // SO_PROPERTY args[1] = pop(); args[0] = pop(); if (_curSpriteId > _curMaxSpriteId) @@ -1997,13 +1998,14 @@ void ScummEngine_v100he::o100_setSpriteInfo() { _sprite->setSpriteFlagRemapPalette(spriteId, args[0]); break; default: + warning("Unknown sprite property %d for sprite %d", args[0], spriteId); break; } break; - case 61: + case 61: // SO_RESTART _sprite->resetTables(true); break; - case 65: + case 65: // SO_SCALE args[0] = pop(); if (_curSpriteId > _curMaxSpriteId) break; @@ -2014,7 +2016,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() { for (; spriteId <= _curMaxSpriteId; spriteId++) _sprite->setSpriteScale(spriteId, args[0]); break; - case 70: + case 70: // SO_SHADOW args[0] = pop(); if (_curSpriteId > _curMaxSpriteId) break; @@ -2025,7 +2027,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() { for (; spriteId <= _curMaxSpriteId; spriteId++) _sprite->setSpriteShadow(spriteId, args[0]); break; - case 73: + case 73: // SO_STATE args[0] = pop(); if (_curSpriteId > _curMaxSpriteId) break; @@ -2036,7 +2038,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() { for (; spriteId <= _curMaxSpriteId; spriteId++) _sprite->setSpriteImageState(spriteId, args[0]); break; - case 74: + case 74: // SO_STEP_DIST args[1] = pop(); args[0] = pop(); if (_curSpriteId > _curMaxSpriteId) @@ -2048,7 +2050,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() { for (; spriteId <= _curMaxSpriteId; spriteId++) _sprite->setSpriteDist(spriteId, args[0], args[1]); break; - case 75: + case 75: // SO_STEP_DIST_X args[0] = pop(); if (_curSpriteId > _curMaxSpriteId) break; @@ -2061,7 +2063,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() { _sprite->setSpriteDist(spriteId, args[0], tmp[1]); } break; - case 76: + case 76: // SO_STEP_DIST_Y args[0] = pop(); if (_curSpriteId > _curMaxSpriteId) break; @@ -2074,7 +2076,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() { _sprite->setSpriteDist(spriteId, tmp[0], args[0]); } break; - case 82: + case 82: // SO_UPDATE args[0] = pop(); if (_curSpriteId > _curMaxSpriteId) break; @@ -2085,7 +2087,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() { for (; spriteId <= _curMaxSpriteId; spriteId++) _sprite->setSpriteFlagUpdateType(spriteId, args[0]); break; - case 83: + case 83: // SO_VARIABLE args[1] = pop(); args[0] = pop(); if (_curSpriteId > _curMaxSpriteId) @@ -2097,7 +2099,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() { for (; spriteId <= _curMaxSpriteId; spriteId++) _sprite->setSpriteUserValue(spriteId, args[0], args[1]); break; - case 88: + case 88: // SO_IMAGE_ZCLIP args[0] = pop(); if (_curSpriteId > _curMaxSpriteId) break; @@ -2106,9 +2108,9 @@ void ScummEngine_v100he::o100_setSpriteInfo() { spriteId++; for (; spriteId <= _curMaxSpriteId; spriteId++) - _sprite->setSpriteField84(spriteId, args[0]); + _sprite->setSpriteZBuffer(spriteId, args[0]); break; - case 89: + case 89: // SO_NEVER_ZCLIP if (_curSpriteId > _curMaxSpriteId) break; spriteId = _curSpriteId; @@ -2116,7 +2118,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() { spriteId++; for (; spriteId <= _curMaxSpriteId; spriteId++) - _sprite->setSpriteField84(spriteId, 0); + _sprite->setSpriteZBuffer(spriteId, 0); break; default: error("o100_setSpriteInfo: Unknown case %d", subOp); @@ -2235,40 +2237,43 @@ void ScummEngine_v100he::o100_videoOps() { byte subOp = fetchScriptByte(); switch (subOp) { - case 0: + case 0: // SO_INIT memset(_videoParams.filename, 0, sizeof(_videoParams.filename)); _videoParams.status = 0; _videoParams.flags = 0; - _videoParams.unk2 = pop(); + _videoParams.number = pop(); _videoParams.wizResNum = 0; + + if (_videoParams.number != 1 && _videoParams.number != -1) + warning("o100_videoOps: number: %d", _videoParams.number); break; - case 19: + case 19: // SO_CLOSE _videoParams.status = 19; break; - case 40: + case 40: // SO_IMAGE _videoParams.wizResNum = pop(); if (_videoParams.wizResNum) _videoParams.flags |= 2; break; - case 47: + case 47: // SO_LOAD copyScriptString(_videoParams.filename, sizeof(_videoParams.filename)); _videoParams.status = 47; break; - case 67: + case 67: // SO_SET_FLAGS _videoParams.flags |= pop(); break; - case 92: - if (_videoParams.status == 47) { + case 92: // SO_END + if (_videoParams.status == 47) { // SO_LOAD // Start video if (_videoParams.flags == 0) _videoParams.flags = 4; - if (_videoParams.flags == 2) { + if (_videoParams.flags & 2) { VAR(119) = _moviePlay->load(convertFilePath(_videoParams.filename), _videoParams.flags, _videoParams.wizResNum); } else { VAR(119) = _moviePlay->load(convertFilePath(_videoParams.filename), _videoParams.flags); } - } else if (_videoParams.status == 19) { + } else if (_videoParams.status == 19) { // SO_CLOSE // Stop video _moviePlay->close(); } @@ -2468,6 +2473,7 @@ void ScummEngine_v100he::o100_getSpriteGroupInfo() { pop(); pop(); push(0); + warning("STUB: o100_getSpriteGroupInfo, subop 54"); break; case 59: spriteGroupId = pop(); diff --git a/engines/scumm/he/script_v90he.cpp b/engines/scumm/he/script_v90he.cpp index f65d2f6077..f63973e3f1 100644 --- a/engines/scumm/he/script_v90he.cpp +++ b/engines/scumm/he/script_v90he.cpp @@ -285,29 +285,29 @@ void ScummEngine_v90he::o90_wizImageOps() { _wizParams.processMode = 13; break; case 142: // HE99+ - _wizParams.field_239D = pop(); - _wizParams.field_2399 = pop(); - _wizParams.field_23A5 = pop(); - _wizParams.field_23A1 = pop(); - copyScriptString(_wizParams.string2, sizeof(_wizParams.string2)); _wizParams.processMode = 15; + _wizParams.fontProperties.bgColor = pop(); + _wizParams.fontProperties.fgColor = pop(); + _wizParams.fontProperties.size = pop(); + _wizParams.fontProperties.style = pop(); + copyScriptString(_wizParams.fontProperties.fontName, sizeof(_wizParams.fontProperties.fontName)); break; case 143: // HE99+ _wizParams.processMode = 16; - _wizParams.field_23AD = pop(); - _wizParams.field_23A9 = pop(); - copyScriptString(_wizParams.string1, sizeof(_wizParams.string1)); + _wizParams.fontProperties.yPos = pop(); + _wizParams.fontProperties.xPos = pop(); + copyScriptString(_wizParams.fontProperties.string, sizeof(_wizParams.fontProperties.string)); break; case 189: // HE99+ _wizParams.processMode = 17; - _wizParams.field_23CD = pop(); - _wizParams.field_23C9 = pop(); - _wizParams.field_23C5 = pop(); - _wizParams.field_23C1 = pop(); - _wizParams.field_23BD = pop(); - _wizParams.field_23B9 = pop(); - _wizParams.field_23B5 = pop(); - _wizParams.field_23B1 = pop(); + _wizParams.ellipseProperties.color = pop(); + _wizParams.ellipseProperties.lod = pop(); + _wizParams.ellipseProperties.ky = pop(); + _wizParams.ellipseProperties.kx = pop(); + _wizParams.ellipseProperties.qy = pop(); + _wizParams.ellipseProperties.qx = pop(); + _wizParams.ellipseProperties.py = pop(); + _wizParams.ellipseProperties.px = pop(); break; case 196: // HE99+ _wizParams.processMode = 14; @@ -1412,7 +1412,7 @@ void ScummEngine_v90he::o90_videoOps() { memset(_videoParams.filename, 0, sizeof(_videoParams.filename)); _videoParams.status = 0; _videoParams.flags = 0; - _videoParams.unk2 = pop(); + _videoParams.number = pop(); _videoParams.wizResNum = 0; break; case 14: diff --git a/engines/scumm/he/sound_he.cpp b/engines/scumm/he/sound_he.cpp index b806a9f3cc..2e0a03af7f 100644 --- a/engines/scumm/he/sound_he.cpp +++ b/engines/scumm/he/sound_he.cpp @@ -34,14 +34,10 @@ #include "common/timer.h" #include "common/util.h" +#include "audio/audiostream.h" #include "audio/decoders/adpcm.h" -#include "audio/decoders/flac.h" -#include "audio/mididrv.h" #include "audio/mixer.h" -#include "audio/decoders/mp3.h" #include "audio/decoders/raw.h" -#include "audio/decoders/voc.h" -#include "audio/decoders/vorbis.h" #include "audio/decoders/wave.h" namespace Scumm { @@ -474,6 +470,10 @@ void SoundHE::processSoundOpcodes(int sound, byte *codePtr, int *soundVars) { if (arg == 2) { val = getSoundVar(sound, val); } + if (!val) { + val = 1; // Safeguard for division by zero + warning("Incorrect value 0 for processSoundOpcodes() kludge DIV"); + } val = getSoundVar(sound, var) / val; setSoundVar(sound, var, val); break; diff --git a/engines/scumm/he/sprite_he.cpp b/engines/scumm/he/sprite_he.cpp index 245a986531..e3f04dfcf0 100644 --- a/engines/scumm/he/sprite_he.cpp +++ b/engines/scumm/he/sprite_he.cpp @@ -386,7 +386,7 @@ int Sprite::getSpriteGeneralProperty(int spriteId, int type) { case 0x7B: return _spriteTable[spriteId].imgFlags; case 0x7D: - return _spriteTable[spriteId].field_90; + return _spriteTable[spriteId].conditionBits; case 0x7E: return _spriteTable[spriteId].animProgress; default: @@ -739,26 +739,24 @@ void Sprite::setSpriteResetClass(int spriteId) { _spriteTable[spriteId].classFlags = 0; } -void Sprite::setSpriteField84(int spriteId, int value) { +void Sprite::setSpriteZBuffer(int spriteId, int value) { assertRange(1, spriteId, _varNumSprites, "sprite"); - _spriteTable[spriteId].field_84 = value; + _spriteTable[spriteId].zbufferImage = value; } void Sprite::setSpriteGeneralProperty(int spriteId, int type, int value) { - debug(0, "setSpriteGeneralProperty: spriteId %d type 0x%x", spriteId, type); + debug(6, "setSpriteGeneralProperty: spriteId %d type 0x%x value 0x%x", spriteId, type, value); assertRange(1, spriteId, _varNumSprites, "sprite"); int32 delay; - // XXX U32 related check - switch (type) { case 0x7B: _spriteTable[spriteId].imgFlags = value; _spriteTable[spriteId].flags |= kSFChanged | kSFNeedRedraw; break; case 0x7D: - _spriteTable[spriteId].field_90 = value; + _spriteTable[spriteId].conditionBits = value; _spriteTable[spriteId].flags |= kSFChanged | kSFNeedRedraw; break; case 0x7E: @@ -797,9 +795,9 @@ void Sprite::resetSprite(int spriteId) { _spriteTable[spriteId].sourceImage = 0; _spriteTable[spriteId].maskImage = 0; _spriteTable[spriteId].priority = 0; - _spriteTable[spriteId].field_84 = 0; + _spriteTable[spriteId].zbufferImage = 0; _spriteTable[spriteId].imgFlags = 0; - _spriteTable[spriteId].field_90 = 0; + _spriteTable[spriteId].conditionBits = 0; if (_vm->_game.heversion >= 100) { _spriteTable[spriteId].flags &= ~kSFMarkDirty; @@ -816,7 +814,7 @@ void Sprite::setSpriteImage(int spriteId, int imageNum) { origResWizStates = _spriteTable[spriteId].imageStateCount; _spriteTable[spriteId].image = imageNum; - _spriteTable[spriteId].field_74 = 0; + _spriteTable[spriteId].animIndex = 0; _spriteTable[spriteId].imageState = 0; if (_spriteTable[spriteId].image) { @@ -1292,7 +1290,7 @@ void Sprite::processImages(bool arg) { wiz.spriteId = spi->id; wiz.spriteGroup = spi->group; - wiz.field_23EA = spi->field_90; + wiz.conditionBits = spi->conditionBits; spi->curImageState = wiz.img.state = imageState; spi->curImage = wiz.img.resNum = image; wiz.processFlags = kWPFNewState | kWPFSetPos; @@ -1339,9 +1337,9 @@ void Sprite::processImages(bool arg) { } if (spr_flags & kSFRemapPalette) wiz.img.flags |= kWIFRemapPalette; - if (spi->field_84) { + if (spi->zbufferImage) { wiz.processFlags |= 0x200000; - wiz.img.field_390 = spi->field_84; + wiz.img.zbuffer = spi->zbufferImage; wiz.img.zorder = spi->priority; } if (spi->sourceImage) { @@ -1419,14 +1417,14 @@ void Sprite::saveOrLoadSpriteData(Serializer *s) { MKLINE(SpriteInfo, curAngle, sleInt32, VER(48)), MKLINE(SpriteInfo, curScale, sleInt32, VER(48)), MKLINE(SpriteInfo, curImgFlags, sleInt32, VER(48)), - MKLINE(SpriteInfo, field_74, sleInt32, VER(48)), + MKLINE(SpriteInfo, animIndex, sleInt32, VER(48)), MKLINE(SpriteInfo, animSpeed, sleInt32, VER(48)), MKLINE(SpriteInfo, sourceImage, sleInt32, VER(48)), MKLINE(SpriteInfo, maskImage, sleInt32, VER(48)), - MKLINE(SpriteInfo, field_84, sleInt32, VER(48)), + MKLINE(SpriteInfo, zbufferImage, sleInt32, VER(48)), MKLINE(SpriteInfo, classFlags, sleInt32, VER(48)), MKLINE(SpriteInfo, imgFlags, sleInt32, VER(48)), - MKLINE(SpriteInfo, field_90, sleInt32, VER(48)), + MKLINE(SpriteInfo, conditionBits, sleInt32, VER(48)), MKEND() }; diff --git a/engines/scumm/he/sprite_he.h b/engines/scumm/he/sprite_he.h index e31ccbf790..3ea6bb9f84 100644 --- a/engines/scumm/he/sprite_he.h +++ b/engines/scumm/he/sprite_he.h @@ -72,14 +72,14 @@ struct SpriteInfo { int32 curAngle; int32 curScale; int32 curImgFlags; - int32 field_74; + int32 animIndex; int32 animSpeed; int32 sourceImage; int32 maskImage; - int32 field_84; + int32 zbufferImage; int32 classFlags; int32 imgFlags; - int32 field_90; + int32 conditionBits; }; struct SpriteGroup { @@ -182,7 +182,7 @@ public: void setSpriteAnimSpeed(int spriteId, int value); void setSpriteSetClass(int spriteId, int classId, int toggle); void setSpriteResetClass(int spriteId); - void setSpriteField84(int spriteId, int value); + void setSpriteZBuffer(int spriteId, int value); void setSpriteGeneralProperty(int spriteId, int type, int value); void moveGroupMembers(int spriteGroupId, int value1, int value2); diff --git a/engines/scumm/he/wiz_he.cpp b/engines/scumm/he/wiz_he.cpp index 9a59609651..0976a532de 100644 --- a/engines/scumm/he/wiz_he.cpp +++ b/engines/scumm/he/wiz_he.cpp @@ -31,6 +31,7 @@ #include "scumm/scumm.h" #include "scumm/util.h" #include "scumm/he/wiz_he.h" +#include "scumm/he/moonbase/moonbase.h" namespace Scumm { @@ -976,7 +977,7 @@ void Wiz::decompressRawWizImage(uint8 *dst, int dstPitch, int dstType, const uin } } -int Wiz::isWizPixelNonTransparent(const uint8 *data, int x, int y, int w, int h, uint8 bitDepth) { +int Wiz::isPixelNonTransparent(const uint8 *data, int x, int y, int w, int h, uint8 bitDepth) { if (x < 0 || x >= w || y < 0 || y >= h) { return 0; } @@ -1422,19 +1423,19 @@ void Wiz::displayWizImage(WizImage *pwi) { wi->state = pwi->state; wi->flags = pwi->flags; wi->shadow = 0; - wi->field_390 = 0; + wi->zbuffer = 0; wi->palette = 0; ++_imagesNum; } else if (pwi->flags & kWIFIsPolygon) { drawWizPolygon(pwi->resNum, pwi->state, pwi->x1, pwi->flags, 0, 0, 0); } else { const Common::Rect *r = NULL; - drawWizImage(pwi->resNum, pwi->state, 0, 0, pwi->x1, pwi->y1, 0, 0, 0, r, pwi->flags, 0, _vm->getHEPaletteSlot(0)); + drawWizImage(pwi->resNum, pwi->state, 0, 0, pwi->x1, pwi->y1, 0, 0, 0, r, pwi->flags, 0, _vm->getHEPaletteSlot(0), 0); } } -uint8 *Wiz::drawWizImage(int resNum, int state, int maskNum, int maskState, int x1, int y1, int zorder, int shadow, int field_390, const Common::Rect *clipBox, int flags, int dstResNum, const uint8 *palPtr) { - debug(3, "drawWizImage(resNum %d, state %d maskNum %d maskState %d x1 %d y1 %d flags 0x%X zorder %d shadow %d field_390 %d dstResNum %d)", resNum, state, maskNum, maskState, x1, y1, flags, zorder, shadow, field_390, dstResNum); +uint8 *Wiz::drawWizImage(int resNum, int state, int maskNum, int maskState, int x1, int y1, int zorder, int shadow, int zbuffer, const Common::Rect *clipBox, int flags, int dstResNum, const uint8 *palPtr, uint32 conditionBits) { + debug(7, "drawWizImage(resNum %d, state %d maskNum %d maskState %d x1 %d y1 %d flags 0x%X zorder %d shadow %d zbuffer %d dstResNum %d conditionBits: 0x%x)", resNum, state, maskNum, maskState, x1, y1, flags, zorder, shadow, zbuffer, dstResNum, conditionBits); uint8 *dataPtr; uint8 *dst = NULL; @@ -1454,10 +1455,7 @@ uint8 *Wiz::drawWizImage(int resNum, int state, int maskNum, int maskState, int uint32 comp = READ_LE_UINT32(wizh + 0x0); uint32 width = READ_LE_UINT32(wizh + 0x4); uint32 height = READ_LE_UINT32(wizh + 0x8); - debug(3, "wiz_header.comp = %d wiz_header.w = %d wiz_header.h = %d", comp, width, height); - - uint8 *wizd = _vm->findWrappedBlock(MKTAG('W','I','Z','D'), dataPtr, state, 0); - assert(wizd); + debug(7, "wiz_header.comp = %d wiz_header.w = %d wiz_header.h = %d", comp, width, height); uint8 *mask = NULL; if (maskNum) { @@ -1574,58 +1572,261 @@ uint8 *Wiz::drawWizImage(int resNum, int state, int maskNum, int maskState, int transColor = (trns == NULL) ? _vm->VAR(_vm->VAR_WIZ_TCOLOR) : -1; } + if (_vm->_game.id == GID_MOONBASE && + resNum == _vm->_moonbase->_fowSentinelImage && + state == _vm->_moonbase->_fowSentinelState && + conditionBits == _vm->_moonbase->_fowSentinelConditionBits) { + _vm->_moonbase->renderFOW(dst, dstPitch, dstType, cw, ch, flags); + x1 = 0; + y1 = 0; + width = rScreen.width(); + height = rScreen.height(); + } else { + drawWizImageEx(dst, dataPtr, mask, dstPitch, dstType, cw, ch, x1, y1, width, height, + state, &rScreen, flags, palPtr, transColor, _vm->_bytesPerPixel, xmapPtr, conditionBits); + } + + if (!(flags & kWIFBlitToMemBuffer) && dstResNum == 0) { + Common::Rect rImage(x1, y1, x1 + width, y1 + height); + if (rImage.intersects(rScreen)) { + rImage.clip(rScreen); + if (!(flags & kWIFBlitToFrontVideoBuffer) && (flags & (kWIFBlitToFrontVideoBuffer | kWIFMarkBufferDirty))) { + ++rImage.bottom; + _vm->markRectAsDirty(kMainVirtScreen, rImage); + } else { + _vm->restoreBackgroundHE(rImage); + } + } + } + + return dst; +} + +void Wiz::drawWizImageEx(uint8 *dst, uint8 *dataPtr, uint8 *maskPtr, int dstPitch, int dstType, + int dstw, int dsth, int srcx, int srcy, int srcw, int srch, int state, const Common::Rect *rect, + int flags, const uint8 *palPtr, int transColor, uint8 bitDepth, const uint8 *xmapPtr, uint32 conditionBits) { + uint8 *wizh = _vm->findWrappedBlock(MKTAG('W','I','Z','H'), dataPtr, state, 0); + assert(wizh); + uint32 comp = READ_LE_UINT32(wizh + 0x0); + uint32 width = READ_LE_UINT32(wizh + 0x4); + uint32 height = READ_LE_UINT32(wizh + 0x8); + debug(7, "wiz_header.comp = %d wiz_header.w = %d wiz_header.h = %d", comp, width, height); + + uint8 *wizd = _vm->findWrappedBlock(MKTAG('W','I','Z','D'), dataPtr, state, 0); + assert(wizd); + switch (comp) { case 0: - copyRawWizImage(dst, wizd, dstPitch, dstType, cw, ch, x1, y1, width, height, &rScreen, flags, palPtr, transColor, _vm->_bytesPerPixel); + copyRawWizImage(dst, wizd, dstPitch, dstType, dstw, dsth, srcx, srcy, srcw, srch, rect, flags, palPtr, transColor, bitDepth); break; case 1: - if (flags & 0x80) { + if (flags & kWIFZPlaneOn) { dst = _vm->getMaskBuffer(0, 0, 1); dstPitch /= _vm->_bytesPerPixel; - copyWizImageWithMask(dst, wizd, dstPitch, cw, ch, x1, y1, width, height, &rScreen, 0, 2); - } else if (flags & 0x100) { + copyWizImageWithMask(dst, wizd, dstPitch, dstw, dsth, srcx, srcy, srcw, srch, rect, 0, 2); + } else if (flags & kWIFZPlaneOff) { dst = _vm->getMaskBuffer(0, 0, 1); dstPitch /= _vm->_bytesPerPixel; - copyWizImageWithMask(dst, wizd, dstPitch, cw, ch, x1, y1, width, height, &rScreen, 0, 1); + copyWizImageWithMask(dst, wizd, dstPitch, dstw, dsth, srcx, srcy, srcw, srch, rect, 0, 1); } else { - copyWizImage(dst, wizd, dstPitch, dstType, cw, ch, x1, y1, width, height, &rScreen, flags, palPtr, xmapPtr, _vm->_bytesPerPixel); + copyWizImage(dst, wizd, dstPitch, dstType, dstw, dsth, srcx, srcy, srcw, srch, rect, flags, palPtr, xmapPtr, bitDepth); } break; #ifdef USE_RGB_COLOR case 2: - if (maskNum) { - copyMaskWizImage(dst, wizd, mask, dstPitch, dstType, cw, ch, x1, y1, width, height, &rScreen, flags, palPtr); + if (maskPtr) { + copyMaskWizImage(dst, wizd, maskPtr, dstPitch, dstType, dstw, dsth, srcx, srcy, srcw, srch, rect, flags, palPtr); } else { - copyRaw16BitWizImage(dst, wizd, dstPitch, dstType, cw, ch, x1, y1, width, height, &rScreen, flags, transColor); + copyRaw16BitWizImage(dst, wizd, dstPitch, dstType, dstw, dsth, srcx, srcy, srcw, srch, rect, flags, transColor); } break; case 4: - // TODO: Unknown image type + copyCompositeWizImage(dst, dataPtr, wizd, maskPtr, dstPitch, dstType, dstw, dsth, srcx, srcy, srcw, srch, state, rect, flags, palPtr, transColor, bitDepth, xmapPtr, conditionBits); break; case 5: - copy16BitWizImage(dst, wizd, dstPitch, dstType, cw, ch, x1, y1, width, height, &rScreen, flags, xmapPtr); + copy16BitWizImage(dst, wizd, dstPitch, dstType, dstw, dsth, srcx, srcy, srcw, srch, rect, flags, xmapPtr); + break; + case 9: + copy555WizImage(dst, wizd, dstPitch, dstType, dstw, dsth, srcx, srcy, rect, conditionBits); break; #endif default: - error("drawWizImage: Unhandled wiz compression type %d", comp); + error("drawWizImageEx: Unhandled wiz compression type %d", comp); } +} - if (!(flags & kWIFBlitToMemBuffer) && dstResNum == 0) { - Common::Rect rImage(x1, y1, x1 + width, y1 + height); - if (rImage.intersects(rScreen)) { - rImage.clip(rScreen); - if (!(flags & kWIFBlitToFrontVideoBuffer) && (flags & (kWIFBlitToFrontVideoBuffer | kWIFMarkBufferDirty))) { - ++rImage.bottom; - _vm->markRectAsDirty(kMainVirtScreen, rImage); - } else { - _vm->restoreBackgroundHE(rImage); +#ifdef USE_RGB_COLOR + +void Wiz::copyCompositeWizImage(uint8 *dst, uint8 *wizPtr, uint8 *compositeInfoBlockPtr, uint8 *maskPtr, int dstPitch, int dstType, + int dstw, int dsth, int srcx, int srcy, int srcw, int srch, int state, const Common::Rect *clipBox, + int flags, const uint8 *palPtr, int transColor, uint8 bitDepth, const uint8 *xmapPtr, uint32 conditionBits) { + + uint8 *nestedBlockHeader = _vm->heFindResource(MKTAG('N','E','S','T'), wizPtr); + assert(nestedBlockHeader); + + uint8 *nestedWizHeader = _vm->heFindResource(MKTAG('M','U','L','T'), nestedBlockHeader); + assert(nestedWizHeader); + + uint16 layerCount = READ_LE_UINT16(compositeInfoBlockPtr); + compositeInfoBlockPtr += 2; + + uint16 defaultSubConditionBits = (conditionBits & kWMSBReservedBits); + + conditionBits &= ~kWMSBReservedBits; + + for (uint layerCounter = 0; layerCounter < layerCount; layerCounter++) { + int cmdSize = READ_LE_UINT16(compositeInfoBlockPtr); + uint8 *cmdPtr = compositeInfoBlockPtr + 2; + + compositeInfoBlockPtr += (cmdSize + 2); + uint32 layerCmdDataBits = READ_LE_UINT32(cmdPtr); + cmdPtr += 4; + + uint32 subConditionBits; + + if (layerCmdDataBits & kWCFConditionBits) { + uint32 layerConditionBits = READ_LE_UINT32(cmdPtr); + cmdPtr += 4; + + subConditionBits = (layerConditionBits & kWMSBReservedBits); + layerConditionBits &= ~kWMSBReservedBits; + + if (subConditionBits == 0) + subConditionBits = defaultSubConditionBits; + + uint32 conditionType = (layerConditionBits & kWSPCCTBits); + layerConditionBits &= ~kWSPCCTBits; + + switch (conditionType) { + case kWSPCCTAnd: + if (layerConditionBits != (layerConditionBits & conditionBits)) + continue; + break; + + case kWSPCCTNot: + if (layerConditionBits & conditionBits) + continue; + break; + + case kWSPCCTOr: + default: + if (!(layerConditionBits & conditionBits)) + continue; + break; } + } else { + subConditionBits = defaultSubConditionBits; } + + uint16 subState; + if (layerCmdDataBits & kWCFSubState) { + subState = READ_LE_UINT16(cmdPtr); + cmdPtr += 2; + } else { + subState = 0; + } + + int16 xPos; + if (layerCmdDataBits & kWCFXDelta) { + xPos = (int16)READ_LE_UINT16(cmdPtr); + cmdPtr += 2; + } else { + xPos = 0; + } + + int16 yPos; + if (layerCmdDataBits & kWCFYDelta) { + yPos = (int16)READ_LE_UINT16(cmdPtr); + cmdPtr += 2; + } else { + yPos = 0; + } + + uint32 drawFlags; + if (layerCmdDataBits & kWCFDrawFlags) { + drawFlags = READ_LE_UINT32(cmdPtr); + cmdPtr += 4; + } else { + drawFlags = flags; + } + + uint srcw1, srch1; + if (drawFlags & (kWIFFlipX | kWIFFlipY)) { + uint8 *wizh = _vm->findWrappedBlock(MKTAG('W','I','Z','H'), wizPtr, subState, 0); + assert(wizh); + srcw1 = READ_LE_UINT32(wizh + 0x4); + srch1 = READ_LE_UINT32(wizh + 0x8); + } + + if (drawFlags & kWIFFlipX) + xPos = (srcw - (xPos + srcw1)); + + if (drawFlags & kWIFFlipY) + yPos = (srch - (yPos + srch1)); + + if (layerCmdDataBits & kWCFSubConditionBits) { + subConditionBits = READ_LE_UINT32(cmdPtr); + cmdPtr += 4; + } + + drawWizImageEx(dst, nestedWizHeader, maskPtr, dstPitch, dstType, dstw, dsth, srcx + xPos, srcy + yPos, srcw, srch, + subState, clipBox, drawFlags, palPtr, transColor, bitDepth, xmapPtr, subConditionBits); + } +} + +void Wiz::copy555WizImage(uint8 *dst, uint8 *wizd, int dstPitch, int dstType, + int dstw, int dsth, int srcx, int srcy, const Common::Rect *clipBox, uint32 conditionBits) { + + int rawROP = conditionBits & kWMSBRopMask; + int paramROP = (conditionBits & kWMSBReservedBits) >> kWMSBRopParamRShift; + + switch (rawROP) { + default: + case 1: + rawROP = 1; + // MMX_PREMUL_ALPHA_COPY + break; + + case 2: + //warning("T14: MMX_ADDITIVE"); + break; + + case 3: + warning("T14: MMX_SUBTRACTIVE"); + break; + + case 4: + warning("T14: MMX_CONSTANT_ALPHA"); + break; + + case 5: + //warning("T14: MMX_CHEAP_50_50"); + break; + + case 6: + warning("T14: COPY"); + break; + + case 7: + warning("T14: CHEAP_50_50"); + break; + } + + + uint32 compID = READ_LE_UINT32(wizd); + + if (compID == 0x12340102) { + _vm->_moonbase->blitT14WizImage(dst, dstw, dsth, dstPitch, clipBox, wizd, srcx, srcy, rawROP, paramROP); + } else if (compID == 0x12340802) { + warning("Distorion codec"); + } else if (compID == 0x12340902) { + error("Unsupported Distortion"); } - return dst; } +#endif + struct PolygonDrawData { struct PolygonArea { int32 xmin; @@ -1747,7 +1948,7 @@ void Wiz::captureWizPolygon(int resNum, int maskNum, int maskState, int id1, int assert(maskNum); const Common::Rect *r = NULL; - const uint8 *src = drawWizImage(maskNum, maskState, 0, 0, 0, 0, 0, 0, 0, r, kWIFBlitToMemBuffer, 0, 0); + const uint8 *src = drawWizImage(maskNum, maskState, 0, 0, 0, 0, 0, 0, 0, r, kWIFBlitToMemBuffer, 0, 0, 0); getWizImageDim(maskNum, maskState, srcw, srch); dstw = wp->bound.width(); @@ -1815,7 +2016,7 @@ void Wiz::drawWizPolygonTransform(int resNum, int state, Common::Point *wp, int debug(0, "drawWizPolygonTransform() unhandled flag 0x800000"); } - srcWizBuf = drawWizImage(resNum, state, 0, 0, 0, 0, 0, shadow, 0, r, flags, 0, _vm->getHEPaletteSlot(palette)); + srcWizBuf = drawWizImage(resNum, state, 0, 0, 0, 0, 0, shadow, 0, r, flags, 0, _vm->getHEPaletteSlot(palette), 0); } else { assert(_vm->_bytesPerPixel == 1); uint8 *dataPtr = _vm->getResourceAddress(rtImage, resNum); @@ -1826,7 +2027,7 @@ void Wiz::drawWizPolygonTransform(int resNum, int state, Common::Point *wp, int } } else { if (getWizImageData(resNum, state, 0) != 0) { - srcWizBuf = drawWizImage(resNum, state, 0, 0, 0, 0, 0, shadow, 0, r, kWIFBlitToMemBuffer, 0, _vm->getHEPaletteSlot(palette)); + srcWizBuf = drawWizImage(resNum, state, 0, 0, 0, 0, 0, shadow, 0, r, kWIFBlitToMemBuffer, 0, _vm->getHEPaletteSlot(palette), 0); } else { uint8 *dataPtr = _vm->getResourceAddress(rtImage, resNum); assert(dataPtr); @@ -2001,7 +2202,7 @@ void Wiz::flushWizBuffer() { drawWizPolygon(pwi->resNum, pwi->state, pwi->x1, pwi->flags, pwi->shadow, 0, pwi->palette); } else { const Common::Rect *r = NULL; - drawWizImage(pwi->resNum, pwi->state, 0, 0, pwi->x1, pwi->y1, pwi->zorder, pwi->shadow, pwi->field_390, r, pwi->flags, 0, _vm->getHEPaletteSlot(pwi->palette)); + drawWizImage(pwi->resNum, pwi->state, 0, 0, pwi->x1, pwi->y1, pwi->zorder, pwi->shadow, pwi->zbuffer, r, pwi->flags, 0, _vm->getHEPaletteSlot(pwi->palette), 0); } } _imagesNum = 0; @@ -2023,7 +2224,7 @@ void Wiz::loadWizCursor(int resId, int palette) { const Common::Rect *r = NULL; _cursorImage = true; - uint8 *cursor = drawWizImage(resId, 0, 0, 0, 0, 0, 0, 0, 0, r, kWIFBlitToMemBuffer, 0, _vm->getHEPaletteSlot(palette)); + uint8 *cursor = drawWizImage(resId, 0, 0, 0, 0, 0, 0, 0, 0, r, kWIFBlitToMemBuffer, 0, _vm->getHEPaletteSlot(palette), 0); _cursorImage = false; int32 cw, ch; @@ -2073,10 +2274,10 @@ void Wiz::displayWizComplexImage(const WizParameters *params) { if (params->processFlags & kWPFShadow) { shadow = params->img.shadow; } - int field_390 = 0; - if (params->processFlags & 0x200000) { - field_390 = params->img.field_390; - debug(0, "displayWizComplexImage() unhandled flag 0x200000"); + int zbuffer = 0; + if (params->processFlags & kWPFZBuffer) { + zbuffer = params->img.zbuffer; + debug(0, "displayWizComplexImage() unhandled flag kWPFZBuffer"); } const Common::Rect *r = NULL; if (params->processFlags & kWPFClipBox) { @@ -2104,19 +2305,19 @@ void Wiz::displayWizComplexImage(const WizParameters *params) { pwi->state = state; pwi->flags = flags; pwi->shadow = shadow; - pwi->field_390 = field_390; + pwi->zbuffer = zbuffer; pwi->palette = palette; ++_imagesNum; } else { if (sourceImage != 0) { - drawWizImage(params->sourceImage, 0, params->img.resNum, state, po_x, po_y, params->img.zorder, shadow, field_390, r, flags, dstResNum, _vm->getHEPaletteSlot(palette)); + drawWizImage(params->sourceImage, 0, params->img.resNum, state, po_x, po_y, params->img.zorder, shadow, zbuffer, r, flags, dstResNum, _vm->getHEPaletteSlot(palette), 0); } else if (params->processFlags & (kWPFScaled | kWPFRotate)) { drawWizComplexPolygon(params->img.resNum, state, po_x, po_y, shadow, rotationAngle, scale, r, flags, dstResNum, palette); } else { if (flags & kWIFIsPolygon) { drawWizPolygon(params->img.resNum, state, po_x, flags, shadow, dstResNum, palette); } else { - drawWizImage(params->img.resNum, state, 0, 0, po_x, po_y, params->img.zorder, shadow, field_390, r, flags, dstResNum, _vm->getHEPaletteSlot(palette)); + drawWizImage(params->img.resNum, state, 0, 0, po_x, po_y, params->img.zorder, shadow, zbuffer, r, flags, dstResNum, _vm->getHEPaletteSlot(palette), params->conditionBits); } } } @@ -2501,6 +2702,10 @@ void Wiz::processWizImage(const WizParameters *params) { void Wiz::getWizImageDim(int resNum, int state, int32 &w, int32 &h) { uint8 *dataPtr = _vm->getResourceAddress(rtImage, resNum); assert(dataPtr); + getWizImageDim(dataPtr, state, w, h); +} + +void Wiz::getWizImageDim(uint8 *dataPtr, int state, int32 &w, int32 &h) { uint8 *wizh = _vm->findWrappedBlock(MKTAG('W','I','Z','H'), dataPtr, state, 0); assert(wizh); w = READ_LE_UINT32(wizh + 0x4); @@ -2510,6 +2715,10 @@ void Wiz::getWizImageDim(int resNum, int state, int32 &w, int32 &h) { void Wiz::getWizImageSpot(int resId, int state, int32 &x, int32 &y) { uint8 *dataPtr = _vm->getResourceAddress(rtImage, resId); assert(dataPtr); + getWizImageSpot(dataPtr, state, x, y); +} + +void Wiz::getWizImageSpot(uint8 *dataPtr, int state, int32 &x, int32 &y) { uint8 *spotPtr = _vm->findWrappedBlock(MKTAG('S','P','O','T'), dataPtr, state, 0); if (spotPtr) { x = READ_LE_UINT32(spotPtr + 0); @@ -2547,6 +2756,11 @@ int Wiz::getWizImageData(int resNum, int state, int type) { int Wiz::getWizImageStates(int resNum) { const uint8 *dataPtr = _vm->getResourceAddress(rtImage, resNum); assert(dataPtr); + + return getWizImageStates(dataPtr); +} + +int Wiz::getWizImageStates(const uint8 *dataPtr) { if (READ_BE_UINT32(dataPtr) == MKTAG('M','U','L','T')) { const byte *offs, *wrap; @@ -2565,9 +2779,14 @@ int Wiz::getWizImageStates(int resNum) { } int Wiz::isWizPixelNonTransparent(int resNum, int state, int x, int y, int flags) { - int ret = 0; uint8 *data = _vm->getResourceAddress(rtImage, resNum); assert(data); + + return isWizPixelNonTransparent(data, state, x, y, flags); +} + +int Wiz::isWizPixelNonTransparent(uint8 *data, int state, int x, int y, int flags) { + int ret = 0; uint8 *wizh = _vm->findWrappedBlock(MKTAG('W','I','Z','H'), data, state, 0); assert(wizh); int c = READ_LE_UINT32(wizh + 0x0); @@ -2591,19 +2810,20 @@ int Wiz::isWizPixelNonTransparent(int resNum, int state, int x, int y, int flags } break; case 1: - ret = isWizPixelNonTransparent(wizd, x, y, w, h, 1); + ret = isPixelNonTransparent(wizd, x, y, w, h, 1); break; #ifdef USE_RGB_COLOR case 2: ret = getRawWizPixelColor(wizd, x, y, w, h, 2, _vm->VAR(_vm->VAR_WIZ_TCOLOR)) != _vm->VAR(_vm->VAR_WIZ_TCOLOR) ? 1 : 0; break; - case 4: - // TODO: Unknown image type - ret = 1; - debug(0, "isWizPixelNonTransparent: Unhandled wiz compression type %d", c); + case 4: { + uint16 color = 0xffff; + copyCompositeWizImage((byte *)&color, data, wizd, 0, 2, kDstMemory, 1, 1, -x, -y, w, h, state, 0, 0, 0, 0, 2, 0, 0); + ret = color != 0xffff; break; + } case 5: - ret = isWizPixelNonTransparent(wizd, x, y, w, h, 2); + ret = isPixelNonTransparent(wizd, x, y, w, h, 2); break; #endif default: @@ -2641,8 +2861,7 @@ uint16 Wiz::getWizPixelColor(int resNum, int state, int x, int y) { color = getRawWizPixelColor(wizd, x, y, w, h, 2, _vm->VAR(_vm->VAR_WIZ_TCOLOR)); break; case 4: - // TODO: Unknown image type - debug(0, "getWizPixelColor: Unhandled wiz compression type %d", c); + copyCompositeWizImage((byte *)&color, data, wizd, 0, 2, kDstMemory, 1, 1, -x, -y, w, h, state, 0, 0, 0, 0, 2, 0, 0); break; case 5: color = getWizPixelColor(wizd, x, y, w, h, 2, _vm->VAR(_vm->VAR_WIZ_TCOLOR)); diff --git a/engines/scumm/he/wiz_he.h b/engines/scumm/he/wiz_he.h index 8db438a074..692ad76db5 100644 --- a/engines/scumm/he/wiz_he.h +++ b/engines/scumm/he/wiz_he.h @@ -43,10 +43,32 @@ struct WizImage { int state; int flags; int shadow; - int field_390; + int zbuffer; int palette; }; +struct FontProperties { + byte string[4096]; + byte fontName[4096]; + int fgColor; + int bgColor; + int style; + int size; + int xPos; + int yPos; +}; + +struct EllipseProperties { + int px; + int py; + int qx; + int qy; + int kx; + int ky; + int lod; + int color; +}; + struct WizParameters { int field_0; byte filename[260]; @@ -77,27 +99,13 @@ struct WizParameters { int remapNum; int dstResNum; uint16 fillColor; - byte string1[4096]; - byte string2[4096]; - int field_2399; - int field_239D; - int field_23A1; - int field_23A5; - int field_23A9; - int field_23AD; - int field_23B1; - int field_23B5; - int field_23B9; - int field_23BD; - int field_23C1; - int field_23C5; - int field_23C9; - int field_23CD; + FontProperties fontProperties; + EllipseProperties ellipseProperties; Common::Rect box2; - int field_23DE; + int blendFlags; int spriteId; int spriteGroup; - int field_23EA; + int conditionBits; WizImage img; }; @@ -109,6 +117,9 @@ enum WizImageFlags { kWIFMarkBufferDirty = 0x10, kWIFBlitToMemBuffer = 0x20, kWIFIsPolygon = 0x40, + kWIFZPlaneOn = 0x80, + kWIFZPlaneOff = 0x100, + kWIFUseShadow = 0x200, kWIFFlipX = 0x400, kWIFFlipY = 0x800 }; @@ -130,7 +141,31 @@ enum WizProcessFlags { kWPFFillColor = 0x20000, kWPFClipBox2 = 0x40000, kWPFMaskImg = 0x80000, - kWPFParams = 0x100000 + kWPFParams = 0x100000, + kWPFZBuffer = 0x200000 +}; + +enum WizCompositeFlags { + kWCFConditionBits = 0x01, + kWCFSubState = 0x02, + kWCFXDelta = 0x04, + kWCFYDelta = 0x08, + kWCFDrawFlags = 0x10, + kWCFSubConditionBits = 0x20 +}; + +enum WizSpcConditionTypes { + kWSPCCTBits = 0xc0000000, + kWSPCCTOr = 0x00000000, + kWSPCCTAnd = 0x40000000, + kWSPCCTNot = 0x80000000 +}; + +enum WizMoonSystemBits { + kWMSBRopMask = 0xff, + kWMSBRopParamMask = 0xff00, + kWMSBReservedBits = (kWMSBRopMask | kWMSBRopParamMask), + kWMSBRopParamRShift = 8 }; enum { @@ -185,14 +220,19 @@ public: void remapWizImagePal(const WizParameters *params); void getWizImageDim(int resNum, int state, int32 &w, int32 &h); + void getWizImageDim(uint8 *dataPtr, int state, int32 &w, int32 &h); int getWizImageStates(int resnum); + int getWizImageStates(const uint8 *ptr); int isWizPixelNonTransparent(int resnum, int state, int x, int y, int flags); + int isWizPixelNonTransparent(uint8 *data, int state, int x, int y, int flags); + int isPixelNonTransparent(const uint8 *data, int x, int y, int w, int h, uint8 bitdepth); uint16 getWizPixelColor(int resnum, int state, int x, int y); int getWizImageData(int resNum, int state, int type); void flushWizBuffer(); void getWizImageSpot(int resId, int state, int32 &x, int32 &y); + void getWizImageSpot(uint8 *data, int state, int32 &x, int32 &y); void loadWizCursor(int resId, int palette); void captureWizImage(int resNum, const Common::Rect& r, bool frontBuffer, int compType); @@ -202,7 +242,8 @@ public: void displayWizImage(WizImage *pwi); void processWizImage(const WizParameters *params); - uint8 *drawWizImage(int resNum, int state, int maskNum, int maskState, int x1, int y1, int zorder, int shadow, int field_390, const Common::Rect *clipBox, int flags, int dstResNum, const uint8 *palPtr); + uint8 *drawWizImage(int resNum, int state, int maskNum, int maskState, int x1, int y1, int zorder, int shadow, int zbuffer, const Common::Rect *clipBox, int flags, int dstResNum, const uint8 *palPtr, uint32 conditionBits); + void drawWizImageEx(uint8 *dst, uint8 *src, uint8 *mask, int dstPitch, int dstType, int dstw, int dsth, int srcx, int srcy, int srcw, int srch, int state, const Common::Rect *rect, int flags, const uint8 *palPtr, int transColor, uint8 bitDepth, const uint8 *xmapPtr, uint32 conditionBits); void drawWizPolygon(int resNum, int state, int id, int flags, int shadow, int dstResNum, int palette); void drawWizComplexPolygon(int resNum, int state, int po_x, int po_y, int shadow, int angle, int zoom, const Common::Rect *r, int flags, int dstResNum, int palette); void drawWizPolygonTransform(int resNum, int state, Common::Point *wp, int flags, int shadow, int dstResNum, int palette); @@ -210,6 +251,12 @@ public: #ifdef USE_RGB_COLOR static void copyMaskWizImage(uint8 *dst, const uint8 *src, const uint8 *mask, int dstPitch, int dstType, int dstw, int dsth, int srcx, int srcy, int srcw, int srch, const Common::Rect *rect, int flags, const uint8 *palPtr); + + void copyCompositeWizImage(uint8 *dst, uint8 *wizPtr, uint8 *wizd, uint8 *maskPtr, int dstPitch, int dstType, + int dstw, int dsth, int srcx, int srcy, int srcw, int srch, int state, const Common::Rect *clipBox, + int flags, const uint8 *palPtr, int transColor, uint8 bitDepth, const uint8 *xmapPtr, uint32 conditionBits); + void copy555WizImage(uint8 *dst, uint8 *wizd, int dstPitch, int dstType, + int dstw, int dsth, int srcx, int srcy, const Common::Rect *clipBox, uint32 conditionBits); #endif static void copyAuxImage(uint8 *dst1, uint8 *dst2, const uint8 *src, int dstw, int dsth, int srcx, int srcy, int srcw, int srch, uint8 bitdepth); @@ -230,7 +277,6 @@ public: template<int type> static void write8BitColor(uint8 *dst, const uint8 *src, int dstType, const uint8 *palPtr, const uint8 *xmapPtr, uint8 bitDepth); static void writeColor(uint8 *dstPtr, int dstType, uint16 color); - int isWizPixelNonTransparent(const uint8 *data, int x, int y, int w, int h, uint8 bitdepth); uint16 getWizPixelColor(const uint8 *data, int x, int y, int w, int h, uint8 bitDepth, uint16 color); uint16 getRawWizPixelColor(const uint8 *data, int x, int y, int w, int h, uint8 bitDepth, uint16 color); void computeWizHistogram(uint32 *histogram, const uint8 *data, const Common::Rect& rCapt); diff --git a/engines/scumm/imuse_digi/dimuse.h b/engines/scumm/imuse_digi/dimuse.h index f04c2f7826..11b1ea678b 100644 --- a/engines/scumm/imuse_digi/dimuse.h +++ b/engines/scumm/imuse_digi/dimuse.h @@ -34,8 +34,10 @@ #include "scumm/music.h" #include "scumm/sound.h" -#include "audio/mixer.h" -#include "audio/audiostream.h" +namespace Audio { +class AudioStream; +class Mixer; +} namespace Scumm { diff --git a/engines/scumm/imuse_digi/dimuse_sndmgr.cpp b/engines/scumm/imuse_digi/dimuse_sndmgr.cpp index 78d05c2051..b2ff3aadbb 100644 --- a/engines/scumm/imuse_digi/dimuse_sndmgr.cpp +++ b/engines/scumm/imuse_digi/dimuse_sndmgr.cpp @@ -22,8 +22,8 @@ #include "common/scummsys.h" -#include "common/util.h" +#include "audio/audiostream.h" #include "audio/decoders/flac.h" #include "audio/decoders/voc.h" #include "audio/decoders/vorbis.h" @@ -31,8 +31,6 @@ #include "scumm/resource.h" #include "scumm/scumm.h" -#include "scumm/util.h" -#include "scumm/imuse_digi/dimuse.h" #include "scumm/imuse_digi/dimuse_bndmgr.h" #include "scumm/imuse_digi/dimuse_codecs.h" #include "scumm/imuse_digi/dimuse_sndmgr.h" diff --git a/engines/scumm/imuse_digi/dimuse_sndmgr.h b/engines/scumm/imuse_digi/dimuse_sndmgr.h index aebf4d7f11..2f91405588 100644 --- a/engines/scumm/imuse_digi/dimuse_sndmgr.h +++ b/engines/scumm/imuse_digi/dimuse_sndmgr.h @@ -25,13 +25,20 @@ #include "common/scummsys.h" -#include "audio/audiostream.h" -#include "scumm/imuse_digi/dimuse_bndmgr.h" + +namespace Audio { +class SeekableAudioStream; +} + +namespace Common { +class SeekableReadStream; +} namespace Scumm { class ScummEngine; class BundleMgr; +class BundleDirCache; class ImuseDigiSndMgr { public: diff --git a/engines/scumm/imuse_digi/dimuse_track.h b/engines/scumm/imuse_digi/dimuse_track.h index 7e360268e5..a007903139 100644 --- a/engines/scumm/imuse_digi/dimuse_track.h +++ b/engines/scumm/imuse_digi/dimuse_track.h @@ -24,6 +24,11 @@ #define SCUMM_IMUSE_DIGI_TRACK_H #include "common/scummsys.h" +#include "audio/mixer.h" + +namespace Audio { +class QueuingAudioStream; +} namespace Scumm { diff --git a/engines/scumm/input.cpp b/engines/scumm/input.cpp index 1234eda3cc..12047635a0 100644 --- a/engines/scumm/input.cpp +++ b/engines/scumm/input.cpp @@ -25,9 +25,6 @@ #include "common/system.h" #include "common/translation.h" -#include "gui/message.h" -#include "gui/gui-manager.h" - #include "scumm/debugger.h" #include "scumm/dialogs.h" #include "scumm/insane/insane.h" diff --git a/engines/scumm/midiparser_ro.cpp b/engines/scumm/midiparser_ro.cpp index 35eb9f7eb7..5fc1ae41ab 100644 --- a/engines/scumm/midiparser_ro.cpp +++ b/engines/scumm/midiparser_ro.cpp @@ -22,9 +22,7 @@ #include "audio/midiparser.h" -#include "audio/mididrv.h" #include "common/textconsole.h" -#include "common/util.h" namespace Scumm { diff --git a/engines/scumm/module.mk b/engines/scumm/module.mk index 416a8f7ef9..c56ef7e5f4 100644 --- a/engines/scumm/module.mk +++ b/engines/scumm/module.mk @@ -136,9 +136,11 @@ MODULE_OBJS += \ he/logic/basketball.o \ he/logic/football.o \ he/logic/funshop.o \ - he/logic/moonbase.o \ + he/logic/moonbase_logic.o \ he/logic/puttrace.o \ - he/logic/soccer.o + he/logic/soccer.o \ + he/moonbase/moonbase.o \ + he/moonbase/moonbase_fow.o endif # This module can be built as a plugin diff --git a/engines/scumm/players/player_ad.h b/engines/scumm/players/player_ad.h index 9cd1a06261..1e665e82d5 100644 --- a/engines/scumm/players/player_ad.h +++ b/engines/scumm/players/player_ad.h @@ -25,8 +25,6 @@ #include "scumm/music.h" -#include "audio/audiostream.h" - #include "common/mutex.h" namespace OPL { @@ -36,6 +34,7 @@ class OPL; namespace Scumm { class ScummEngine; +class Serializer; /** * Sound output for v3/v4 AdLib data. diff --git a/engines/scumm/players/player_apple2.h b/engines/scumm/players/player_apple2.h index 8efb951f20..2e897d58f4 100644 --- a/engines/scumm/players/player_apple2.h +++ b/engines/scumm/players/player_apple2.h @@ -25,11 +25,9 @@ #include "common/mutex.h" #include "common/scummsys.h" -#include "common/memstream.h" #include "scumm/music.h" #include "audio/audiostream.h" #include "audio/mixer.h" -#include "audio/softsynth/sid.h" namespace Scumm { diff --git a/engines/scumm/players/player_mac.cpp b/engines/scumm/players/player_mac.cpp index 634fd2de2b..87406f4e34 100644 --- a/engines/scumm/players/player_mac.cpp +++ b/engines/scumm/players/player_mac.cpp @@ -22,7 +22,6 @@ #include "common/macresman.h" #include "engines/engine.h" -#include "gui/message.h" #include "scumm/players/player_mac.h" #include "scumm/resource.h" #include "scumm/scumm.h" diff --git a/engines/scumm/players/player_v2cms.cpp b/engines/scumm/players/player_v2cms.cpp index 08321932c3..1a1cd1ed8c 100644 --- a/engines/scumm/players/player_v2cms.cpp +++ b/engines/scumm/players/player_v2cms.cpp @@ -22,7 +22,6 @@ #include "scumm/players/player_v2cms.h" #include "scumm/scumm.h" -#include "audio/mididrv.h" #include "audio/mixer.h" #include "audio/softsynth/cms.h" diff --git a/engines/scumm/players/player_v3m.h b/engines/scumm/players/player_v3m.h index 81dda801fc..645f1fb1c9 100644 --- a/engines/scumm/players/player_v3m.h +++ b/engines/scumm/players/player_v3m.h @@ -28,10 +28,10 @@ #include "common/mutex.h" #include "scumm/music.h" #include "scumm/players/player_mac.h" -#include "audio/audiostream.h" -#include "audio/mixer.h" +namespace Audio { class Mixer; +} namespace Scumm { diff --git a/engines/scumm/players/player_v5m.h b/engines/scumm/players/player_v5m.h index f60a3f9346..152aa1541a 100644 --- a/engines/scumm/players/player_v5m.h +++ b/engines/scumm/players/player_v5m.h @@ -28,10 +28,10 @@ #include "common/mutex.h" #include "scumm/music.h" #include "scumm/players/player_mac.h" -#include "audio/audiostream.h" -#include "audio/mixer.h" +namespace Audio { class Mixer; +} namespace Scumm { diff --git a/engines/scumm/saveload.cpp b/engines/scumm/saveload.cpp index f3df24ff51..40dc83c7f3 100644 --- a/engines/scumm/saveload.cpp +++ b/engines/scumm/saveload.cpp @@ -41,8 +41,6 @@ #include "scumm/he/sprite_he.h" #include "scumm/verbs.h" -#include "audio/mixer.h" - #include "backends/audiocd/audiocd.h" #include "graphics/thumbnail.h" diff --git a/engines/scumm/scumm-md5.h b/engines/scumm/scumm-md5.h index 41c59cb521..68e4887b00 100644 --- a/engines/scumm/scumm-md5.h +++ b/engines/scumm/scumm-md5.h @@ -1,5 +1,5 @@ /* - This file was generated by the md5table tool on Tue Jan 12 23:47:54 2016 + This file was generated by the md5table tool on Sat Apr 30 14:24:41 2016 DO NOT EDIT MANUALLY! */ @@ -189,6 +189,7 @@ static const MD5Table md5table[] = { { "3b832f4a90740bf22e9b8ed42ca0128c", "freddi4", "HE 99", "", -1, Common::EN_GRB, Common::kPlatformUnknown }, { "3c4c471342bd95505a42334367d8f127", "puttmoon", "HE 70", "", 12161, Common::RU_RUS, Common::kPlatformWindows }, { "3cce1913a3bc586b51a75c3892ff18dd", "indy3", "VGA", "VGA", -1, Common::RU_RUS, Common::kPlatformDOS }, + { "3cf4b6ff78f735b671d8ccc2bc110b15", "maniac", "V2", "V2", -1, Common::ES_ESP, Common::kPlatformAmiga }, { "3d219e7546039543307b55a91282bf18", "funpack", "", "", -1, Common::EN_ANY, Common::kPlatformDOS }, { "3de99ef0523f8ca7958faa3afccd035a", "spyfox", "HE 100", "Updated", -1, Common::EN_USA, Common::kPlatformUnknown }, { "3df6ead57930488bc61e6e41901d0e97", "fbear", "HE 62", "", -1, Common::EN_ANY, Common::kPlatformMacintosh }, @@ -531,6 +532,7 @@ static const MD5Table md5table[] = { { "bf8b52fdd9a69c67f34e8e9fec72661c", "farm", "HE 71", "Demo", -1, Common::EN_ANY, Common::kPlatformWindows }, { "bfdf584b01503f0762baded581f6a0a2", "SoccerMLS", "", "", -1, Common::EN_ANY, Common::kPlatformWindows }, { "c0039ad982999c92d0de81910d640fa0", "freddi", "HE 71", "", 26159, Common::NL_NLD, Common::kPlatformWindows }, + { "c0c9de81fb965e6cbe77f6e5631ca705", "monkey", "SE Talkie", "Unofficial SE Talkie v1.02", 9135, Common::EN_ANY, Common::kPlatformDOS }, { "c13225cb1bbd3bc9fe578301696d8021", "monkey", "SEGA", "", -1, Common::EN_ANY, Common::kPlatformSegaCD }, { "c20848f53c2d48bfacdc840993843765", "freddi2", "HE 80", "Demo", -1, Common::NL_NLD, Common::kPlatformUnknown }, { "c225bec1b6c0798a2b8c89ac226dc793", "pajama", "HE 101", "", -1, Common::EN_ANY, Common::kPlatformWii }, @@ -671,6 +673,7 @@ static const MD5Table md5table[] = { { "f3c5d9bf3f091bd1f18dc1013fba5396", "atlantis", "Steam", "Steam", 638976, Common::EN_ANY, Common::kPlatformWindows }, { "f3d55aea441e260e9e9c7d2a187097e0", "puttzoo", "", "Demo", 14337, Common::EN_ANY, Common::kPlatformWindows }, { "f40a7f495f59188ca57a9d1d50301bb6", "puttputt", "HE 60", "Demo", -1, Common::EN_ANY, Common::kPlatformMacintosh }, + { "f4d20ab4ce19743a646cb48bd93aee72", "monkey2", "SE Talkie", "Unofficial SE Talkie v0.2", 10835, Common::EN_ANY, Common::kPlatformDOS }, { "f5228b0cc1c19e6ea8268ba2eeb61f60", "freddi", "HE 73", "Demo", -1, Common::FR_FRA, Common::kPlatformWindows }, { "f73883f13b5a302749a5bad31d909780", "tentacle", "", "CD", -1, Common::DE_DEU, Common::kPlatformMacintosh }, { "f7635a0e2ab82c9a0f9ace5f232a488f", "catalog", "HE 72", "Demo", -1, Common::EN_ANY, Common::kPlatformWindows }, diff --git a/engines/scumm/scumm.cpp b/engines/scumm/scumm.cpp index d9148ed300..1f8a85b8c3 100644 --- a/engines/scumm/scumm.cpp +++ b/engines/scumm/scumm.cpp @@ -30,7 +30,6 @@ #include "engines/util.h" #include "gui/message.h" -#include "gui/gui-manager.h" #include "graphics/cursorman.h" @@ -67,6 +66,7 @@ #include "scumm/players/player_v5m.h" #include "scumm/resource.h" #include "scumm/he/resource_he.h" +#include "scumm/he/moonbase/moonbase.h" #include "scumm/scumm_v0.h" #include "scumm/scumm_v8.h" #include "scumm/sound.h" @@ -734,7 +734,7 @@ ScummEngine_v0::ScummEngine_v0(OSystem *syst, const DetectorResult &dr) VAR_ACTIVE_VERB = 0xFF; if (strcmp(dr.fp.pattern, "maniacdemo.d64") == 0 ) - _game.features |= GF_DEMO; + _game.features |= GF_DEMO; } ScummEngine_v6::ScummEngine_v6(OSystem *syst, const DetectorResult &dr) @@ -833,9 +833,16 @@ ScummEngine_v71he::ScummEngine_v71he(OSystem *syst, const DetectorResult &dr) _skipProcessActors = 0; VAR_WIZ_TCOLOR = 0xFF; + + /* Moonbase stuff */ + _moonbase = 0; + + if (_game.id == GID_MOONBASE) + _moonbase = new Moonbase(this); } ScummEngine_v71he::~ScummEngine_v71he() { + delete _moonbase; delete _wiz; } @@ -875,7 +882,7 @@ ScummEngine_v90he::ScummEngine_v90he(OSystem *syst, const DetectorResult &dr) memset(_videoParams.filename, 0, sizeof(_videoParams.filename)); _videoParams.status = 0; _videoParams.flags = 0; - _videoParams.unk2 = 0; + _videoParams.number = 0; _videoParams.wizResNum = 0; VAR_NUM_SPRITE_GROUPS = 0xFF; diff --git a/engines/scumm/smush/smush_mixer.cpp b/engines/scumm/smush/smush_mixer.cpp index 42e8f645be..445186d62b 100644 --- a/engines/scumm/smush/smush_mixer.cpp +++ b/engines/scumm/smush/smush_mixer.cpp @@ -21,14 +21,11 @@ */ -#include "common/util.h" - #include "scumm/smush/smush_mixer.h" #include "scumm/smush/channel.h" #include "scumm/scumm.h" -#include "scumm/sound.h" -#include "scumm/imuse/imuse.h" +#include "audio/audiostream.h" #include "audio/mixer.h" #include "audio/decoders/raw.h" diff --git a/engines/scumm/smush/smush_mixer.h b/engines/scumm/smush/smush_mixer.h index 18ec7f96fb..1bd6adac16 100644 --- a/engines/scumm/smush/smush_mixer.h +++ b/engines/scumm/smush/smush_mixer.h @@ -28,6 +28,10 @@ #include "common/mutex.h" #include "scumm/sound.h" +namespace Audio { +class QueuingAudioStream; +} + namespace Scumm { class SmushChannel; diff --git a/engines/scumm/smush/smush_player.cpp b/engines/scumm/smush/smush_player.cpp index 05c7ff2d9a..2ca2579b54 100644 --- a/engines/scumm/smush/smush_player.cpp +++ b/engines/scumm/smush/smush_player.cpp @@ -20,8 +20,6 @@ * */ -#include "engines/engine.h" - #include "common/config-manager.h" #include "common/file.h" #include "common/system.h" @@ -30,14 +28,11 @@ #include "graphics/cursorman.h" #include "graphics/palette.h" -#include "scumm/bomp.h" #include "scumm/file.h" #include "scumm/imuse_digi/dimuse.h" -#include "scumm/imuse/imuse.h" #include "scumm/scumm.h" #include "scumm/scumm_v7.h" #include "scumm/sound.h" -#include "scumm/util.h" #include "scumm/smush/channel.h" #include "scumm/smush/codec37.h" #include "scumm/smush/codec47.h" @@ -47,6 +42,7 @@ #include "scumm/insane/insane.h" +#include "audio/audiostream.h" #include "audio/mixer.h" #include "audio/decoders/mp3.h" #include "audio/decoders/raw.h" diff --git a/engines/scumm/smush/smush_player.h b/engines/scumm/smush/smush_player.h index 81c498a516..b0d6e6a9f0 100644 --- a/engines/scumm/smush/smush_player.h +++ b/engines/scumm/smush/smush_player.h @@ -26,6 +26,10 @@ #include "common/util.h" #include "scumm/sound.h" +namespace Audio { +class QueuingAudioStream; +} + namespace Scumm { class ScummEngine_v7; diff --git a/engines/scumm/sound.cpp b/engines/scumm/sound.cpp index 404bdd022c..f66452e99c 100644 --- a/engines/scumm/sound.cpp +++ b/engines/scumm/sound.cpp @@ -35,9 +35,9 @@ #include "scumm/resource.h" #include "scumm/scumm.h" #include "scumm/sound.h" -#include "scumm/util.h" -#include "audio/decoders/adpcm.h" +#include "audio/audiostream.h" +#include "audio/timestamp.h" #include "audio/decoders/flac.h" #include "audio/mididrv.h" #include "audio/mixer.h" @@ -45,7 +45,6 @@ #include "audio/decoders/raw.h" #include "audio/decoders/voc.h" #include "audio/decoders/vorbis.h" -#include "audio/decoders/wave.h" namespace Scumm { diff --git a/engines/scumm/sound.h b/engines/scumm/sound.h index a479ad5731..8c11c7b5b2 100644 --- a/engines/scumm/sound.h +++ b/engines/scumm/sound.h @@ -24,23 +24,17 @@ #define SCUMM_SOUND_H #include "common/scummsys.h" -#include "audio/audiostream.h" +#include "common/str.h" #include "audio/mididrv.h" #include "audio/mixer.h" #include "backends/audiocd/audiocd.h" #include "scumm/saveload.h" -namespace Audio { -class Mixer; -} - namespace Scumm { class ScummEngine; -class BaseScummFile; struct MP3OffsetTable; -struct SaveLoadEntry; enum { kTalkSoundID = 10000 diff --git a/engines/sherlock/debugger.cpp b/engines/sherlock/debugger.cpp index 39f8da3806..55243c4bc7 100644 --- a/engines/sherlock/debugger.cpp +++ b/engines/sherlock/debugger.cpp @@ -26,9 +26,6 @@ #include "sherlock/scalpel/scalpel.h" #include "sherlock/scalpel/scalpel_debugger.h" #include "sherlock/tattoo/tattoo_debugger.h" -#include "audio/mixer.h" -#include "audio/decoders/aiff.h" -#include "audio/decoders/wave.h" #include "common/str-array.h" namespace Sherlock { diff --git a/engines/sherlock/music.cpp b/engines/sherlock/music.cpp index 5ea3318bd7..c52c30191a 100644 --- a/engines/sherlock/music.cpp +++ b/engines/sherlock/music.cpp @@ -26,6 +26,7 @@ #include "sherlock/sherlock.h" #include "sherlock/music.h" #include "sherlock/scalpel/drivers/mididriver.h" +#include "audio/audiostream.h" // for Miles Audio (Sherlock Holmes 2) #include "audio/miles.h" // for 3DO digital music diff --git a/engines/sherlock/music.h b/engines/sherlock/music.h index 186e2aa2dc..b1eba1d889 100644 --- a/engines/sherlock/music.h +++ b/engines/sherlock/music.h @@ -23,12 +23,9 @@ #ifndef SHERLOCK_MUSIC_H #define SHERLOCK_MUSIC_H -#include "audio/midiplayer.h" #include "audio/midiparser.h" -//#include "audio/mididrv.h" -#include "sherlock/scalpel/drivers/mididriver.h" +#include "audio/mididrv.h" // for 3DO digital music -#include "audio/audiostream.h" #include "audio/mixer.h" #include "common/mutex.h" #include "common/str-array.h" diff --git a/engines/sherlock/scalpel/3do/movie_decoder.cpp b/engines/sherlock/scalpel/3do/movie_decoder.cpp index da4d08ca47..da0d16c145 100644 --- a/engines/sherlock/scalpel/3do/movie_decoder.cpp +++ b/engines/sherlock/scalpel/3do/movie_decoder.cpp @@ -25,7 +25,6 @@ #include "common/textconsole.h" #include "audio/audiostream.h" -#include "audio/decoders/raw.h" #include "audio/decoders/3do.h" #include "sherlock/scalpel/3do/movie_decoder.h" diff --git a/engines/sherlock/scalpel/drivers/adlib.cpp b/engines/sherlock/scalpel/drivers/adlib.cpp index 29a39f0c39..3d29d0c5ed 100644 --- a/engines/sherlock/scalpel/drivers/adlib.cpp +++ b/engines/sherlock/scalpel/drivers/adlib.cpp @@ -21,14 +21,12 @@ */ #include "sherlock/sherlock.h" -#include "sherlock/scalpel/drivers/mididriver.h" -#include "common/file.h" #include "common/system.h" #include "common/textconsole.h" #include "audio/fmopl.h" -#include "audio/softsynth/emumidi.h" +#include "audio/mididrv.h" namespace Sherlock { diff --git a/engines/sherlock/scalpel/scalpel_debugger.cpp b/engines/sherlock/scalpel/scalpel_debugger.cpp index 1495c76b43..02b39ade9b 100644 --- a/engines/sherlock/scalpel/scalpel_debugger.cpp +++ b/engines/sherlock/scalpel/scalpel_debugger.cpp @@ -22,10 +22,9 @@ #include "sherlock/scalpel/scalpel_debugger.h" #include "sherlock/sherlock.h" +#include "audio/audiostream.h" #include "audio/mixer.h" -#include "audio/decoders/3do.h" #include "audio/decoders/aiff.h" -#include "audio/decoders/wave.h" namespace Sherlock { diff --git a/engines/sherlock/scalpel/scalpel_journal.cpp b/engines/sherlock/scalpel/scalpel_journal.cpp index d6f8021e5b..151d986d81 100644 --- a/engines/sherlock/scalpel/scalpel_journal.cpp +++ b/engines/sherlock/scalpel/scalpel_journal.cpp @@ -485,11 +485,6 @@ int ScalpelJournal::getSearchString(bool printError) { screen.makeField(Common::Rect(12, 185, 307, 196)); - screen.fillRect(Common::Rect(12, 185, 307, 186), BUTTON_BOTTOM); - screen.vLine(12, 185, 195, BUTTON_BOTTOM); - screen.hLine(13, 195, 306, BUTTON_TOP); - screen.hLine(306, 186, 195, BUTTON_TOP); - if (printError) { screen.gPrint(Common::Point((SHERLOCK_SCREEN_WIDTH - screen.stringWidth(_fixedTextSearchNotFound)) / 2, 185), INV_FOREGROUND, "%s", _fixedTextSearchNotFound.c_str()); diff --git a/engines/sherlock/sound.h b/engines/sherlock/sound.h index 0a0ff83d1f..a82aaf6730 100644 --- a/engines/sherlock/sound.h +++ b/engines/sherlock/sound.h @@ -25,11 +25,8 @@ #include "common/scummsys.h" #include "common/str.h" -#include "audio/audiostream.h" #include "audio/mixer.h" #include "access/files.h" -#include "audio/midiplayer.h" -#include "audio/midiparser.h" namespace Sherlock { diff --git a/engines/sherlock/talk.cpp b/engines/sherlock/talk.cpp index b543472513..3c6bf44837 100644 --- a/engines/sherlock/talk.cpp +++ b/engines/sherlock/talk.cpp @@ -28,9 +28,11 @@ #include "sherlock/scalpel/scalpel_talk.h" #include "sherlock/scalpel/scalpel_user_interface.h" #include "sherlock/tattoo/tattoo.h" +#include "sherlock/tattoo/tattoo_fixed_text.h" #include "sherlock/tattoo/tattoo_people.h" #include "sherlock/tattoo/tattoo_scene.h" #include "sherlock/tattoo/tattoo_talk.h" +#include "sherlock/tattoo/tattoo_user_interface.h" namespace Sherlock { @@ -306,8 +308,14 @@ void Talk::talkTo(const Common::String filename) { if (_scriptMoreFlag && _scriptSelect != 100) select = _scriptSelect; - if (select == -1) + if (select == -1) { + if (IS_ROSE_TATTOO) { + static_cast<Tattoo::TattooUserInterface *>(&ui)->putMessage( + "%s", _vm->_fixedText->getText(Tattoo::kFixedText_NoEffect)); + return; + } error("Couldn't find statement to display"); + } // Add the statement into the journal and talk history if (_talkTo != -1 && !_talkHistory[_converseNum][select]) diff --git a/engines/sherlock/tattoo/tattoo_fixed_text.h b/engines/sherlock/tattoo/tattoo_fixed_text.h index 7dbe13bbb3..eb636cdada 100644 --- a/engines/sherlock/tattoo/tattoo_fixed_text.h +++ b/engines/sherlock/tattoo/tattoo_fixed_text.h @@ -233,7 +233,7 @@ public: virtual const Common::String getActionMessage(FixedTextActionId actionId, int messageIndex); }; -} // End of namespace Scalpel +} // End of namespace Tattoo } // End of namespace Sherlock diff --git a/engines/sherlock/tattoo/tattoo_journal.cpp b/engines/sherlock/tattoo/tattoo_journal.cpp index 918887f320..4d4f37f8d5 100644 --- a/engines/sherlock/tattoo/tattoo_journal.cpp +++ b/engines/sherlock/tattoo/tattoo_journal.cpp @@ -50,7 +50,7 @@ void TattooJournal::show() { Screen &screen = *_vm->_screen; TattooUserInterface &ui = *(TattooUserInterface *)_vm->_ui; byte palette[PALETTE_SIZE]; - + Common::Point oldScroll = screen._currentScroll; screen._currentScroll = Common::Point(0, 0); @@ -66,7 +66,7 @@ void TattooJournal::show() { // Set screen to black, and set background screen._backBuffer1.SHblitFrom((*_journalImages)[0], Common::Point(0, 0)); - screen.empty(); + screen.clear(); screen.setPalette(palette); if (_journal.empty()) { @@ -87,12 +87,12 @@ void TattooJournal::show() { handleKeyboardEvents(); highlightJournalControls(true); - + handleButtons(); if (_wait) events.wait(2); - + } while (!_vm->shouldQuit() && !_exitJournal); // Clear events @@ -275,7 +275,7 @@ void TattooJournal::handleButtons() { if (frameCounter >= _scrollingTimer) { // Set next scrolling time _scrollingTimer = frameCounter + 6; - + // Handle different scrolling actions switch (_selector) { case JH_SCROLL_LEFT: @@ -355,13 +355,13 @@ void TattooJournal::handleButtons() { _savedIndex = _index; _savedSub = _sub; _savedPage = _page; - + bool drawResult = drawJournal(dir + 2, 1000 * LINES_PER_PAGE); if (!drawResult) { _index = _savedIndex; _sub = _savedSub; _page = _savedPage; - + drawFrame(); drawJournal(0, 0); notFound = true; @@ -523,15 +523,15 @@ void TattooJournal::drawControls(int mode) { if (mode != 2) { // Draw the Bars separating the Journal Commands - int xp = r.right / 3; + int xp = r.left + r.width() / 3; for (int idx = 0; idx < 2; ++idx) { screen._backBuffer1.SHtransBlitFrom(images[6], Common::Point(xp - 2, r.top + 1)); screen._backBuffer1.SHtransBlitFrom(images[7], Common::Point(xp - 2, yp - 1)); - screen._backBuffer1.hLine(xp - 1, r.top + 4, yp - 2, INFO_TOP); - screen._backBuffer1.hLine(xp, r.top + 4, yp - 2, INFO_MIDDLE); - screen._backBuffer1.hLine(xp + 1, r.top + 4, yp - 2, INFO_BOTTOM); - xp = r.right / 3 * 2; + screen._backBuffer1.vLine(xp - 1, r.top + 4, yp - 2, INFO_TOP); + screen._backBuffer1.vLine(xp, r.top + 4, yp - 2, INFO_MIDDLE); + screen._backBuffer1.vLine(xp + 1, r.top + 4, yp - 2, INFO_BOTTOM); + xp += r.width() / 3; } } @@ -539,7 +539,7 @@ void TattooJournal::drawControls(int mode) { _oldSelector = 100; switch (mode) { - case 0: + case 0: highlightJournalControls(false); break; case 1: @@ -548,7 +548,7 @@ void TattooJournal::drawControls(int mode) { default: break; } - + _oldSelector = savedSelector; } @@ -558,7 +558,7 @@ void TattooJournal::highlightJournalControls(bool slamIt) { Common::Point mousePos = events.mousePos(); Common::Rect r(JOURNAL_BAR_WIDTH, BUTTON_SIZE + screen.fontHeight() + 13); r.moveTo((SHERLOCK_SCREEN_WIDTH - r.width()) / 2, SHERLOCK_SCREEN_HEIGHT - r.height()); - + if ((events._pressed || events._released) && _selector == JH_THUMBNAIL) { if (events._released) _selector = JH_NONE; @@ -576,7 +576,7 @@ void TattooJournal::highlightJournalControls(bool slamIt) { _selector = JH_NONE; if (bounds.contains(mousePos)) _selector = (mousePos.x - r.left) / (r.width() / 3); - + else if (events._pressed && mousePos.y >= (r.top + screen.fontHeight() + 10) && mousePos.y < (r.top + screen.fontHeight() + 10 + BUTTON_SIZE)) { if (mousePos.x >= r.left && mousePos.x < (r.left + BUTTON_SIZE)) @@ -628,7 +628,7 @@ void TattooJournal::highlightJournalControls(bool slamIt) { color = (_selector == JH_SAVE) ? COMMAND_HIGHLIGHTED : INFO_TOP; else color = INFO_BOTTOM; - screen.gPrint(Common::Point(xp - screen.stringWidth(FIXED(SaveJournal)) / 2, r.top + 5), + screen.gPrint(Common::Point(xp - screen.stringWidth(FIXED(SaveJournal)) / 2, r.top + 5), color, "%s", FIXED(SaveJournal)); // Draw the horizontal scrollbar @@ -701,7 +701,7 @@ void TattooJournal::drawScrollBar() { raised = _selector != JH_SCROLL_LEFT; screen._backBuffer1.fillRect(Common::Rect(r.left, r.top + screen.fontHeight() + 12, r.left + BUTTON_SIZE, r.top + screen.fontHeight() + BUTTON_SIZE + 9), INFO_MIDDLE); - ui.drawDialogRect(screen._backBuffer1, Common::Rect(r.left + 3, r.top + screen.fontHeight() + 10, r.left + 3 + BUTTON_SIZE, + ui.drawDialogRect(screen._backBuffer1, Common::Rect(r.left + 3, r.top + screen.fontHeight() + 10, r.left + 3 + BUTTON_SIZE, r.top + screen.fontHeight() + 10 + BUTTON_SIZE), raised); color = (_page > 1) ? INFO_BOTTOM + 2 : INFO_BOTTOM; @@ -716,15 +716,15 @@ void TattooJournal::drawScrollBar() { // Draw the Scroll Right button raised = _selector != JH_SCROLL_RIGHT; - screen._backBuffer1.fillRect(Common::Rect(r.right - BUTTON_SIZE - 1, r.top + screen.fontHeight() + 12, + screen._backBuffer1.fillRect(Common::Rect(r.right - BUTTON_SIZE - 1, r.top + screen.fontHeight() + 12, r.right - 5, r.top + screen.fontHeight() + BUTTON_SIZE + 9), INFO_MIDDLE); ui.drawDialogRect(screen._backBuffer1, Common::Rect(r.right - BUTTON_SIZE - 3, r.top + screen.fontHeight() + 10, r.right - 3, r.top + screen.fontHeight() + BUTTON_SIZE + 9), raised); color = _down ? INFO_BOTTOM + 2 : INFO_BOTTOM; - screen._backBuffer1.vLine(r.right - 1 - BUTTON_SIZE + BUTTON_SIZE / 2, r.top + screen.fontHeight() + 10 + BUTTON_SIZE / 2, + screen._backBuffer1.vLine(r.right - 1 - BUTTON_SIZE + BUTTON_SIZE / 2, r.top + screen.fontHeight() + 10 + BUTTON_SIZE / 2, r.top + screen.fontHeight() + 10 + BUTTON_SIZE / 2, color); - screen._backBuffer1.vLine(r.right - 2 - BUTTON_SIZE + BUTTON_SIZE / 2, r.top + screen.fontHeight() + 9 + BUTTON_SIZE / 2, + screen._backBuffer1.vLine(r.right - 2 - BUTTON_SIZE + BUTTON_SIZE / 2, r.top + screen.fontHeight() + 9 + BUTTON_SIZE / 2, r.top + screen.fontHeight() + 11 + BUTTON_SIZE / 2, color); screen._backBuffer1.vLine(r.right - 3 - BUTTON_SIZE + BUTTON_SIZE / 2, r.top + screen.fontHeight() + 8 + BUTTON_SIZE / 2, r.top + screen.fontHeight() + 12 + BUTTON_SIZE / 2, color); @@ -776,14 +776,14 @@ int TattooJournal::getFindName(bool printError) { drawControls(1); disableControls(); - + // Backup the area under the text entry Surface bgSurface(r.width() - 6, screen.fontHeight()); - bgSurface.SHblitFrom(screen._backBuffer1, Common::Point(0, 0), Common::Rect(r.left + 3, cursorY, + bgSurface.SHblitFrom(screen._backBuffer1, Common::Point(0, 0), Common::Rect(r.left + 3, cursorY, r.right - 3, cursorY + screen.fontHeight())); if (printError) { - screen.gPrint(Common::Point(r.left + (r.width() - screen.stringWidth(FIXED(TextNotFound))) / 2, cursorY), + screen.gPrint(Common::Point(r.left + (r.width() - screen.stringWidth(FIXED(TextNotFound))) / 2, cursorY), INFO_TOP, "%s", FIXED(TextNotFound)); } else { // If there was a name already entered, copy it to name and display it @@ -977,7 +977,7 @@ void TattooJournal::saveJournal() { int line = 0; // Copy all of the talk files entries into one big string - do { + do { if (_lines[line].hasPrefix("@")) { text += Common::String(_lines[line].c_str() + 1); if ((line + 1) < (int)_lines.size() && _lines[line + 1].hasPrefix("@")) @@ -992,7 +992,7 @@ void TattooJournal::saveJournal() { // which show up as a blank line with the next line starting // with a '@'. We have to add a line break here because the '@' handler // previously assumes that they're always following a blank line - + if ((_lines[line].empty() || _lines[line] == " ") && (line + 1) < (int)_lines.size() && _lines[line + 1].hasPrefix("@")) text += "\n"; @@ -1005,7 +1005,7 @@ void TattooJournal::saveJournal() { do { if (text.size() > 80) { const char *msgP = text.c_str() + 80; - + if (Common::String(text.c_str(), msgP).contains("\n")) { // The 80 characters contain a carriage return, // so we can print out that line @@ -1013,7 +1013,7 @@ void TattooJournal::saveJournal() { file->writeString(Common::String(text.c_str(), cr)); text = Common::String(cr + 1); } else { - // Move backwards to find a word break + // Move backwards to find a word break while (*msgP != ' ') --msgP; diff --git a/engines/sherlock/tattoo/tattoo_people.h b/engines/sherlock/tattoo/tattoo_people.h index e0d53c67dd..c844d86e19 100644 --- a/engines/sherlock/tattoo/tattoo_people.h +++ b/engines/sherlock/tattoo/tattoo_people.h @@ -273,9 +273,8 @@ public: virtual void setListenSequence(int speaker, int sequenceNum = 1); }; -} // End of namespace Scalpel +} // End of namespace Tattoo } // End of namespace Sherlock - #endif diff --git a/engines/sky/control.cpp b/engines/sky/control.cpp index dfdd765120..9f4b6c21c6 100644 --- a/engines/sky/control.cpp +++ b/engines/sky/control.cpp @@ -167,7 +167,7 @@ ControlStatus::~ControlStatus() { void ControlStatus::setToText(const char *newText) { char tmpLine[256]; - strcpy(tmpLine, newText); + Common::strlcpy(tmpLine, newText, 256); if (_textData) { _statusText->flushForRedraw(); free(_textData); @@ -324,7 +324,11 @@ void Control::initPanel() { } void Control::buttonControl(ConResource *pButton) { - char autoSave[] = "Restore Autosave"; + char autoSave[50] = "Restore Autosave"; + + if (Common::parseLanguage(ConfMan.get("language")) == Common::RU_RUS) + strncpy(autoSave, "Zarpyzit/ abtocoxpahehie", 50); + if (pButton == NULL) { free(_textSprite); _textSprite = NULL; @@ -398,7 +402,8 @@ void Control::animClick(ConResource *pButton) { void Control::drawMainPanel() { memset(_screenBuf, 0, GAME_SCREEN_WIDTH * FULL_SCREEN_HEIGHT); _system->copyRectToScreen(_screenBuf, GAME_SCREEN_WIDTH, 0, 0, GAME_SCREEN_WIDTH, FULL_SCREEN_HEIGHT); - _controlPanel->drawToScreen(NO_MASK); + if (_controlPanel) + _controlPanel->drawToScreen(NO_MASK); _exitButton->drawToScreen(NO_MASK); _savePanButton->drawToScreen(NO_MASK); _restorePanButton->drawToScreen(NO_MASK); @@ -525,8 +530,13 @@ void Control::doControlPanel() { } uint16 Control::handleClick(ConResource *pButton) { - char quitDos[] = "Quit to DOS?"; - char restart[] = "Restart?"; + char quitDos[50] = "Quit to DOS?"; + char restart[50] = "Restart?"; + + if (Common::parseLanguage(ConfMan.get("language")) == Common::RU_RUS) { + strncpy(quitDos, "B[uti b DOC?", 50); + strncpy(restart, "Hobaq irpa?", 50); + } switch (pButton->_onClick) { case DO_NOTHING: @@ -1562,8 +1572,13 @@ void Control::showGameQuitMsg() { screenData = _skyScreen->giveCurrent(); - _skyText->displayText(_quitTexts[SkyEngine::_systemVars.language * 2 + 0], textBuf1, true, 320, 255); - _skyText->displayText(_quitTexts[SkyEngine::_systemVars.language * 2 + 1], textBuf2, true, 320, 255); + if (Common::parseLanguage(ConfMan.get("language")) == Common::RU_RUS) { + _skyText->displayText(_quitTexts[8 * 2 + 0], textBuf1, true, 320, 255); + _skyText->displayText(_quitTexts[8 * 2 + 1], textBuf2, true, 320, 255); + } else { + _skyText->displayText(_quitTexts[SkyEngine::_systemVars.language * 2 + 0], textBuf1, true, 320, 255); + _skyText->displayText(_quitTexts[SkyEngine::_systemVars.language * 2 + 1], textBuf2, true, 320, 255); + } uint8 *curLine1 = textBuf1 + sizeof(DataFileHeader); uint8 *curLine2 = textBuf2 + sizeof(DataFileHeader); uint8 *targetLine = screenData + GAME_SCREEN_WIDTH * 80; @@ -1584,7 +1599,7 @@ void Control::showGameQuitMsg() { free(textBuf2); } -char Control::_quitTexts[16][35] = { +char Control::_quitTexts[18][35] = { "Game over player one", "BE VIGILANT", "Das Spiel ist aus.", @@ -1600,7 +1615,9 @@ char Control::_quitTexts[16][35] = { "Fim de jogo para o jogador um", "BE VIGILANT", "Game over player one", - "BE VIGILANT" + "BE VIGILANT", + "Irpa okohseha, irpok 1", + "JYD\x96 JDITELEH" }; uint8 Control::_crossImg[594] = { diff --git a/engines/sky/control.h b/engines/sky/control.h index 44591f299d..2089c74363 100644 --- a/engines/sky/control.h +++ b/engines/sky/control.h @@ -292,7 +292,7 @@ private: ControlStatus *_statusBar; - static char _quitTexts[16][35]; + static char _quitTexts[18][35]; static uint8 _crossImg[594]; }; diff --git a/engines/sky/music/adlibchannel.cpp b/engines/sky/music/adlibchannel.cpp index c7acb9b6c1..2f44add466 100644 --- a/engines/sky/music/adlibchannel.cpp +++ b/engines/sky/music/adlibchannel.cpp @@ -23,7 +23,7 @@ #include "common/endian.h" #include "common/textconsole.h" -#include "common/util.h" +#include "audio/fmopl.h" #include "sky/music/adlibchannel.h" #include "sky/sky.h" diff --git a/engines/sky/music/adlibchannel.h b/engines/sky/music/adlibchannel.h index 4504e3b570..b190ba27dc 100644 --- a/engines/sky/music/adlibchannel.h +++ b/engines/sky/music/adlibchannel.h @@ -24,7 +24,10 @@ #define SKY_MUSIC_ADLIBCHANNEL_H #include "sky/music/musicbase.h" -#include "audio/fmopl.h" + +namespace OPL { +class OPL; +} namespace Sky { diff --git a/engines/sky/music/adlibmusic.cpp b/engines/sky/music/adlibmusic.cpp index be5e7b2353..1a2a91c82a 100644 --- a/engines/sky/music/adlibmusic.cpp +++ b/engines/sky/music/adlibmusic.cpp @@ -26,9 +26,13 @@ #include "sky/music/adlibmusic.h" #include "sky/music/adlibchannel.h" -#include "audio/mixer.h" +#include "audio/fmopl.h" #include "sky/sky.h" +namespace Audio { +class Mixer; +} + namespace Sky { AdLibMusic::AdLibMusic(Audio::Mixer *pMixer, Disk *pDisk) : MusicBase(pMixer, pDisk) { diff --git a/engines/sky/music/adlibmusic.h b/engines/sky/music/adlibmusic.h index 7b51f2d3a0..ebfa038848 100644 --- a/engines/sky/music/adlibmusic.h +++ b/engines/sky/music/adlibmusic.h @@ -24,7 +24,10 @@ #define SKY_MUSIC_ADLIBMUSIC_H #include "sky/music/musicbase.h" -#include "audio/audiostream.h" + +namespace Audio { +class Mixer; +} namespace OPL { class OPL; diff --git a/engines/sky/skydefs.h b/engines/sky/skydefs.h index 167b7dade2..ed07a5e2cd 100644 --- a/engines/sky/skydefs.h +++ b/engines/sky/skydefs.h @@ -45,6 +45,7 @@ namespace Sky { #define SKY_ITALIAN 5 #define SKY_PORTUGUESE 6 #define SKY_SPANISH 7 +#define SKY_RUSSIAN 8 #define ST_COLLISION_BIT 5 diff --git a/engines/sword1/logic.h b/engines/sword1/logic.h index 94da2b3a77..005846df16 100644 --- a/engines/sword1/logic.h +++ b/engines/sword1/logic.h @@ -28,10 +28,13 @@ #include "sword1/objectman.h" #include "common/util.h" #include "common/random.h" -#include "audio/mixer.h" class OSystem; +namespace Audio { +class Mixer; +} + namespace Sword1 { #define NON_ZERO_SCRIPT_VARS 95 diff --git a/engines/sword1/resman.cpp b/engines/sword1/resman.cpp index 0a0324a67c..2f8b37d21c 100644 --- a/engines/sword1/resman.cpp +++ b/engines/sword1/resman.cpp @@ -327,13 +327,12 @@ Common::File *ResMan::resFile(uint32 id) { Clu *closeClu = _openCluStart; _openCluStart = _openCluStart->nextOpen; - if (closeClu) { - if (closeClu->file) - closeClu->file->close(); - delete closeClu->file; - closeClu->file = NULL; - closeClu->nextOpen = NULL; - } + if (closeClu->file) + closeClu->file->close(); + delete closeClu->file; + closeClu->file = NULL; + closeClu->nextOpen = NULL; + _openClus--; } } diff --git a/engines/sword1/sound.cpp b/engines/sword1/sound.cpp index 4deaf06edc..a37f7d250d 100644 --- a/engines/sword1/sound.cpp +++ b/engines/sword1/sound.cpp @@ -37,7 +37,6 @@ #include "audio/decoders/mp3.h" #include "audio/decoders/raw.h" #include "audio/decoders/vorbis.h" -#include "audio/decoders/wave.h" #include "audio/decoders/xa.h" namespace Sword1 { diff --git a/engines/sword1/sword1.cpp b/engines/sword1/sword1.cpp index 1e9b7f70f4..1556f080e9 100644 --- a/engines/sword1/sword1.cpp +++ b/engines/sword1/sword1.cpp @@ -39,7 +39,6 @@ #include "engines/util.h" #include "gui/message.h" -#include "gui/gui-manager.h" namespace Sword1 { diff --git a/engines/sword2/music.cpp b/engines/sword2/music.cpp index 62fb3d244d..462a49055d 100644 --- a/engines/sword2/music.cpp +++ b/engines/sword2/music.cpp @@ -35,10 +35,11 @@ #include "common/system.h" #include "common/textconsole.h" +#include "audio/audiostream.h" +#include "audio/mixer.h" #include "audio/decoders/mp3.h" #include "audio/decoders/vorbis.h" #include "audio/decoders/flac.h" -#include "audio/decoders/wave.h" #include "audio/decoders/xa.h" #include "audio/rate.h" diff --git a/engines/sword2/screen.cpp b/engines/sword2/screen.cpp index 0cb951fdfc..40baf67e46 100644 --- a/engines/sword2/screen.cpp +++ b/engines/sword2/screen.cpp @@ -1296,7 +1296,7 @@ void Screen::setPsxScrCache(byte *psxScrCache, uint8 level) { } byte *Screen::getPsxScrCache(uint8 level) { - if (level > 3) { + if (level > 2) { level = 0; } @@ -1307,7 +1307,7 @@ byte *Screen::getPsxScrCache(uint8 level) { } bool Screen::getPsxScrCacheStatus(uint8 level) { - if (level > 3) { + if (level > 2) { level = 0; } diff --git a/engines/sword25/gfx/image/vectorimage.cpp b/engines/sword25/gfx/image/vectorimage.cpp index a678fdccad..5d35a4f47e 100644 --- a/engines/sword25/gfx/image/vectorimage.cpp +++ b/engines/sword25/gfx/image/vectorimage.cpp @@ -217,6 +217,7 @@ Common::Rect CalculateBoundingBox(const VectorImageElement &vectorImageElement) VectorImage::VectorImage(const byte *pFileData, uint fileSize, bool &success, const Common::String &fname) : _pixelData(0), _fname(fname) { success = false; + _bgColor = 0; // Create bitstream object // In the following the file data will be readout of the bitstream object. diff --git a/engines/sword25/gfx/renderobject.cpp b/engines/sword25/gfx/renderobject.cpp index c109e49aa8..92d39c252d 100644 --- a/engines/sword25/gfx/renderobject.cpp +++ b/engines/sword25/gfx/renderobject.cpp @@ -71,19 +71,18 @@ RenderObject::RenderObject(RenderObjectPtr<RenderObject> parentPtr, TYPES type, _version(++_nextGlobalVersion), _isSolid(false) { - // Renderobject registrieren, abhängig vom Handle-Parameter entweder mit beliebigem oder vorgegebenen Handle. if (handle == 0) _handle = RenderObjectRegistry::instance().registerObject(this); else _handle = RenderObjectRegistry::instance().registerObject(this, handle); if (_handle == 0) - return; + error("Failed to initialize RenderObject()"); updateAbsolutePos(); - // Dieses Objekt zu den Kindern der Elternobjektes hinzufügen, falls nicht Wurzel (ParentPtr ungültig) und dem - // selben RenderObjektManager zuweisen. + // Add this item to the children of the parent object, if not root (ParentPtr is invalid), + // assign to the same RenderObjectManager. if (_parentPtr.isValid()) { _managerPtr = _parentPtr->getManager(); _parentPtr->addObject(this->getHandle()); @@ -100,24 +99,22 @@ RenderObject::RenderObject(RenderObjectPtr<RenderObject> parentPtr, TYPES type, } RenderObject::~RenderObject() { - // Objekt aus dem Elternobjekt entfernen. + // Remove object from its parent. if (_parentPtr.isValid()) _parentPtr->detatchChildren(this->getHandle()); deleteAllChildren(); - // Objekt deregistrieren. RenderObjectRegistry::instance().deregisterObject(this); } void RenderObject::preRender(RenderObjectQueue *renderQueue) { - // Objektänderungen validieren validateObject(); if (!_visible) return; - // Falls notwendig, wird die Renderreihenfolge der Kinderobjekte aktualisiert. + // If necessary, update the children rendering order of the updated objects. if (_childChanged) { sortRenderObjects(); _childChanged = false; @@ -149,7 +146,7 @@ bool RenderObject::render(RectangleList *updateRects, const Common::Array<int> & if (needRender) doRender(updateRects); - // Dann müssen die Kinder gezeichnet werden + // Draw all children RENDEROBJECT_ITER it = _children.begin(); for (; it != _children.end(); ++it) if (!(*it)->render(updateRects, updateRectsMinZ)) @@ -159,7 +156,6 @@ bool RenderObject::render(RectangleList *updateRects, const Common::Array<int> & } void RenderObject::validateObject() { - // Die Veränderungen in den Objektvariablen aufheben _oldBbox = _bbox; _oldVisible = _visible; _oldX = _x; @@ -169,15 +165,14 @@ void RenderObject::validateObject() { } bool RenderObject::updateObjectState() { - // Falls sich das Objekt verändert hat, muss der interne Zustand neu berechnet werden und evtl. Update-Regions für den nächsten Frame - // registriert werden. + // If the object has changed, the internal state must be recalculated and possibly + // update Regions be registered for the next frame. if ((calcBoundingBox() != _oldBbox) || (_visible != _oldVisible) || (_x != _oldX) || (_y != _oldY) || (_z != _oldZ) || _refreshForced) { - // Renderrang des Objektes neu bestimmen, da sich dieser verändert haben könnte if (_parentPtr.isValid()) _parentPtr->signalChildChange(); @@ -200,12 +195,10 @@ bool RenderObject::updateObjectState() { } void RenderObject::updateBoxes() { - // Bounding-Box aktualisieren _bbox = calcBoundingBox(); } Common::Rect RenderObject::calcBoundingBox() const { - // Die Bounding-Box mit der Objektgröße initialisieren. Common::Rect bbox(0, 0, _width, _height); // Die absolute Position der Bounding-Box berechnen. @@ -247,8 +240,6 @@ int32 RenderObject::calcAbsoluteZ() const { } void RenderObject::deleteAllChildren() { - // Es ist nicht notwendig die Liste zu iterieren, da jedes Kind für sich DetatchChildren an diesem Objekt aufruft und sich somit - // selber entfernt. Daher muss immer nur ein beliebiges Element (hier das letzte) gelöscht werden, bis die Liste leer ist. while (!_children.empty()) { RenderObjectPtr<RenderObject> curPtr = _children.back(); curPtr.erase(); @@ -261,10 +252,10 @@ bool RenderObject::addObject(RenderObjectPtr<RenderObject> pObject) { return false; } - // Objekt in die Kinderliste einfügen. + // Insert Object in the children list. _children.push_back(pObject); - // Sicherstellen, dass vor dem nächsten Rendern die Renderreihenfolge aktualisiert wird. + // Make sure that before the next render the channel order is updated. if (_parentPtr.isValid()) _parentPtr->signalChildChange(); diff --git a/engines/sword25/sfx/soundengine.cpp b/engines/sword25/sfx/soundengine.cpp index dcb29cb380..46f27b06f0 100644 --- a/engines/sword25/sfx/soundengine.cpp +++ b/engines/sword25/sfx/soundengine.cpp @@ -36,6 +36,7 @@ #include "sword25/kernel/inputpersistenceblock.h" #include "sword25/kernel/outputpersistenceblock.h" +#include "audio/audiostream.h" #include "audio/decoders/vorbis.h" #include "common/system.h" diff --git a/engines/sword25/sfx/soundengine.h b/engines/sword25/sfx/soundengine.h index 1dd7ba0925..9bf251be15 100644 --- a/engines/sword25/sfx/soundengine.h +++ b/engines/sword25/sfx/soundengine.h @@ -49,7 +49,6 @@ #include "sword25/kernel/resservice.h" #include "sword25/kernel/persistable.h" -#include "audio/audiostream.h" #include "audio/mixer.h" namespace Sword25 { diff --git a/engines/teenagent/font.cpp b/engines/teenagent/font.cpp index ab75a45ba7..f691ace32d 100644 --- a/engines/teenagent/font.cpp +++ b/engines/teenagent/font.cpp @@ -25,6 +25,7 @@ #include "teenagent/pack.h" #include "teenagent/teenagent.h" +#include "common/debug.h" #include "common/endian.h" #include "common/stream.h" #include "common/textconsole.h" diff --git a/engines/teenagent/music.cpp b/engines/teenagent/music.cpp index 5d66c3c90c..795b8f7312 100644 --- a/engines/teenagent/music.cpp +++ b/engines/teenagent/music.cpp @@ -36,7 +36,7 @@ static const uint32 noteToPeriod[3][12] = { {214, 201, 189, 179, 170, 160, 151, 143, 135, 127, 120, 113} }; -MusicPlayer::MusicPlayer(TeenAgentEngine *vm) : Paula(false, 44100, 5000), _vm(vm), _id(0) { +MusicPlayer::MusicPlayer(TeenAgentEngine *vm) : Paula(false, 44100, 5000), _vm(vm), _id(0), _currRow(0) { } MusicPlayer::~MusicPlayer() { @@ -55,7 +55,7 @@ bool MusicPlayer::load(int id) { Common::StackLock lock(_mutex); // Load the samples - sampleCount = stream->readByte(); + byte sampleCount = stream->readByte(); debugC(0, kDebugMusic, "sampleCount = %d", sampleCount); diff --git a/engines/teenagent/music.h b/engines/teenagent/music.h index e1630cc845..4b1b683a30 100644 --- a/engines/teenagent/music.h +++ b/engines/teenagent/music.h @@ -74,7 +74,6 @@ private: size = 0; } } _samples[256]; - byte sampleCount; Common::Array<Row> _rows; uint _currRow; diff --git a/engines/teenagent/objects.h b/engines/teenagent/objects.h index f923ae52ab..1f8a82a66e 100644 --- a/engines/teenagent/objects.h +++ b/engines/teenagent/objects.h @@ -165,7 +165,7 @@ struct Object { //19 Common::String name, description; - Object(): _base(NULL) {} + Object(): _base(NULL) { id = 0; actorOrientation = 0; enabled = 0; } void dump(int level = 0) const; void setName(const Common::String &newName); void load(byte *addr); @@ -205,7 +205,7 @@ struct Walkbox { Rect rect; byte sideHint[4]; - Walkbox() : _base(NULL) {} + Walkbox() : _base(NULL) { memset(this, 0, sizeof(Walkbox)); } void dump(int level = 0) const; void load(byte *src); void save() const; diff --git a/engines/teenagent/resources.cpp b/engines/teenagent/resources.cpp index 8d8f705a24..3cf566a0e5 100644 --- a/engines/teenagent/resources.cpp +++ b/engines/teenagent/resources.cpp @@ -22,6 +22,7 @@ #include "teenagent/resources.h" #include "teenagent/teenagent.h" +#include "common/debug.h" #include "common/textconsole.h" #include "common/translation.h" #include "common/zlib.h" diff --git a/engines/teenagent/scene.cpp b/engines/teenagent/scene.cpp index 6e1cef31bc..c250269844 100644 --- a/engines/teenagent/scene.cpp +++ b/engines/teenagent/scene.cpp @@ -71,6 +71,9 @@ Scene::Scene(TeenAgentEngine *vm) : _vm(vm), intro(false), _id(0), ons(0), varia.close(); loadObjectData(); + + _onsCount = 0; + _messageColor = 0; } Scene::~Scene() { @@ -314,7 +317,7 @@ void Scene::loadOns() { uint16 addr = _vm->res->dseg.get_word(dsAddr_onsAnimationTablePtr + (_id - 1) * 2); debugC(0, kDebugScene, "ons index: %04x", addr); - onsCount = 0; + _onsCount = 0; byte b; byte onId[16]; while ((b = _vm->res->dseg.get_byte(addr)) != 0xff) { @@ -323,15 +326,15 @@ void Scene::loadOns() { if (b == 0) continue; - onId[onsCount++] = b; + onId[_onsCount++] = b; } delete[] ons; ons = NULL; - if (onsCount > 0) { - ons = new Surface[onsCount]; - for (uint32 i = 0; i < onsCount; ++i) { + if (_onsCount > 0) { + ons = new Surface[_onsCount]; + for (uint32 i = 0; i < _onsCount; ++i) { Common::ScopedPtr<Common::SeekableReadStream> s(_vm->res->ons.getStream(onId[i])); if (s) { ons[i].load(*s, Surface::kTypeOns); @@ -498,7 +501,7 @@ bool Scene::processEvent(const Common::Event &event) { events.clear(); sounds.clear(); currentEvent.clear(); - messageColor = textColorMark; + _messageColor = textColorMark; for (int i = 0; i < 4; ++i) customAnimation[i].free(); _vm->playMusic(4); @@ -651,7 +654,7 @@ bool Scene::render(bool tickGame, bool tickMark, uint32 messageDelta) { bool gotAnyAnimation = false; if (ons != NULL && debugFeatures.feature[DebugFeatures::kShowOns]) { - for (uint32 i = 0; i < onsCount; ++i) { + for (uint32 i = 0; i < _onsCount; ++i) { Surface *s = ons + i; if (s != NULL) s->render(surface); @@ -821,7 +824,7 @@ bool Scene::render(bool tickGame, bool tickMark, uint32 messageDelta) { } if (visible) { - _vm->res->font7.render(surface, messagePos.x, messagePos.y, message, messageColor); + _vm->res->font7.render(surface, messagePos.x, messagePos.y, message, _messageColor); busy = true; } } @@ -1005,7 +1008,7 @@ bool Scene::processEventQueue() { warning("no animation in slot %u", messageSlot); } messagePos = messagePosition(message, p); - messageColor = currentEvent.color; + _messageColor = currentEvent.color; if (messageFirstFrame) currentEvent.clear(); // async message, clearing event @@ -1153,7 +1156,7 @@ bool Scene::processEventQueue() { } if (events.empty()) { - messageColor = textColorMark; + _messageColor = textColorMark; hideActor = false; } @@ -1232,7 +1235,7 @@ void Scene::displayMessage(const Common::String &str, byte color, const Common:: debugC(0, kDebugScene, "displayMessage: %s", str.c_str()); message = str; messagePos = (pos.x | pos.y) ? pos : messagePosition(str, position); - messageColor = color; + _messageColor = color; messageTimer = messageDuration(message); } @@ -1251,7 +1254,7 @@ void Scene::clear() { void Scene::clearMessage() { message.clear(); messageTimer = 0; - messageColor = textColorMark; + _messageColor = textColorMark; messageFirstFrame = 0; messageLastFrame = 0; messageAnimation = NULL; diff --git a/engines/teenagent/scene.h b/engines/teenagent/scene.h index 07b304ed97..40f910a3aa 100644 --- a/engines/teenagent/scene.h +++ b/engines/teenagent/scene.h @@ -194,7 +194,7 @@ private: SurfaceList on; bool onEnabled; Surface *ons; - uint32 onsCount; + uint32 _onsCount; Animation actorAnimation, animation[4], customAnimation[4]; Common::Rect actorAnimationPosition, animationPosition[4]; @@ -214,7 +214,7 @@ private: Common::String message; Common::Point messagePos; - byte messageColor; + byte _messageColor; uint messageTimer; byte messageFirstFrame; byte messageLastFrame; diff --git a/engines/teenagent/teenagent.cpp b/engines/teenagent/teenagent.cpp index 4dc785754c..2d10b82f51 100644 --- a/engines/teenagent/teenagent.cpp +++ b/engines/teenagent/teenagent.cpp @@ -71,6 +71,13 @@ TeenAgentEngine::TeenAgentEngine(OSystem *system, const ADGameDescription *gd) res = new Resources(); console = 0; + scene = 0; + inventory = 0; + _sceneBusy = false; + _dstObject = 0; + _musicStream = 0; + _markDelay = 0; + _gameDelay = 0; } TeenAgentEngine::~TeenAgentEngine() { diff --git a/engines/teenagent/teenagent.h b/engines/teenagent/teenagent.h index a06f8dbf9b..234bfb1c57 100644 --- a/engines/teenagent/teenagent.h +++ b/engines/teenagent/teenagent.h @@ -25,11 +25,9 @@ #include "engines/engine.h" -#include "audio/audiostream.h" #include "audio/mixer.h" #include "common/random.h" -#include "common/rect.h" #include "common/array.h" #include "gui/debugger.h" @@ -39,6 +37,14 @@ struct ADGameDescription; +namespace Audio { +class AudioStream; +} + +namespace Common { +struct Point; +} + /** * This is the namespace of the TeenAgent engine. * @@ -53,7 +59,6 @@ struct Object; struct UseHotspot; class Scene; class MusicPlayer; -class Dialog; class Resources; class Inventory; diff --git a/engines/testbed/config.h b/engines/testbed/config.h index db687de261..738f07ab87 100644 --- a/engines/testbed/config.h +++ b/engines/testbed/config.h @@ -30,7 +30,7 @@ #include "common/tokenizer.h" #include "gui/widgets/list.h" -#include "gui/options.h" +#include "gui/dialog.h" #include "gui/ThemeEngine.h" #include "testbed/testsuite.h" diff --git a/engines/testbed/midi.cpp b/engines/testbed/midi.cpp index daa5f1cf3c..5ede21f4ab 100644 --- a/engines/testbed/midi.cpp +++ b/engines/testbed/midi.cpp @@ -27,6 +27,7 @@ #include "graphics/cursorman.h" #include "audio/mididrv.h" +#include "audio/midiparser.h" #include "testbed/midi.h" #include "testbed/testbed.h" diff --git a/engines/testbed/midi.h b/engines/testbed/midi.h index b9f3e82abd..5ed0a73913 100644 --- a/engines/testbed/midi.h +++ b/engines/testbed/midi.h @@ -23,12 +23,16 @@ #ifndef TESTBED_MIDI_H #define TESTBED_MIDI_H -#include "common/stream.h" -#include "audio/midiparser.h" #include "testbed/testsuite.h" // This file can be used as template for header files of other newer testsuites. +class MidiParser; + +namespace Common { +class WriteStream; +} + namespace Testbed { namespace MidiTests { diff --git a/engines/testbed/sound.h b/engines/testbed/sound.h index 893a89b175..5de8877284 100644 --- a/engines/testbed/sound.h +++ b/engines/testbed/sound.h @@ -23,7 +23,6 @@ #ifndef TESTBED_SOUND_H #define TESTBED_SOUND_H -#include "gui/dialog.h" #include "audio/mixer.h" #include "testbed/config.h" #include "testbed/testsuite.h" diff --git a/engines/tinsel/bmv.cpp b/engines/tinsel/bmv.cpp index f28cd684f9..cfe97e6ec1 100644 --- a/engines/tinsel/bmv.cpp +++ b/engines/tinsel/bmv.cpp @@ -39,6 +39,7 @@ #include "tinsel/tinlib.h" #include "tinsel/tinsel.h" +#include "audio/audiostream.h" #include "audio/decoders/raw.h" #include "common/textconsole.h" @@ -566,8 +567,8 @@ void BMVPlayer::PlayBMV(CORO_PARAM, SCNHANDLE hFileStem, int myEscape) { assert(!bMovieOn); - strcpy(szMovieFile, (char *)LockMem(hFileStem)); - strcat(szMovieFile, BMOVIE_EXTENSION); + Common::strlcpy(szMovieFile, (char *)LockMem(hFileStem), 14); + Common::strlcat(szMovieFile, BMOVIE_EXTENSION, 14); assert(strlen(szMovieFile) <= 12); diff --git a/engines/tinsel/bmv.h b/engines/tinsel/bmv.h index e52297f9de..888f910627 100644 --- a/engines/tinsel/bmv.h +++ b/engines/tinsel/bmv.h @@ -27,12 +27,15 @@ #include "common/coroutines.h" #include "common/file.h" -#include "audio/audiostream.h" #include "audio/mixer.h" #include "tinsel/object.h" #include "tinsel/palette.h" +namespace Audio { +class QueuingAudioStream; +} + namespace Tinsel { diff --git a/engines/tinsel/detection.cpp b/engines/tinsel/detection.cpp index 2fde6e788a..c44f1f4ef3 100644 --- a/engines/tinsel/detection.cpp +++ b/engines/tinsel/detection.cpp @@ -235,7 +235,7 @@ const ADGameDescription *TinselMetaEngine::fallbackDetect(const FileMap &allFile for (fileDesc = g->desc.filesDescriptions; fileDesc->fileName; fileDesc++) { // Get the next filename, stripping off any '1' suffix character char tempFilename[50]; - strcpy(tempFilename, fileDesc->fileName); + Common::strlcpy(tempFilename, fileDesc->fileName, 50); char *pOne = strchr(tempFilename, '1'); if (pOne) { do { @@ -275,7 +275,7 @@ const ADGameDescription *TinselMetaEngine::fallbackDetect(const FileMap &allFile for (fileDesc = g->desc.filesDescriptions; fileDesc->fileName; fileDesc++) { // Get the next filename, stripping off any '1' suffix character char tempFilename[50]; - strcpy(tempFilename, fileDesc->fileName); + Common::strlcpy(tempFilename, fileDesc->fileName, 50); char *pOne = strchr(tempFilename, '1'); if (pOne) { do { diff --git a/engines/tinsel/dialogs.cpp b/engines/tinsel/dialogs.cpp index a84dad942c..ad20253b9c 100644 --- a/engines/tinsel/dialogs.cpp +++ b/engines/tinsel/dialogs.cpp @@ -1671,10 +1671,10 @@ static void Select(int i, bool force) { #else // Current description with cursor appended if (cd.box[i].boxText != NULL) { - strcpy(g_sedit, cd.box[i].boxText); - strcat(g_sedit, sCursor); + Common::strlcpy(g_sedit, cd.box[i].boxText, SG_DESC_LEN+2); + Common::strlcat(g_sedit, sCursor, SG_DESC_LEN+2); } else { - strcpy(g_sedit, sCursor); + Common::strlcpy(g_sedit, sCursor, SG_DESC_LEN+2); } #endif @@ -3676,13 +3676,13 @@ extern void HideConversation(bool bHide) { ConstructInventory(FULL); else { // Move it all back on-screen - for (i = 0; g_objArray[i] && i < MAX_WCOMP; i++) { + for (i = 0; i < MAX_WCOMP && g_objArray[i]; i++) { MultiAdjustXY(g_objArray[i], -2 * SCREEN_WIDTH, 0); } // Don't flash if items changed. If they have, will be redrawn anyway. if (TinselV2 || !g_ItemsChanged) { - for (i = 0; g_iconArray[i] && i < MAX_ICONS; i++) { + for (i = 0; i < MAX_ICONS && g_iconArray[i]; i++) { MultiAdjustXY(g_iconArray[i], -2*SCREEN_WIDTH, 0); } } @@ -3739,10 +3739,10 @@ extern void HideConversation(bool bHide) { deltay = g_InvD[INV_CONV].inventoryY - deltay; // Move it all - for (i = 0; g_objArray[i] && i < MAX_WCOMP; i++) { + for (i = 0; i < MAX_WCOMP && g_objArray[i]; i++) { MultiMoveRelXY(g_objArray[i], x - center, deltay); } - for (i = 0; g_iconArray[i] && i < MAX_ICONS; i++) { + for (i = 0; i < MAX_ICONS && g_iconArray[i]; i++) { MultiMoveRelXY(g_iconArray[i], x - center, deltay); } g_InvD[INV_CONV].inventoryX += x - center; @@ -3771,10 +3771,10 @@ extern void HideConversation(bool bHide) { y = 0; if (x || y) { - for (i = 0; g_objArray[i] && i < MAX_WCOMP; i++) { + for (i = 0; i < MAX_WCOMP && g_objArray[i]; i++) { MultiMoveRelXY(g_objArray[i], x, y); } - for (i = 0; g_iconArray[i] && i < MAX_ICONS; i++) { + for (i = 0; i < MAX_ICONS && g_iconArray[i]; i++) { MultiMoveRelXY(g_iconArray[i], x, y); } g_InvD[INV_CONV].inventoryX += x; @@ -3786,10 +3786,10 @@ extern void HideConversation(bool bHide) { */ if (MultiLowest(g_RectObject) > SCREEN_BOX_HEIGHT2 - SysVar(SV_CONV_MINY)) { y = (SCREEN_BOX_HEIGHT2 - SysVar(SV_CONV_MINY)) - MultiLowest(g_RectObject); - for (i = 0; g_objArray[i] && i < MAX_WCOMP; i++) { + for (i = 0; i < MAX_WCOMP && g_objArray[i]; i++) { MultiMoveRelXY(g_objArray[i], 0, y); } - for (i = 0; g_iconArray[i] && i < MAX_ICONS; i++) { + for (i = 0; i < MAX_ICONS && g_iconArray[i]; i++) { MultiMoveRelXY(g_iconArray[i], 0, y); } g_InvD[INV_CONV].inventoryY += y; diff --git a/engines/tinsel/handle.cpp b/engines/tinsel/handle.cpp index 62d244e449..9ffd477c4a 100644 --- a/engines/tinsel/handle.cpp +++ b/engines/tinsel/handle.cpp @@ -258,7 +258,7 @@ void LoadExtraGraphData(SCNHANDLE start, SCNHANDLE next) { } void SetCdPlaySceneDetails(int fileNum, const char *fileName) { - strcpy(g_szCdPlayFile, fileName); + Common::strlcpy(g_szCdPlayFile, fileName, 100); } void SetCdPlayHandle(int fileNum) { diff --git a/engines/tinsel/music.cpp b/engines/tinsel/music.cpp index e0c1f8d1f9..32d5abb865 100644 --- a/engines/tinsel/music.cpp +++ b/engines/tinsel/music.cpp @@ -29,7 +29,6 @@ #include "audio/midiparser.h" // Miles Audio for Discworld 1 #include "audio/miles.h" -#include "audio/decoders/adpcm.h" #include "backends/audiocd/audiocd.h" diff --git a/engines/tinsel/saveload.cpp b/engines/tinsel/saveload.cpp index 88cd80b78a..226cbb51c0 100644 --- a/engines/tinsel/saveload.cpp +++ b/engines/tinsel/saveload.cpp @@ -563,7 +563,7 @@ static void DoSave() { while (1) { Common::String fname = _vm->getSavegameFilename(ano); - strcpy(tmpName, fname.c_str()); + Common::strlcpy(tmpName, fname.c_str(), FNAMELEN); for (i = 0; i < g_numSfiles; i++) if (!strcmp(g_savedFiles[i].name, tmpName)) diff --git a/engines/tinsel/sound.cpp b/engines/tinsel/sound.cpp index 3d87a17331..a13e91fb3c 100644 --- a/engines/tinsel/sound.cpp +++ b/engines/tinsel/sound.cpp @@ -27,7 +27,6 @@ #include "tinsel/dw.h" #include "tinsel/config.h" #include "tinsel/music.h" -#include "tinsel/strres.h" #include "tinsel/tinsel.h" #include "tinsel/sysvar.h" #include "tinsel/background.h" @@ -37,7 +36,6 @@ #include "common/system.h" #include "audio/mixer.h" -#include "audio/decoders/adpcm.h" #include "audio/decoders/flac.h" #include "audio/decoders/mp3.h" #include "audio/decoders/raw.h" diff --git a/engines/toltecs/movie.cpp b/engines/toltecs/movie.cpp index 0aa0a99a36..b26408fadc 100644 --- a/engines/toltecs/movie.cpp +++ b/engines/toltecs/movie.cpp @@ -20,6 +20,7 @@ * */ +#include "audio/audiostream.h" #include "audio/mixer.h" #include "audio/decoders/raw.h" @@ -44,7 +45,7 @@ enum ChunkTypes { kChunkStopSubtitles = 8 }; -MoviePlayer::MoviePlayer(ToltecsEngine *vm) : _vm(vm), _isPlaying(false), _lastPrefetchOfs(0), _framesPerSoundChunk(0), _endPos(0) { +MoviePlayer::MoviePlayer(ToltecsEngine *vm) : _vm(vm), _isPlaying(false), _lastPrefetchOfs(0), _framesPerSoundChunk(0), _endPos(0), _audioStream(0) { } MoviePlayer::~MoviePlayer() { diff --git a/engines/toltecs/movie.h b/engines/toltecs/movie.h index 9404e5f639..8c6348d700 100644 --- a/engines/toltecs/movie.h +++ b/engines/toltecs/movie.h @@ -23,9 +23,12 @@ #ifndef TOLTECS_MOVIE_H #define TOLTECS_MOVIE_H -#include "audio/audiostream.h" #include "audio/mixer.h" // for Audio::SoundHandle +namespace Audio { +class QueuingAudioStream; +} + namespace Toltecs { class MoviePlayer { diff --git a/engines/toltecs/resource.cpp b/engines/toltecs/resource.cpp index 468ae0272f..6dbb9c2843 100644 --- a/engines/toltecs/resource.cpp +++ b/engines/toltecs/resource.cpp @@ -31,6 +31,7 @@ namespace Toltecs { /* ArchiveReader */ ArchiveReader::ArchiveReader() { + _offsets = 0; } ArchiveReader::~ArchiveReader() { diff --git a/engines/toltecs/sprite.cpp b/engines/toltecs/sprite.cpp index f29f64dcfe..be4be5d9e3 100644 --- a/engines/toltecs/sprite.cpp +++ b/engines/toltecs/sprite.cpp @@ -84,6 +84,7 @@ public: _yerror = _sprite->yerror; _origHeight = _sprite->origHeight; _scalerStatus = 0; + _xerror = 0; } SpriteReaderStatus readPacket(PixelPacket &packet) { SpriteReaderStatus status = kSrsPixelsLeft; @@ -135,6 +136,8 @@ public: _yerror = _sprite->yerror; _origHeight = _sprite->origHeight; _scalerStatus = 0; + _sourcep = 0; + _xerror = 0; } SpriteReaderStatus readPacket(PixelPacket &packet) { SpriteReaderStatus status; diff --git a/engines/tony/gfxcore.cpp b/engines/tony/gfxcore.cpp index 2a32926c53..27145d7c4b 100644 --- a/engines/tony/gfxcore.cpp +++ b/engines/tony/gfxcore.cpp @@ -1733,13 +1733,6 @@ void RMGfxSourceBuffer8AA::drawAA(RMGfxTargetBuffer &bigBuf, RMGfxPrimitive *pri g /= 5; b /= 5; - if (r > 0x1f) - r = 0x1f; - if (g > 0x3f) - g = 0x3f; - if (b > 0x1f) - b = 0x1f; - mybuf[0] = (r << 11) | (g << 5) | b; } } @@ -1774,13 +1767,6 @@ void RMGfxSourceBuffer8AA::drawAA(RMGfxTargetBuffer &bigBuf, RMGfxPrimitive *pri g /= 6; b /= 6; - if (r > 0x1f) - r = 0x1f; - if (g > 0x3f) - g = 0x3f; - if (b > 0x1f) - b = 0x1f; - mybuf[0] = (r << 11) | (g << 5) | b; } } diff --git a/engines/tony/mpal/loadmpc.cpp b/engines/tony/mpal/loadmpc.cpp index 8d030f1e52..01892a40e6 100644 --- a/engines/tony/mpal/loadmpc.cpp +++ b/engines/tony/mpal/loadmpc.cpp @@ -331,7 +331,7 @@ static const byte *parseItem(const byte *lpBuf, LpMpalItem lpmiItem) { byte len = *lpBuf; lpBuf++; - memcpy(lpmiItem->_lpszDescribe, lpBuf, MIN((byte)127, len)); + memcpy(lpmiItem->_lpszDescribe, lpBuf, MIN((byte)MAX_DESCRIBE_SIZE, len)); lpBuf += len; if (len >= MAX_DESCRIBE_SIZE) diff --git a/engines/tony/mpal/mpal.cpp b/engines/tony/mpal/mpal.cpp index 89cc28130d..9172843781 100644 --- a/engines/tony/mpal/mpal.cpp +++ b/engines/tony/mpal/mpal.cpp @@ -367,12 +367,18 @@ MpalHandle resLoad(uint32 dwId) { temp = (byte *)globalAlloc(GMEM_FIXED | GMEM_ZEROINIT, nSizeComp); nBytesRead = GLOBALS._hMpr.read(temp, nSizeComp); - if (nBytesRead != nSizeComp) + if (nBytesRead != nSizeComp) { + globalDestroy(temp); + globalDestroy(h); return NULL; + } lzo1x_decompress(temp, nSizeComp, buf, &nBytesRead); - if (nBytesRead != nSizeDecomp) + if (nBytesRead != nSizeDecomp) { + globalDestroy(temp); + globalDestroy(h); return NULL; + } globalDestroy(temp); globalUnlock(h); @@ -526,8 +532,10 @@ static LpItem getItemData(uint32 nOrdItem) { globalFree(hDat); // Check if we've got to the end of the file - if (i != 0xABCD) + if (i != 0xABCD) { + globalDestroy(ret); return NULL; + } return ret; } @@ -1413,36 +1421,51 @@ bool mpalInit(const char *lpszMpcFileName, const char *lpszMprFileName, if (bCompress) { // Get the compressed size and read the data in uint32 dwSizeComp = hMpc.readUint32LE(); - if (hMpc.err()) + if (hMpc.err()) { + globalDestroy(lpMpcImage); return false; + } cmpbuf = (byte *)globalAlloc(GMEM_FIXED, dwSizeComp); - if (cmpbuf == NULL) + if (cmpbuf == NULL) { + globalDestroy(lpMpcImage); return false; + } nBytesRead = hMpc.read(cmpbuf, dwSizeComp); - if (nBytesRead != dwSizeComp) + if (nBytesRead != dwSizeComp) { + globalDestroy(cmpbuf); + globalDestroy(lpMpcImage); return false; + } // Decompress the data lzo1x_decompress(cmpbuf, dwSizeComp, lpMpcImage, &nBytesRead); - if (nBytesRead != dwSizeDecomp) + if (nBytesRead != dwSizeDecomp) { + globalDestroy(cmpbuf); + globalDestroy(lpMpcImage); return false; + } globalDestroy(cmpbuf); } else { // If the file is not compressed, we directly read in the data nBytesRead = hMpc.read(lpMpcImage, dwSizeDecomp); - if (nBytesRead != dwSizeDecomp) + if (nBytesRead != dwSizeDecomp) { + globalDestroy(lpMpcImage); return false; + } } // Close the file hMpc.close(); // Process the data - if (parseMpc(lpMpcImage) == false) + if (parseMpc(lpMpcImage) == false) { + globalDestroy(lpMpcImage); + return false; + } globalDestroy(lpMpcImage); diff --git a/engines/toon/toon.cpp b/engines/toon/toon.cpp index 3ab23a1e51..169e2eff7b 100644 --- a/engines/toon/toon.cpp +++ b/engines/toon/toon.cpp @@ -35,7 +35,6 @@ #include "graphics/surface.h" #include "graphics/thumbnail.h" #include "gui/saveload.h" -#include "gui/about.h" #include "gui/message.h" #include "toon/resource.h" #include "toon/toon.h" diff --git a/engines/touche/touche.cpp b/engines/touche/touche.cpp index ff4f41f44d..bb21f399c6 100644 --- a/engines/touche/touche.cpp +++ b/engines/touche/touche.cpp @@ -32,6 +32,7 @@ #include "common/keyboard.h" #include "common/textconsole.h" +#include "audio/audiostream.h" #include "audio/mixer.h" #include "engines/util.h" diff --git a/engines/touche/touche.h b/engines/touche/touche.h index 3de5b8caf2..33c415d9dc 100644 --- a/engines/touche/touche.h +++ b/engines/touche/touche.h @@ -31,7 +31,6 @@ #include "common/util.h" #include "audio/mixer.h" -#include "audio/audiostream.h" #include "engines/engine.h" diff --git a/engines/tsage/blue_force/blueforce_dialogs.cpp b/engines/tsage/blue_force/blueforce_dialogs.cpp index 3697ca700e..99db61b64d 100644 --- a/engines/tsage/blue_force/blueforce_dialogs.cpp +++ b/engines/tsage/blue_force/blueforce_dialogs.cpp @@ -20,9 +20,6 @@ * */ -#include "gui/dialog.h" -#include "gui/widget.h" - #include "tsage/tsage.h" #include "tsage/core.h" #include "tsage/dialogs.h" diff --git a/engines/tsage/blue_force/blueforce_dialogs.h b/engines/tsage/blue_force/blueforce_dialogs.h index 77017db9d0..38ec7a7828 100644 --- a/engines/tsage/blue_force/blueforce_dialogs.h +++ b/engines/tsage/blue_force/blueforce_dialogs.h @@ -23,13 +23,10 @@ #ifndef TSAGE_BLUEFORCE_DIALOGS_H #define TSAGE_BLUEFORCE_DIALOGS_H -#include "gui/options.h" +#include "tsage/core.h" #include "tsage/dialogs.h" #include "tsage/events.h" #include "tsage/graphics.h" -#include "common/list.h" -#include "common/rect.h" -#include "common/system.h" namespace TsAGE { diff --git a/engines/tsage/blue_force/blueforce_scenes1.cpp b/engines/tsage/blue_force/blueforce_scenes1.cpp index 1cbebd140e..6c37d18cc7 100644 --- a/engines/tsage/blue_force/blueforce_scenes1.cpp +++ b/engines/tsage/blue_force/blueforce_scenes1.cpp @@ -22,6 +22,7 @@ #include "common/config-manager.h" #include "tsage/blue_force/blueforce_scenes1.h" +#include "tsage/dialogs.h" #include "tsage/scenes.h" #include "tsage/tsage.h" #include "tsage/staticres.h" diff --git a/engines/tsage/blue_force/blueforce_scenes4.cpp b/engines/tsage/blue_force/blueforce_scenes4.cpp index 50f8499b3b..7c5b41092c 100644 --- a/engines/tsage/blue_force/blueforce_scenes4.cpp +++ b/engines/tsage/blue_force/blueforce_scenes4.cpp @@ -21,7 +21,6 @@ */ #include "tsage/blue_force/blueforce_scenes4.h" -#include "tsage/blue_force/blueforce_dialogs.h" #include "tsage/scenes.h" #include "tsage/tsage.h" #include "tsage/staticres.h" diff --git a/engines/tsage/blue_force/blueforce_scenes5.cpp b/engines/tsage/blue_force/blueforce_scenes5.cpp index 562facd000..b757860dda 100644 --- a/engines/tsage/blue_force/blueforce_scenes5.cpp +++ b/engines/tsage/blue_force/blueforce_scenes5.cpp @@ -21,7 +21,6 @@ */ #include "tsage/blue_force/blueforce_scenes5.h" -#include "tsage/blue_force/blueforce_dialogs.h" #include "tsage/scenes.h" #include "tsage/tsage.h" #include "tsage/staticres.h" diff --git a/engines/tsage/blue_force/blueforce_scenes6.cpp b/engines/tsage/blue_force/blueforce_scenes6.cpp index 0d6b5c2487..921b2c89d0 100644 --- a/engines/tsage/blue_force/blueforce_scenes6.cpp +++ b/engines/tsage/blue_force/blueforce_scenes6.cpp @@ -21,7 +21,6 @@ */ #include "tsage/blue_force/blueforce_scenes6.h" -#include "tsage/blue_force/blueforce_dialogs.h" #include "tsage/scenes.h" #include "tsage/tsage.h" #include "tsage/staticres.h" diff --git a/engines/tsage/blue_force/blueforce_scenes8.cpp b/engines/tsage/blue_force/blueforce_scenes8.cpp index 337e73dad0..15767215c5 100644 --- a/engines/tsage/blue_force/blueforce_scenes8.cpp +++ b/engines/tsage/blue_force/blueforce_scenes8.cpp @@ -21,7 +21,6 @@ */ #include "tsage/blue_force/blueforce_scenes8.h" -#include "tsage/blue_force/blueforce_dialogs.h" #include "tsage/scenes.h" #include "tsage/tsage.h" #include "tsage/staticres.h" diff --git a/engines/tsage/dialogs.cpp b/engines/tsage/dialogs.cpp index dd4bc6aa86..3704ce1f04 100644 --- a/engines/tsage/dialogs.cpp +++ b/engines/tsage/dialogs.cpp @@ -23,6 +23,7 @@ #include "common/translation.h" #include "gui/dialog.h" +#include "gui/options.h" #include "gui/widget.h" #include "tsage/tsage.h" @@ -91,6 +92,11 @@ int MessageDialog::show2(const Common::String &message, const Common::String &bt /*--------------------------------------------------------------------------*/ +class ConfigDialog : public GUI::OptionsDialog { +public: + ConfigDialog(); +}; + ConfigDialog::ConfigDialog() : GUI::OptionsDialog("", "GlobalConfig") { // // Sound controllers diff --git a/engines/tsage/dialogs.h b/engines/tsage/dialogs.h index 8ab37f6c93..33a5fa47a4 100644 --- a/engines/tsage/dialogs.h +++ b/engines/tsage/dialogs.h @@ -23,7 +23,6 @@ #ifndef TSAGE_DIALOGS_H #define TSAGE_DIALOGS_H -#include "gui/options.h" #include "tsage/events.h" #include "tsage/graphics.h" #include "common/list.h" @@ -44,11 +43,6 @@ public: static int show2(const Common::String &message, const Common::String &btn1Message, const Common::String &btn2Message = Common::String()); }; -class ConfigDialog : public GUI::OptionsDialog { -public: - ConfigDialog(); -}; - /*--------------------------------------------------------------------------*/ class ModalDialog : public GfxDialog { diff --git a/engines/tsage/globals.h b/engines/tsage/globals.h index e1ebe261dc..8a441db922 100644 --- a/engines/tsage/globals.h +++ b/engines/tsage/globals.h @@ -25,7 +25,6 @@ #include "common/random.h" #include "tsage/core.h" -#include "tsage/dialogs.h" #include "tsage/scenes.h" #include "tsage/events.h" #include "tsage/sound.h" diff --git a/engines/tsage/ringworld/ringworld_demo.cpp b/engines/tsage/ringworld/ringworld_demo.cpp index cd2ab07a50..9aab0c4d21 100644 --- a/engines/tsage/ringworld/ringworld_demo.cpp +++ b/engines/tsage/ringworld/ringworld_demo.cpp @@ -21,6 +21,7 @@ */ #include "tsage/ringworld/ringworld_demo.h" +#include "tsage/dialogs.h" #include "tsage/scenes.h" #include "tsage/tsage.h" #include "tsage/staticres.h" @@ -79,11 +80,7 @@ void RingworldDemoGame::processEvent(Event &event) { case Common::KEYCODE_F2: { // F2 - Sound Options - ConfigDialog *dlg = new ConfigDialog(); - dlg->runModal(); - delete dlg; - g_globals->_soundManager.syncSounds(); - g_globals->_events.setCursorFromFlag(); + SoundDialog::execute(); break; } diff --git a/engines/tsage/ringworld/ringworld_dialogs.cpp b/engines/tsage/ringworld/ringworld_dialogs.cpp index 9fa17f3920..bc357cac25 100644 --- a/engines/tsage/ringworld/ringworld_dialogs.cpp +++ b/engines/tsage/ringworld/ringworld_dialogs.cpp @@ -20,9 +20,6 @@ * */ -#include "gui/dialog.h" -#include "gui/widget.h" - #include "tsage/tsage.h" #include "tsage/core.h" #include "tsage/dialogs.h" diff --git a/engines/tsage/ringworld/ringworld_dialogs.h b/engines/tsage/ringworld/ringworld_dialogs.h index 68ac0a05f9..4753968bf3 100644 --- a/engines/tsage/ringworld/ringworld_dialogs.h +++ b/engines/tsage/ringworld/ringworld_dialogs.h @@ -23,7 +23,7 @@ #ifndef TSAGE_RINGWORLD_DIALOGS_H #define TSAGE_RINGWORLD_DIALOGS_H -#include "gui/options.h" +#include "tsage/dialogs.h" #include "tsage/events.h" #include "tsage/graphics.h" #include "common/list.h" diff --git a/engines/tsage/ringworld/ringworld_scenes2.cpp b/engines/tsage/ringworld/ringworld_scenes2.cpp index 1140f6f3d1..6811d3c3e8 100644 --- a/engines/tsage/ringworld/ringworld_scenes2.cpp +++ b/engines/tsage/ringworld/ringworld_scenes2.cpp @@ -22,6 +22,7 @@ #include "common/config-manager.h" #include "tsage/ringworld/ringworld_scenes2.h" +#include "tsage/dialogs.h" #include "tsage/scenes.h" #include "tsage/tsage.h" #include "tsage/staticres.h" diff --git a/engines/tsage/ringworld2/ringworld2_dialogs.cpp b/engines/tsage/ringworld2/ringworld2_dialogs.cpp index 027fb558db..5cd124f91d 100644 --- a/engines/tsage/ringworld2/ringworld2_dialogs.cpp +++ b/engines/tsage/ringworld2/ringworld2_dialogs.cpp @@ -22,9 +22,6 @@ #include "common/translation.h" -#include "gui/dialog.h" -#include "gui/widget.h" - #include "tsage/tsage.h" #include "tsage/core.h" #include "tsage/dialogs.h" diff --git a/engines/tsage/ringworld2/ringworld2_dialogs.h b/engines/tsage/ringworld2/ringworld2_dialogs.h index 3d1e1ad48c..71e0c23f35 100644 --- a/engines/tsage/ringworld2/ringworld2_dialogs.h +++ b/engines/tsage/ringworld2/ringworld2_dialogs.h @@ -23,7 +23,7 @@ #ifndef TSAGE_RINGWORLD2_DIALOGS_H #define TSAGE_RINGWORLD2_DIALOGS_H -#include "gui/options.h" +#include "tsage/core.h" #include "tsage/dialogs.h" #include "tsage/events.h" #include "tsage/graphics.h" diff --git a/engines/tsage/ringworld2/ringworld2_outpost.cpp b/engines/tsage/ringworld2/ringworld2_outpost.cpp index 8c64970bda..d0d67031ec 100644 --- a/engines/tsage/ringworld2/ringworld2_outpost.cpp +++ b/engines/tsage/ringworld2/ringworld2_outpost.cpp @@ -21,6 +21,7 @@ */ #include "graphics/cursorman.h" +#include "tsage/dialogs.h" #include "tsage/tsage.h" #include "tsage/staticres.h" #include "tsage/ringworld2/ringworld2_outpost.h" diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp index 81dc05e2a4..70937fcbc4 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp @@ -23,6 +23,7 @@ #include "graphics/cursorman.h" #include "tsage/scenes.h" +#include "tsage/dialogs.h" #include "tsage/tsage.h" #include "tsage/staticres.h" #include "tsage/ringworld2/ringworld2_scenes1.h" diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.cpp b/engines/tsage/ringworld2/ringworld2_scenes2.cpp index bd8a0cdd0d..6b44ecc514 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes2.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes2.cpp @@ -1440,7 +1440,7 @@ void Scene2425::postInit(SceneObjectList *OwnerList) { case 2425: _sceneMode = 10; R2_GLOBALS._player.setPosition(Common::Point(280, 150)); - _action->signal(); + signal(); break; case 2455: _sceneMode = 2428; diff --git a/engines/tsage/scenes.cpp b/engines/tsage/scenes.cpp index 095c0d7ab5..6f2f953aee 100644 --- a/engines/tsage/scenes.cpp +++ b/engines/tsage/scenes.cpp @@ -23,6 +23,7 @@ #include "common/config-manager.h" #include "common/translation.h" #include "gui/saveload.h" +#include "tsage/dialogs.h" #include "tsage/scenes.h" #include "tsage/globals.h" #include "tsage/ringworld/ringworld_logic.h" diff --git a/engines/tsage/sound.h b/engines/tsage/sound.h index 68755a48c8..da56c8bfa5 100644 --- a/engines/tsage/sound.h +++ b/engines/tsage/sound.h @@ -26,12 +26,15 @@ #include "common/scummsys.h" #include "common/mutex.h" #include "common/queue.h" -#include "audio/audiostream.h" #include "audio/mixer.h" #include "common/list.h" #include "tsage/saveload.h" #include "tsage/core.h" +namespace Audio { +class QueuingAudioStream; +} + namespace OPL { class OPL; } diff --git a/engines/tsage/tsage.h b/engines/tsage/tsage.h index 1a29700a10..dd077e526f 100644 --- a/engines/tsage/tsage.h +++ b/engines/tsage/tsage.h @@ -24,9 +24,6 @@ #define TSAGE_H #include "engines/engine.h" -#include "common/rect.h" -#include "audio/mixer.h" -#include "common/file.h" #include "gui/debugger.h" #include "tsage/core.h" diff --git a/engines/voyeur/animation.h b/engines/voyeur/animation.h index bc6d8a361a..c20ccf7284 100644 --- a/engines/voyeur/animation.h +++ b/engines/voyeur/animation.h @@ -26,13 +26,16 @@ #include "video/video_decoder.h" #include "audio/audiostream.h" #include "audio/mixer.h" -#include "audio/timestamp.h" #include "common/array.h" #include "common/list.h" #include "common/rect.h" #include "common/stream.h" #include "voyeur/files.h" +namespace Audio { +class Timestamp; +} + namespace Voyeur { class VoyeurEngine; diff --git a/engines/voyeur/sound.cpp b/engines/voyeur/sound.cpp index f47fdde3e1..483dfc7cbc 100644 --- a/engines/voyeur/sound.cpp +++ b/engines/voyeur/sound.cpp @@ -22,6 +22,8 @@ #include "audio/audiostream.h" #include "audio/decoders/raw.h" +#include "audio/decoders/voc.h" +#include "common/file.h" #include "common/memstream.h" #include "voyeur/sound.h" #include "voyeur/staticres.h" diff --git a/engines/voyeur/sound.h b/engines/voyeur/sound.h index af1d0b1b46..fd1d126ef0 100644 --- a/engines/voyeur/sound.h +++ b/engines/voyeur/sound.h @@ -26,8 +26,6 @@ #include "common/scummsys.h" #include "common/str.h" #include "audio/mixer.h" -#include "audio/decoders/voc.h" -#include "voyeur/files.h" namespace Voyeur { diff --git a/engines/wage/debugger.cpp b/engines/wage/debugger.cpp index 7d01b0b85e..d34aca7d49 100644 --- a/engines/wage/debugger.cpp +++ b/engines/wage/debugger.cpp @@ -56,7 +56,7 @@ static int strToInt(const char *s) { } bool Debugger::Cmd_ListScenes(int argc, const char **argv) { - int currentScene; + int currentScene = 0; for (uint i = 1; i < _engine->_world->_orderedScenes.size(); i++) { // #0 is STORAGE@ if (_engine->_world->_player->_currentScene == _engine->_world->_orderedScenes[i]) diff --git a/engines/wage/design.cpp b/engines/wage/design.cpp index 907a1ec435..eda28df159 100644 --- a/engines/wage/design.cpp +++ b/engines/wage/design.cpp @@ -45,20 +45,22 @@ * */ +#include "graphics/managed_surface.h" #include "graphics/primitives.h" -#include "wage/wage.h" + +#include "wage/macwindowmanager.h" #include "wage/design.h" namespace Wage { struct PlotData { - Graphics::Surface *surface; + Graphics::ManagedSurface *surface; Patterns *patterns; uint fillType; int thickness; Design *design; - PlotData(Graphics::Surface *s, Patterns *p, int f, int t, Design *d) : + PlotData(Graphics::ManagedSurface *s, Patterns *p, int f, int t, Design *d) : surface(s), patterns(p), fillType(f), thickness(t), design(d) {} }; @@ -83,7 +85,7 @@ Design::~Design() { delete _surface; } -void Design::paint(Graphics::Surface *surface, Patterns &patterns, int x, int y) { +void Design::paint(Graphics::ManagedSurface *surface, Patterns &patterns, int x, int y) { bool needRender = false; if (_surface == NULL) { @@ -96,11 +98,10 @@ void Design::paint(Graphics::Surface *surface, Patterns &patterns, int x, int y) } _bounds->debugPrint(4, "Calculated bounds:"); - _surface = new Graphics::Surface; + _surface = new Graphics::ManagedSurface; _surface->create(_bounds->width(), _bounds->height(), Graphics::PixelFormat::createFormatCLUT8()); - Common::Rect r(0, 0, _bounds->width(), _bounds->height()); - _surface->fillRect(r, kColorGreen); + _surface->clear(kColorGreen); needRender = true; } @@ -133,16 +134,10 @@ void Design::paint(Graphics::Surface *surface, Patterns &patterns, int x, int y) if (_bounds->width() && _bounds->height()) { const int padding = 3; - for (int i = padding; i < _bounds->height() - 2 * padding; i++) { - const byte *src = (const byte *)_surface->getBasePtr(padding, i); - byte *dst = (byte *)surface->getBasePtr(x + padding, y+i); - for (int j = padding; j < _bounds->width() - 2 * padding; j++) { - if (*src != kColorGreen) - *dst = *src; - src++; - dst++; - } - } + Common::Rect from(padding, padding, _bounds->width() - 2 * padding, _bounds->height() - 2 * padding); + Common::Rect to(from); + to.moveTo(x, y); + surface->transBlitFrom(*_surface, from, to, kColorGreen); } } @@ -215,9 +210,9 @@ void drawPixel(int x, int y, int color, void *data) { if (p->thickness == 1) { p->design->adjustBounds(x, y); } else { - int x1 = x - p->thickness / 2; + int x1 = x; int x2 = x1 + p->thickness; - int y1 = y - p->thickness / 2; + int y1 = y; int y2 = y1 + p->thickness; for (y = y1; y < y2; y++) @@ -240,9 +235,9 @@ void drawPixel(int x, int y, int color, void *data) { color : kColorWhite; } } else { - int x1 = x - p->thickness / 2; + int x1 = x; int x2 = x1 + p->thickness; - int y1 = y - p->thickness / 2; + int y1 = y; int y2 = y1 + p->thickness; for (y = y1; y < y2; y++) @@ -269,7 +264,7 @@ void drawPixelPlain(int x, int y, int color, void *data) { *((byte *)p->surface->getBasePtr(x, y)) = (byte)color; } -void Design::drawRect(Graphics::Surface *surface, Common::ReadStream &in, +void Design::drawRect(Graphics::ManagedSurface *surface, Common::ReadStream &in, Patterns &patterns, byte fillType, byte borderThickness, byte borderFillType) { int16 y1 = in.readSint16BE(); int16 x1 = in.readSint16BE(); @@ -298,7 +293,7 @@ void Design::drawRect(Graphics::Surface *surface, Common::ReadStream &in, } } -void Design::drawRoundRect(Graphics::Surface *surface, Common::ReadStream &in, +void Design::drawRoundRect(Graphics::ManagedSurface *surface, Common::ReadStream &in, Patterns &patterns, byte fillType, byte borderThickness, byte borderFillType) { int16 y1 = in.readSint16BE(); int16 x1 = in.readSint16BE(); @@ -324,7 +319,7 @@ void Design::drawRoundRect(Graphics::Surface *surface, Common::ReadStream &in, Graphics::drawRoundRect(r, arc / 2, kColorBlack, false, drawPixel, &pd); } -void Design::drawPolygon(Graphics::Surface *surface, Common::ReadStream &in, +void Design::drawPolygon(Graphics::ManagedSurface *surface, Common::ReadStream &in, Patterns &patterns, byte fillType, byte borderThickness, byte borderFillType) { byte ignored = in.readSint16BE(); // ignored @@ -401,7 +396,7 @@ void Design::drawPolygon(Graphics::Surface *surface, Common::ReadStream &in, free(ypoints); } -void Design::drawOval(Graphics::Surface *surface, Common::ReadStream &in, +void Design::drawOval(Graphics::ManagedSurface *surface, Common::ReadStream &in, Patterns &patterns, byte fillType, byte borderThickness, byte borderFillType) { int16 y1 = in.readSint16BE(); int16 x1 = in.readSint16BE(); @@ -419,7 +414,7 @@ void Design::drawOval(Graphics::Surface *surface, Common::ReadStream &in, Graphics::drawEllipse(x1, y1, x2-1, y2-1, kColorBlack, false, drawPixel, &pd); } -void Design::drawBitmap(Graphics::Surface *surface, Common::SeekableReadStream &in) { +void Design::drawBitmap(Graphics::ManagedSurface *surface, Common::SeekableReadStream &in) { int numBytes = in.readSint16BE(); int y1 = in.readSint16BE(); int x1 = in.readSint16BE(); @@ -427,7 +422,7 @@ void Design::drawBitmap(Graphics::Surface *surface, Common::SeekableReadStream & int x2 = in.readSint16BE(); int w = x2 - x1; int h = y2 - y1; - Graphics::Surface tmp; + Graphics::ManagedSurface tmp; tmp.create(w, h, Graphics::PixelFormat::createFormatCLUT8()); @@ -507,11 +502,11 @@ void Design::drawBitmap(Graphics::Surface *surface, Common::SeekableReadStream & tmp.free(); } -void Design::drawRect(Graphics::Surface *surface, Common::Rect &rect, int thickness, int color, Patterns &patterns, byte fillType) { +void Design::drawRect(Graphics::ManagedSurface *surface, Common::Rect &rect, int thickness, int color, Patterns &patterns, byte fillType) { drawRect(surface, rect.left, rect.top, rect.right, rect.bottom, thickness, color, patterns, fillType); } -void Design::drawRect(Graphics::Surface *surface, int x1, int y1, int x2, int y2, int thickness, int color, Patterns &patterns, byte fillType) { +void Design::drawRect(Graphics::ManagedSurface *surface, int x1, int y1, int x2, int y2, int thickness, int color, Patterns &patterns, byte fillType) { PlotData pd(surface, &patterns, fillType, thickness, nullptr); Graphics::drawLine(x1, y1, x2, y1, kColorBlack, drawPixel, &pd); @@ -521,32 +516,32 @@ void Design::drawRect(Graphics::Surface *surface, int x1, int y1, int x2, int y2 } -void Design::drawFilledRect(Graphics::Surface *surface, Common::Rect &rect, int color, Patterns &patterns, byte fillType) { +void Design::drawFilledRect(Graphics::ManagedSurface *surface, Common::Rect &rect, int color, Patterns &patterns, byte fillType) { PlotData pd(surface, &patterns, fillType, 1, nullptr); for (int y = rect.top; y <= rect.bottom; y++) Graphics::drawHLine(rect.left, rect.right, y, color, drawPixel, &pd); } -void Design::drawFilledRoundRect(Graphics::Surface *surface, Common::Rect &rect, int arc, int color, Patterns &patterns, byte fillType) { +void Design::drawFilledRoundRect(Graphics::ManagedSurface *surface, Common::Rect &rect, int arc, int color, Patterns &patterns, byte fillType) { PlotData pd(surface, &patterns, fillType, 1, nullptr); Graphics::drawRoundRect(rect, arc, color, true, drawPixel, &pd); } -void Design::drawHLine(Graphics::Surface *surface, int x1, int x2, int y, int thickness, int color, Patterns &patterns, byte fillType) { +void Design::drawHLine(Graphics::ManagedSurface *surface, int x1, int x2, int y, int thickness, int color, Patterns &patterns, byte fillType) { PlotData pd(surface, &patterns, fillType, thickness, nullptr); Graphics::drawHLine(x1, x2, y, color, drawPixel, &pd); } -void Design::drawVLine(Graphics::Surface *surface, int x, int y1, int y2, int thickness, int color, Patterns &patterns, byte fillType) { +void Design::drawVLine(Graphics::ManagedSurface *surface, int x, int y1, int y2, int thickness, int color, Patterns &patterns, byte fillType) { PlotData pd(surface, &patterns, fillType, thickness, nullptr); Graphics::drawVLine(x, y1, y2, color, drawPixel, &pd); } -FloodFill::FloodFill(Graphics::Surface *surface, byte color1, byte color2) { +FloodFill::FloodFill(Graphics::ManagedSurface *surface, byte color1, byte color2) { _surface = surface; _color1 = color1; _color2 = color2; diff --git a/engines/wage/design.h b/engines/wage/design.h index e8f42f4e04..9b0231ca96 100644 --- a/engines/wage/design.h +++ b/engines/wage/design.h @@ -48,10 +48,11 @@ #ifndef WAGE_DESIGN_H #define WAGE_DESIGN_H -#include "graphics/surface.h" #include "common/memstream.h" #include "common/rect.h" +#include "wage/macwindowmanager.h" + namespace Wage { class Design { @@ -67,14 +68,14 @@ public: return _bounds; } - void paint(Graphics::Surface *canvas, Patterns &patterns, int x, int y); + void paint(Graphics::ManagedSurface *canvas, Patterns &patterns, int x, int y); bool isPointOpaque(int x, int y); - static void drawRect(Graphics::Surface *surface, Common::Rect &rect, int thickness, int color, Patterns &patterns, byte fillType); - static void drawRect(Graphics::Surface *surface, int x1, int y1, int x2, int y2, int thickness, int color, Patterns &patterns, byte fillType); - static void drawFilledRect(Graphics::Surface *surface, Common::Rect &rect, int color, Patterns &patterns, byte fillType); - static void drawFilledRoundRect(Graphics::Surface *surface, Common::Rect &rect, int arc, int color, Patterns &patterns, byte fillType); - static void drawHLine(Graphics::Surface *surface, int x1, int x2, int y, int thickness, int color, Patterns &patterns, byte fillType); - static void drawVLine(Graphics::Surface *surface, int x, int y1, int y2, int thickness, int color, Patterns &patterns, byte fillType); + static void drawRect(Graphics::ManagedSurface *surface, Common::Rect &rect, int thickness, int color, Patterns &patterns, byte fillType); + static void drawRect(Graphics::ManagedSurface *surface, int x1, int y1, int x2, int y2, int thickness, int color, Patterns &patterns, byte fillType); + static void drawFilledRect(Graphics::ManagedSurface *surface, Common::Rect &rect, int color, Patterns &patterns, byte fillType); + static void drawFilledRoundRect(Graphics::ManagedSurface *surface, Common::Rect &rect, int arc, int color, Patterns &patterns, byte fillType); + static void drawHLine(Graphics::ManagedSurface *surface, int x1, int x2, int y, int thickness, int color, Patterns &patterns, byte fillType); + static void drawVLine(Graphics::ManagedSurface *surface, int x, int y1, int y2, int thickness, int color, Patterns &patterns, byte fillType); bool isBoundsCalculation() { return _boundsCalculationMode; } void adjustBounds(int16 x, int16 y); @@ -83,32 +84,32 @@ private: byte *_data; int _len; Common::Rect *_bounds; - Graphics::Surface *_surface; + Graphics::ManagedSurface *_surface; bool _boundsCalculationMode; private: void render(Patterns &patterns); - void drawRect(Graphics::Surface *surface, Common::ReadStream &in, + void drawRect(Graphics::ManagedSurface *surface, Common::ReadStream &in, Patterns &patterns, byte fillType, byte borderThickness, byte borderFillType); - void drawRoundRect(Graphics::Surface *surface, Common::ReadStream &in, + void drawRoundRect(Graphics::ManagedSurface *surface, Common::ReadStream &in, Patterns &patterns, byte fillType, byte borderThickness, byte borderFillType); - void drawPolygon(Graphics::Surface *surface, Common::ReadStream &in, + void drawPolygon(Graphics::ManagedSurface *surface, Common::ReadStream &in, Patterns &patterns, byte fillType, byte borderThickness, byte borderFillType); - void drawOval(Graphics::Surface *surface, Common::ReadStream &in, + void drawOval(Graphics::ManagedSurface *surface, Common::ReadStream &in, Patterns &patterns, byte fillType, byte borderThickness, byte borderFillType); - void drawBitmap(Graphics::Surface *surface, Common::SeekableReadStream &in); + void drawBitmap(Graphics::ManagedSurface *surface, Common::SeekableReadStream &in); }; class FloodFill { public: - FloodFill(Graphics::Surface *surface, byte color1, byte color2); + FloodFill(Graphics::ManagedSurface *surface, byte color1, byte color2); ~FloodFill(); void addSeed(int x, int y); void fill(); private: Common::List<Common::Point *> _queue; - Graphics::Surface *_surface; + Graphics::ManagedSurface *_surface; byte _color1, _color2; byte *_visited; int _w, _h; diff --git a/engines/wage/detection.cpp b/engines/wage/detection.cpp index 512d432e54..1b418b5aa8 100644 --- a/engines/wage/detection.cpp +++ b/engines/wage/detection.cpp @@ -54,6 +54,7 @@ static const PlainGameDescriptor wageGames[] = { class WageMetaEngine : public AdvancedMetaEngine { public: WageMetaEngine() : AdvancedMetaEngine(Wage::gameDescriptions, sizeof(ADGameDescription), wageGames) { + _md5Bytes = 50000; _singleId = "wage"; _guiOptions = GUIO2(GUIO_NOSPEECH, GUIO_NOMIDI); } diff --git a/engines/wage/detection_tables.h b/engines/wage/detection_tables.h index 530b56c962..59d93cc12f 100644 --- a/engines/wage/detection_tables.h +++ b/engines/wage/detection_tables.h @@ -32,113 +32,147 @@ namespace Wage { #define BIGGAME(t,v,f,m,s) { t,v,AD_ENTRY1s(f,m,s),Common::EN_ANY,Common::kPlatformMacintosh,ADGF_DEFAULT,GUIO0()} static const ADGameDescription gameDescriptions[] = { - FANGAME("3rd Floor", "913812a1ac7a6b0e48dadd1afa1c7763", 281409), - BIGGAME("afm", "v1.8", "Another Fine Mess 1.8", "94a9c4f8b3dabd1846d76215a49bd221", 1420723), - BIGGAME("amot", "v1.8", "A Mess O' Trouble 1.8", "26207bdf0bb539464f136f0669af885f", 1843104), - // No Next on the first screen? - FANGAME("Brownie's Dream", "94a9c4f8b3dabd1846d76215a49bd221", 440704), - FANGAMEN("Brownie's Time Travels", "Brownie's Time Travels v1.2", "94a9c4f8b3dabd1846d76215a49bd221", 471589), - FANGAME("Bug Hunt", "595117cbed33e8de1ab3714b33880205", 195699), - BIGGAME("cantitoe", "", "Camp Cantitoe", "913812a1ac7a6b0e48dadd1afa1c7763", 616985), - // Problems with letter rendering - FANGAME("Canal District", "a56aa3cd4a6e070e15ce1d5815c7be0a", 641470), - FANGAME("Carbon Copy", "913812a1ac7a6b0e48dadd1afa1c7763", 519445), + FANGAME("3rd Floor", "3ed49d2163e46d2c9b33fd80927d9e22", 281409), + FANGAME("3rd Floor", "3ed49d2163e46d2c9b33fd80927d9e22", 281423), // alt version + BIGGAME("afm", "v1.8", "Another Fine Mess 1.8", "abc7188469a9a7083fd4caec55a4f76e", 1420723), + BIGGAME("amot", "v1.8", "A Mess O' Trouble 1.8", "6b59e5bb9a4b74ecdd9f66d4e36a59cf", 1843104), + // Crash on third screen + FANGAME("Brownie's Dream", "6fdcce532bcd50b7e4f3f6bab50a0ee6", 440704), + FANGAMEN("Brownie's Time Travels", "Brownie's Time Travels v1.2", "55842a100b56e236c5ad69563e01fc24", 471589), + FANGAME("Bug Hunt", "738e2e8a1020be48c5ef42da571674ae", 195699), + FANGAME("Bug Hunt", "118a41121143488719d28daa9af8cd39", 195779), // alt version + BIGGAME("cantitoe", "", "Camp Cantitoe", "1780c41d14b876461a19dbeceebf2a37", 616985), + FANGAME("Canal District", "34e7a8e84b33ba8ea38b4ffd76ef074f", 641470), + FANGAME("Carbon Copy", "9e781acd63290ae390d515cffc742011", 519445), // Invalid rect in scene "FINALE" - FANGAME("Castle of Ert", "327610eb2298a9427a566288312df040", 198955), - FANGAME("Deep Angst", "b130b3c811cd89024dd5fdd2b71f70b8", 329550), - FANGAME("Deep Ennui", "913812a1ac7a6b0e48dadd1afa1c7763", 86075), + FANGAME("Castle of Ert", "a45b439bb3a9c8a4a14b996024222068", 198955), + FANGAMEN("Castle of Ert", "Castle of Ert.1", "a45b439bb3a9c8a4a14b996024222068", 198983), // alt version + FANGAMEND("Death Mall", "Death Mall Demo", "1c78fc15fb037b242a0bc6bac7d4d889", 254874), + FANGAME("Deep Angst", "7f8821f7b279269a91f9aadfed98eec0", 329550), // Original gile name "Deep Angstā¢" + FANGAME("Deep Ennui", "7fa4368834a22a9d4b7246a6297b455f", 86075), // Polygons with ignored byte 1 - FANGAME("Double Trouble", "1652e36857a04c01dc560234c4818619", 542371), - BIGGAME("drakmythcastle", "disk I", "Drakmyth Castle disk I of II", "94a9c4f8b3dabd1846d76215a49bd221", 793784), - BIGGAME("drakmythcastle", "disk II", "Drakmyth Castle II", "cc978cc9a5256724702463cb5aaaffa0", 1685659), + FANGAME("Double Trouble", "3f0c032377d87704267283380800633a", 542371), + BIGGAME("drakmythcastle", "disk I", "Drakmyth Castle disk I of II", "5b1fd760fbc081c608acebfe1d07a58a", 793784), + BIGGAME("drakmythcastle", "disk II", "Drakmyth Castle II", "1116f9c2c781f79e1f9c868b51ae7fa5", 1685659), // Crash at start in GUI rendering - FANGAME("Dune Eternity", "94a9c4f8b3dabd1846d76215a49bd221", 290201), // Original file name is "***DUNE ETERNITY*** " - FANGAMEN("Dungeon World II", "DungeonWorld2", "0154ea11d3cbb536c13b4ae9e6902d48", 230199), - FANGAME("Edg's World", "913812a1ac7a6b0e48dadd1afa1c7763", 106769), - FANGAME("Eidisi I", "595117cbed33e8de1ab3714b33880205", 172552), + FANGAME("Dune Eternity", "6b29f82e235815ffc4c9f30dc09968dd", 290201), // Original file name is "***DUNE ETERNITY*** " + FANGAMEN("Dungeon World II", "DungeonWorld2", "753df07166ca48e303d782cc72dd4053", 230199), + // Made for bigger resolution + FANGAME("Dynasty of Dar", "b2e9a5cca28acb85617b1477a5fca3e2", 275693), + FANGAME("Edg's World", "0a3a3aaa36088c514b668f1f62120006", 106769), + FANGAME("Eidisi I", "3d778c0fe7addf5f29e7593ba0fd3953", 172552), + FANGAME("Eidisi I", "8c2fb325a49344568c5536bba36a2556", 172566), // alt version // Problems(?) with text on the first screen - FANGAMEN("Enchanted Pencils", "Enchanted Pencils 0.99 (PG)", "595117cbed33e8de1ab3714b33880205", 408913), - FANGAME("Escape from School!", "913812a1ac7a6b0e48dadd1afa1c7763", 50105), - FANGAME("Everyman 1", "4b0e1a1fbaaa4930accd0f9f0e1519c7", 335705), - FANGAME("Exploration Zeta!", "c477921aeee6ed0f8997ba44447eb2d0", 366599), + FANGAMEN("Enchanted Pencils", "Enchanted Pencils 0.99 (PG)", "9a9777a83e58bebfa6f1662d5e236384", 408913), + FANGAME("Escape!", "3ada261c2d1d9ce6b9da068237472689", 65075), // Original file name "Escape!ā " + FANGAME("Escape from School!", "2055747bb874052333190eb993246a7f", 50105), + FANGAME("Escape from School!", "fcc581e52d1fc8ea4603d7c953fa935a", 50119), // Original file name "Escape from School!ā " + FANGAME("Everyman 1", "e20cebf0091a1b1bf023aac6f28c9011", 335705), + FANGAME("Exploration Zeta!", "6127d9c04ad68f0cbb5f6aa1d95b48a2", 366599), + // Cannot proceed past the first scene + FANGAMEND("Explorer", "Explorer DEMO", "a9ebdecf6c8de95a03e593d877dacc13", 461228), // Crash in console rendering on the first scene - FANGAME("Fantasy Quest", "4b0e1a1fbaaa4930accd0f9f0e1519c7", 762754), - FANGAME("Find the Heart", "595117cbed33e8de1ab3714b33880205", 106235), // From Joshua's Worlds 1.0 - FANGAMEN("Fortune Teller", "Fortune Teller 1.1", "e5df11bfec42dd12b675ad4d98479ef3", 73931), + FANGAME("Fantasy Quest", "b42b0e86e2c84464283640c74b25e015", 762754), + FANGAME("Find the Heart", "aa244c15f2ba8cef468714be34223acd", 106235), // From Joshua's Worlds 1.0 + FANGAME("Find the Heart", "a6834cb230cea1953f5bf1f8f7aacabd", 105885), // From Joshua's Worlds. Alt version + FANGAME("Find the Heart", "a6834cb230cea1953f5bf1f8f7aacabd", 105871), // Standalone + FANGAMEN("Fortune Teller", "Fortune Teller 1.1", "7d2628eeea67b33379e01c0aef8dd196", 73931), + FANGAMEN("Haunted House", "Haunted House 1.5", "5db2f95c7abaa9d060b94271a5bc57f8", 177500), // Cropped graphics on first scene - FANGAME("Intro to Gothic", "d81f2d03a1e863f04fb1e3a5495b720e", 208067), + FANGAME("Intro to Gothic", "6f732eaad6e3b85795f8ee6c6a40d837", 208067), // No Next button in intro - FANGAME("Jamie the Demon Slayer", "94a9c4f8b3dabd1846d76215a49bd221", 232789), - // Problems with window overlay - FANGAMEN("Jumble", "LSJUMBLE", "e12ec4d76d48bdc86567c5e63750547e", 647339), // Original file name is "LSJUMBLEā " - FANGAME("Karth of the Jungle", "595117cbed33e8de1ab3714b33880205", 96711), - FANGAME("Karth of the Jungle", "595117cbed33e8de1ab3714b33880205", 96960), // Alternative version - FANGAME("Karth of the Jungle II", "c106835ab4436de054e03aec3ce904ce", 201053), - FANGAMEN("Little Pythagoras", "Little Pythagoras 1.1.1", "94a9c4f8b3dabd1846d76215a49bd221", 628821), - FANGAME("Lost Crystal", "8174c81ea1858d0079ae040dae2cefd3", 771072), + FANGAME("Jamie the Demon Slayer", "fa0ca9618c18425b6d9bf913f762d91b", 232789), + FANGAMEN("Journey", "The Journey 1.6.2 US", "e66f37472e1414a088eb5d5acc4df794", 820572), + FANGAMEN("Jumble", "LSJUMBLE", "7c46851d2f90c7da9efe40b1688869c2", 647339), // Original file name is "LSJUMBLEā " + FANGAME("Karth of the Jungle", "5f2346834821dc3c4008e139cd37b3cb", 96711), + FANGAME("Karth of the Jungle", "444f9426f342135fbcc32180e5ba5b1c", 96960), // Alternative version + FANGAME("Karth of the Jungle II", "32161b27de894fd9e3f054afc4013f34", 201053), + FANGAMEN("Little Pythagoras", "Little Pythagoras 1.1.1", "75906fa955de695ac3e8164e7d88ac7b", 628821), + FANGAME("Lost Crystal", "d5e27a83f2884a24c6ec26c6cb776fe9", 771072), // Crash in design drawing on startup - FANGAMEN("Lost In Kookyville", "Lost In Kookyville 1.2.4", "e6cea2234cee9d0dba7be10bc1ad6055", 721569), - FANGAME("Magic Rings", "913812a1ac7a6b0e48dadd1afa1c7763", 109044), + FANGAMEN("Lost In Kookyville", "Lost In Kookyville 1.2.4", "5ab6259706b33230dbfba05618c2c5c9", 721569), + FANGAME("Magic Rings", "450e986694b96f3b9e6cc64e57b753dc", 109044), // No way to click on the house - FANGAME("Messy House", "913812a1ac7a6b0e48dadd1afa1c7763", 177120), - FANGAME("Midnight Snack", "913812a1ac7a6b0e48dadd1afa1c7763", 67952), - FANGAME("Midnight Snack", "913812a1ac7a6b0e48dadd1afa1c7763", 67966), // Alt version - FANGAME("Minitorian", "913812a1ac7a6b0e48dadd1afa1c7763", 586464), - FANGAME("M'Lord's Warrior", "7d30b6e68ecf197b2d15492630bdeb89", 465639), // Original file name is "M'Lord's Warrior ā " + FANGAME("Messy House", "705df61da9e7d742b7ad678e59eb7bfb", 177120), + FANGAME("Midnight Snack", "76986389f9a08dd95450c8b9cf408653", 67952), + FANGAME("Midnight Snack", "76986389f9a08dd95450c8b9cf408653", 67966), // Alt version + FANGAME("Mike's House", "3d23c2b88cefd958bcbc4d4c711003d8", 87357), + FANGAME("Minitorian", "15fbb2bd75d83155ed21edbc5dc9558f", 586464), + FANGAME("M'Lord's Warrior", "0bebb2c62529c89590f6c5be6e1e9838", 465639), // Original file name is "M'Lord's Warrior ā " // Unhandled comparison case - FANGAME("Mountain of Mayhem", "4b0e1a1fbaaa4930accd0f9f0e1519c7", 750003), // Original file name "Mountain of Mayhem ā " + FANGAME("Mountain of Mayhem", "4088fc534042081b7ab7b49675ab4a6e", 750003), // Original file name "Mountain of Mayhem ā " // No way to pass through the first screen - FANGAME("Nightcrawler Ned", "94a9c4f8b3dabd1846d76215a49bd221", 366542), + FANGAME("Nightcrawler Ned", "0cf27bf82de299c69405f7910146bf00", 366542), // Crash on startup - FANGAMEN("Parrot Talk", "PARROT TALK V1", "d81f2d03a1e863f04fb1e3a5495b720e", 118936), + FANGAMEN("Parrot Talk", "PARROT TALK V1", "b1570b0779891d5d50a3cf0146d28202", 118936), // Crash on startup - FANGAMEN("Parrot Talk", "PARROT TALKV2", "d81f2d03a1e863f04fb1e3a5495b720e", 118884), - FANGAME("Pavilion", "4d991d7d1534d48d90598d86ea6d5d97", 231687), - FANGAMEN("Pencils", "Pencils.99", "913812a1ac7a6b0e48dadd1afa1c7763", 408551), + FANGAMEN("Parrot Talk", "PARROT TALKV2", "0c1e920ed3ff74b8f22eaaf0d3496d5a", 118884), + FANGAME("Pavilion", "3a33149569325a44d98544452323c819", 231687), + FANGAMEN("Pencils", "Pencils.99", "9c200938488565080e12989e784586e2", 408551), // Polygons with byte 1 - FANGAME("Periapt", "913812a1ac7a6b0e48dadd1afa1c7763", 406006), - FANGAME("Puzzle Piece Search", "595117cbed33e8de1ab3714b33880205", 247693), // From Joshua's Worlds 1.0 + FANGAME("Periapt", "fb4052819126b88d7e03ebc00c669a9d", 406006), + FANGAME("Psychotic!", "6b4ae6261b405e2feac58c5a2ddb67c5", 247693), + FANGAME("Puzzle Piece Search", "6b4ae6261b405e2feac58c5a2ddb67c5", 247693), // From Joshua's Worlds 1.0 + FANGAME("The Puzzle Piece Search", "fb99797c429c18ec68418fdd12af17a1", 247338), // From Joshua's Worlds + FANGAME("The Puzzle Piece Search", "fb99797c429c18ec68418fdd12af17a1", 247324), // Stnadalone // Empty(?) first scene - FANGAME("Pyramid of No Return", "77a55a45f794b4d4a56703d3acce871e", 385145), - FANGAME("Queen Quest", "4b0e1a1fbaaa4930accd0f9f0e1519c7", 57026), - FANGAME("Quest for T-Rex", "913812a1ac7a6b0e48dadd1afa1c7763", 592584), + FANGAME("Pyramid of No Return", "38383ac85cc16703f13f8d82f1398123", 385145), + // Cropped graphics at the first scene + FANGAME("Psychotic!", "29b30e6aae9cc6db5eccb09f695ff25e", 367309), + FANGAME("P-W Adventure", "9bf86fb946683500d23887ef185726ab", 219216), + FANGAMEN("Pyramid of Ert", "Pyramid of Ert V1.2", "fb931cd35440a66864a434c773b496da", 315783), + FANGAME("Queen Quest", "8273e29afe64a984eb0ce7b43fdf3a59", 57039), // alt version + FANGAME("Quest for T-Rex", "f16f2cd525c9aeb4733295d8d842b902", 592584), // Crash in console rendering on the initial scene - FANGAME("Quest for the Dark Sword", "b35dd0c078da9f35fc25a455f56bb129", 572576), - FANGAME("Radical Castle", "677bfee4afeca2f7152eb8b76c85ca8d", 355601), - FANGAME("Radical Castle 1.0", "677bfee4afeca2f7152eb8b76c85ca8d", 347278), - BIGGAME("raysmaze", "v1.5", "Ray's Maze1.5", "064b16d8c20724f8debbbdc3aafde538", 1408516), - BIGGAME("raysmaze", "v1.5/alt", "Ray's Maze1.5", "92cca777800c3d31a77b5ed7f6ee49ad", 1408516), + FANGAME("Quest for the Dark Sword", "4815d9a770904b26c463b7e4fcd121c7", 572576), + FANGAME("Radical Castle", "09b70763c7a48a76240bd0e42737caaa", 355601), + FANGAME("Radical Castle 1.0", "8ae2e29ffeca52a5c7fae66dec4764a3", 347278), + BIGGAME("raysmaze", "v1.5", "Ray's Maze1.5", "521583e59bdc1d611f963cef1dc25869", 1408516), + BIGGAME("raysmaze", "v1.5/alt", "Ray's Maze1.5", "120e65bec953b981b2e0aed45ad45d70", 1408516), + // Next button is not visible + FANGAME("Ray's World Builder Demo", "d252ee8e38c9abc50455d071a367d031", 116056), // Unhandled comparison case - FANGAME("Sands of Time", "913812a1ac7a6b0e48dadd1afa1c7763", 122672), // Original file name "Sands of Timeā " - BIGGAME("scepters", "", "Scepters", "3311deef8bf82f0b4b1cfa15a3b3289d", 346595), + FANGAME("Sands of Time", "b00ea866cb04cd87124e5720bc2c84c7", 122672), // Original file name "Sands of Timeā " + BIGGAME("scepters", "", "Scepters", "f8db17cd96be056cf8a8bb9cfe46cf3a", 346595), + BIGGAME("scepters", "", "Scepters", "1fd7ca93ef16f4752fb46ee9cfa0949a", 347540), // alt version + FANGAME("Schmoozer", "e0f416bae626e2c638055b7f495d8c78", 221500), // ??? problems with dog bitmap? - FANGAMEN("Space Adventure", "SpaceAdventure", "f9f3f1c419f56955f7966355b34ea5c8", 155356), - FANGAMEN("Spear of Destiny", "SpearOfDestiny", "913812a1ac7a6b0e48dadd1afa1c7763", 333665), // Original file name "SpearOfDestinyā " - FANGAME("Star Trek", "44aaef4806578700429de5aaf95c266e", 53320), - FANGAME("Strange Disappearance", "d81f2d03a1e863f04fb1e3a5495b720e", 772282), + FANGAMEN("Space Adventure", "SpaceAdventure", "7b6c883b3510e21cfabf4c8caaeb1f16", 155356), + FANGAMEN("Space Adventure", "SpaceAdventure", "3bd6fc9327f35db5390a9bf86afcd872", 155356), // alt version + FANGAMEN("Spear of Destiny", "SpearOfDestiny", "f1252ff34dd279f4ec1844bb403a578c", 333665), // Original file name "SpearOfDestinyā " + FANGAME("Star Trek", "fe20d06bc50c7fcebda0db533e141d4a", 53320), + FANGAME("Strange Disappearance", "782fae517f7374cd7f43f428331ce445", 772282), // Code 0x03 in text - FANGAME("Swamp Witch", "913812a1ac7a6b0e48dadd1afa1c7763", 739781), // Original file name "Swamp Witchā " - FANGAME("Sweetspace Now!", "e12ec4d76d48bdc86567c5e63750547e", 123813), // Comes with Jumble + FANGAME("Swamp Witch", "4f146c0a5c59e7d4717a0423271fa89d", 739781), // Original file name "Swamp Witchā " + FANGAME("Sweetspace Now!", "1d419bc0b04c51468ddc40a90125bf00", 123813), // Comes with Jumble // Wrong scrolling in the first console text - FANGAMEN("Sword of Siegfried", "Sword of Siegfried 1.0", "913812a1ac7a6b0e48dadd1afa1c7763", 234763), - FANGAME("Time Bomb", "4b0e1a1fbaaa4930accd0f9f0e1519c7", 64564), - FANGAME("Time Bomb", "4b0e1a1fbaaa4930accd0f9f0e1519c7", 64578), // Alt version - FANGAMEND("The Ashland Revolution", "The Ashland Revolution Demo", "913812a1ac7a6b0e48dadd1afa1c7763", 145023), // Original file name "The Ashland Revolution Demoā " - FANGAME("The Axe-orcist", "94a9c4f8b3dabd1846d76215a49bd221", 308764), - FANGAMEN("The Hotel Caper", "The Hotel Caper V1.0", "595117cbed33e8de1ab3714b33880205", 231969), + FANGAMEN("Sword of Siegfried", "Sword of Siegfried 1.0", "1ee92830690f89ea142ac0847176a0c3", 234763), + FANGAME("Terrorist", "68208fa5e426312fb12402894add5e4a", 524469), // Original file name "Terroristā " + FANGAME("Time Bomb", "b7a369d57d43ec8d9fd53832fd38d7db", 64564), + FANGAME("Time Bomb", "b7a369d57d43ec8d9fd53832fd38d7db", 64578), // Alt version + FANGAMEND("The Ashland Revolution", "The Ashland Revolution Demo", "3c7a1bdeab48a077a4f54fe69da61a9f", 145023), // Original file name "The Ashland Revolution Demoā " + FANGAME("The Axe-orcist", "bfdf6a4ce87e6b368977af3b683466db", 308764), + FANGAMEN("The Hotel Caper", "The Hotel Caper V1.0", "0d11a6ca1357e27ffff5231fe89cc429", 231969), + FANGAMEN("The Hotel Caper", "The Hotel Caper V1.0", "6c80fa6a36d16aa0edef86d8800c90db", 231969), // alt version // Invalid rect in scene "Access Tube 1" - FANGAMEN("The Phoenix v1.2", "The Phoenix", "4b0e1a1fbaaa4930accd0f9f0e1519c7", 431640), - FANGAME("The Sultan's Palace", "358799d446ee4fc12f793febd6c94b95", 456855), + FANGAMEN("The Phoenix v1.2", "The Phoenix", "0a4a01b83c993408ae824cc4f63957ea", 431640), + FANGAME("The Phoenix", "0a4a01b83c993408ae824cc4f63957ea", 431643), + FANGAME("The Sultan's Palace", "98c845323489344d7e2c9d1c3e53d1fc", 456855), // Admission for on 3rd screen is messed up - FANGAME("The Tower", "435f420b9dff895ae1ddf1338040c51d", 556539), + FANGAME("The Tower", "135fe861928d15b5acd8b355460c54bf", 556539), // Polygons with ignored byte 1 and 2 on second scene - FANGAME("The Village", "913812a1ac7a6b0e48dadd1afa1c7763", 314828), + FANGAME("The Village", "b9b5cfbfc7f482eae7587b55edc135ed", 314828), + FANGAME("The Wizard's Apprentice", "7eff3cb7d1a3f59639c62cf196039745", 782824), + // Messed up first scene + FANGAMEND("Tombworld", "Demo TombWorld", "f7c86166e29fb8b57f7a1400d4963a4e", 664252), // Original file name "Demo TombWorldĀ©" // Doesn't go past first scene - BIGGAME("twisted", "", "Twisted! 1.6", "26207bdf0bb539464f136f0669af885f", 960954), - FANGAME("Wishing Well", "913812a1ac7a6b0e48dadd1afa1c7763", 103688), - FANGAME("Wizard's Warehouse", "913812a1ac7a6b0e48dadd1afa1c7763", 159748), - FANGAME("ZikTuria", "418e74ca71029a1e9db80d0eb30c0843", 52972), - FANGAME("Zoony", "539a64151426edc92da5eedadf39f23c", 154990), // original filename "Zoonyā¢" + BIGGAME("twisted", "", "Twisted! 1.6", "97ab265eddf0cfed6d43d062c853cbc0", 960954), + FANGAME("Volcano II", "4dbb7ec6111c0f872da8ed8ba14763c9", 82991), // Original file name "Volcano IIā " + FANGAME("Wishing Well", "ece06c419cbb2d32941e6b5c7d9d7c1a", 103688), + FANGAME("Wizard's Warehouse", "ee1b86841583e2b58ac39bf97017dc7b", 159748), + FANGAMEN("Wizard's Warehouse 2", "WizWarehouse 2.0", "6502bd974fe149fe76d6d5ae9d1e6878", 230870), + FANGAME("ZikTuria", "1b934fca68d633d231dccd2047d2d274", 52972), + FANGAME("Zoony", "7bb293b81117cbd974ce54fafa06f258", 154990), // original filename "Zoonyā¢" AD_TABLE_END_MARKER }; diff --git a/engines/wage/dialog.cpp b/engines/wage/dialog.cpp index 263570bddc..d9bb3e6a61 100644 --- a/engines/wage/dialog.cpp +++ b/engines/wage/dialog.cpp @@ -49,6 +49,7 @@ #include "common/events.h" #include "wage/wage.h" +#include "wage/macwindowmanager.h" #include "wage/design.h" #include "wage/gui.h" #include "wage/dialog.h" @@ -88,11 +89,11 @@ Dialog::~Dialog() { } const Graphics::Font *Dialog::getDialogFont() { - return _gui->getFont("Chicago-12", Graphics::FontManager::kBigGUIFont); + return _gui->_wm.getFont("Chicago-12", Graphics::FontManager::kBigGUIFont); } void Dialog::paint() { - Design::drawFilledRect(&_gui->_screen, _bbox, kColorWhite, _gui->_patterns, kPatternSolid); + Design::drawFilledRect(&_gui->_screen, _bbox, kColorWhite, _gui->_wm.getPatterns(), kPatternSolid); _font->drawString(&_gui->_screen, _text, _bbox.left + 24, _bbox.top + 16, _bbox.width(), kColorBlack); static int boxOutline[] = { 1, 0, 0, 1, 1 }; @@ -114,7 +115,7 @@ void Dialog::paint() { Common::Rect bb(button->bounds.left + 5, button->bounds.top + 5, button->bounds.right - 5, button->bounds.bottom - 5); - Design::drawFilledRect(&_gui->_screen, bb, kColorBlack, _gui->_patterns, kPatternSolid); + Design::drawFilledRect(&_gui->_screen, bb, kColorBlack, _gui->_wm.getPatterns(), kPatternSolid); color = kColorWhite; } @@ -137,7 +138,7 @@ void Dialog::drawOutline(Common::Rect &bounds, int *spec, int speclen) { for (int i = 0; i < speclen; i++) if (spec[i] != 0) Design::drawRect(&_gui->_screen, bounds.left + i, bounds.top + i, bounds.right - i, bounds.bottom - i, - 1, kColorBlack, _gui->_patterns, kPatternSolid); + 1, kColorBlack, _gui->_wm.getPatterns(), kPatternSolid); } int Dialog::run() { @@ -145,7 +146,7 @@ int Dialog::run() { Common::Rect r(_bbox); _tempSurface.copyRectToSurface(_gui->_screen.getBasePtr(_bbox.left, _bbox.top), _gui->_screen.pitch, 0, 0, _bbox.width() + 1, _bbox.height() + 1); - _gui->pushArrowCursor(); + _gui->_wm.pushArrowCursor(); while (!shouldQuit) { Common::Event event; @@ -189,7 +190,7 @@ int Dialog::run() { _gui->_screen.copyRectToSurface(_tempSurface.getBasePtr(0, 0), _tempSurface.pitch, _bbox.left, _bbox.top, _bbox.width() + 1, _bbox.height() + 1); g_system->copyRectToScreen(_gui->_screen.getBasePtr(r.left, r.top), _gui->_screen.pitch, r.left, r.top, r.width() + 1, r.height() + 1); - _gui->popCursor(); + _gui->_wm.popCursor(); return _pressedButton; } diff --git a/engines/wage/dialog.h b/engines/wage/dialog.h index c5878acc95..ec99fc06b2 100644 --- a/engines/wage/dialog.h +++ b/engines/wage/dialog.h @@ -74,7 +74,7 @@ public: private: Gui *_gui; - Graphics::Surface _tempSurface; + Graphics::ManagedSurface _tempSurface; Common::Rect _bbox; Common::String _text; diff --git a/engines/wage/entities.cpp b/engines/wage/entities.cpp index a2648c49fe..43ac6c8cc7 100644 --- a/engines/wage/entities.cpp +++ b/engines/wage/entities.cpp @@ -52,6 +52,7 @@ #include "wage/world.h" #include "common/memstream.h" +#include "graphics/managed_surface.h" namespace Wage { @@ -134,20 +135,20 @@ Scene::~Scene() { delete _textBounds; } -void Scene::paint(Graphics::Surface *surface, int x, int y) { +void Scene::paint(Graphics::ManagedSurface *surface, int x, int y) { Common::Rect r(x + 5, y + 5, _design->getBounds()->width() + x - 10, _design->getBounds()->height() + y - 10); surface->fillRect(r, kColorWhite); - _design->paint(surface, ((WageEngine *)g_engine)->_world->_patterns, x, y); + _design->paint(surface, *((WageEngine *)g_engine)->_world->_patterns, x, y); for (ObjList::const_iterator it = _objs.begin(); it != _objs.end(); ++it) { - debug(2, "paining Obj: %s", (*it)->_name.c_str()); - (*it)->_design->paint(surface, ((WageEngine *)g_engine)->_world->_patterns, x, y); + debug(2, "paining Obj: %s, index: %d, type: %d", (*it)->_name.c_str(), (*it)->_index, (*it)->_type); + (*it)->_design->paint(surface, *((WageEngine *)g_engine)->_world->_patterns, x, y); } for (ChrList::const_iterator it = _chrs.begin(); it != _chrs.end(); ++it) { debug(2, "paining Chr: %s", (*it)->_name.c_str()); - (*it)->_design->paint(surface, ((WageEngine *)g_engine)->_world->_patterns, x, y); + (*it)->_design->paint(surface, *((WageEngine *)g_engine)->_world->_patterns, x, y); } } @@ -202,6 +203,22 @@ const char *Scene::getFontName() { return "Unknown"; } +Designed *Scene::lookUpEntity(int x, int y) { + for (ObjList::const_iterator it = _objs.end(); it != _objs.begin(); ) { + it--; + if ((*it)->_design->isPointOpaque(x, y)) + return *it; + } + + for (ChrList::const_iterator it = _chrs.end(); it != _chrs.begin(); ) { + it--; + if ((*it)->_design->isPointOpaque(x, y)) + return *it; + } + + return nullptr; +} + Obj::Obj() : _currentOwner(NULL), _currentScene(NULL) { _index = 0; _namePlural = false; diff --git a/engines/wage/entities.h b/engines/wage/entities.h index 33cf087322..9e706f0d58 100644 --- a/engines/wage/entities.h +++ b/engines/wage/entities.h @@ -49,7 +49,7 @@ #define WAGE_ENTITIES_H namespace Graphics { - struct Surface; + class ManagedSurface; } namespace Wage { @@ -322,11 +322,13 @@ public: Scene(Common::String name, Common::SeekableReadStream *data); ~Scene(); + Designed *lookUpEntity(int x, int y); + Common::Rect *getTextBounds() { return _textBounds == NULL ? NULL : new Common::Rect(*_textBounds); } - void paint(Graphics::Surface *screen, int x, int y); + void paint(Graphics::ManagedSurface *screen, int x, int y); const char *getFontName(); }; diff --git a/engines/wage/gui-console.cpp b/engines/wage/gui-console.cpp index ab5df637ec..8b6fe43a17 100644 --- a/engines/wage/gui-console.cpp +++ b/engines/wage/gui-console.cpp @@ -45,6 +45,7 @@ * */ +#include "common/events.h" #include "common/timer.h" #include "common/unzip.h" #include "graphics/cursorman.h" @@ -54,7 +55,8 @@ #include "wage/wage.h" #include "wage/design.h" #include "wage/entities.h" -#include "wage/menu.h" +#include "wage/macwindow.h" +#include "wage/macmenu.h" #include "wage/gui.h" #include "wage/world.h" @@ -66,7 +68,7 @@ const Graphics::Font *Gui::getConsoleFont() { snprintf(fontName, 128, "%s-%d", scene->getFontName(), scene->_fontSize); - return getFont(fontName, Graphics::FontManager::kConsoleFont); + return _wm.getFont(fontName, Graphics::FontManager::kConsoleFont); } void Gui::clearOutput() { @@ -114,7 +116,7 @@ enum { void Gui::flowText(Common::String &str) { Common::StringArray wrappedLines; - int textW = _consoleTextArea.width() - kConWPadding * 2; + int textW = _consoleWindow->getInnerDimensions().width() - kConWPadding * 2; const Graphics::Font *font = getConsoleFont(); font->wordWrapText(str, textW, wrappedLines); @@ -142,7 +144,7 @@ void Gui::flowText(Common::String &str) { draw(); } -void Gui::renderConsole(Graphics::Surface *g, Common::Rect &r) { +void Gui::renderConsole(Graphics::ManagedSurface *g, const Common::Rect &r) { bool fullRedraw = _consoleFullRedraw; bool textReflow = false; int surfW = r.width() + kConWOverlap * 2; @@ -150,7 +152,6 @@ void Gui::renderConsole(Graphics::Surface *g, Common::Rect &r) { Common::Rect boundsR(kConWOverlap - kConOverscan, kConHOverlap - kConOverscan, r.width() + kConWOverlap + kConOverscan, r.height() + kConHOverlap + kConOverscan); - Common::Rect fullR(0, 0, surfW, surfH); if (_console.w != surfW || _console.h != surfH) { if (_console.w != surfW) @@ -163,7 +164,7 @@ void Gui::renderConsole(Graphics::Surface *g, Common::Rect &r) { } if (fullRedraw) - _console.fillRect(fullR, kColorWhite); + _console.clear(kColorWhite); const Graphics::Font *font = getConsoleFont(); @@ -197,7 +198,7 @@ void Gui::renderConsole(Graphics::Surface *g, Common::Rect &r) { color = kColorWhite; Common::Rect trect(0, y1, _console.w, y1 + _consoleLineHeight); - Design::drawFilledRect(&_console, trect, kColorBlack, _patterns, kPatternSolid); + Design::drawFilledRect(&_console, trect, kColorBlack, _wm.getPatterns(), kPatternSolid); } if (line == _selectionStartY || line == _selectionEndY) { @@ -224,7 +225,7 @@ void Gui::renderConsole(Graphics::Surface *g, Common::Rect &r) { else trect.left = rectW; - Design::drawFilledRect(&_console, trect, kColorBlack, _patterns, kPatternSolid); + Design::drawFilledRect(&_console, trect, kColorBlack, _wm.getPatterns(), kPatternSolid); font->drawString(&_console, beg, x1, y1, textW, color1); font->drawString(&_console, end, x1 + rectW - kConWPadding - kConWOverlap, y1, textW, color2); @@ -243,7 +244,7 @@ void Gui::renderConsole(Graphics::Surface *g, Common::Rect &r) { int rectW2 = rectW1 + font->getStringWidth(mid); Common::Rect trect(rectW1, y1, rectW2, y1 + _consoleLineHeight); - Design::drawFilledRect(&_console, trect, kColorBlack, _patterns, kPatternSolid); + Design::drawFilledRect(&_console, trect, kColorBlack, _wm.getPatterns(), kPatternSolid); font->drawString(&_console, beg, x1, y1, textW, kColorBlack); font->drawString(&_console, mid, x1 + rectW1 - kConWPadding - kConWOverlap, y1, textW, kColorWhite); @@ -280,17 +281,13 @@ void Gui::renderConsole(Graphics::Surface *g, Common::Rect &r) { rr.bottom = _screen.h - 1; g->copyRectToSurface(_console, xcon, ycon, boundsR); - g_system->copyRectToScreen(g->getBasePtr(rr.left, rr.top), g->pitch, rr.left, rr.top, rr.width(), rr.height()); } void Gui::drawInput() { if (!_screen.getPixels()) return; - if (_sceneIsActive) { - _sceneIsActive = false; - _bordersDirty = true; - } + _wm.setActive(_consoleWindow->getId()); _out.pop_back(); _lines.pop_back(); @@ -302,17 +299,17 @@ void Gui::drawInput() { if (_engine->_inputText.contains('\n')) { _consoleDirty = true; } else { - int x = kConWPadding + _consoleTextArea.left; - int y = _cursorY + _consoleTextArea.top; + int x = kConWPadding + _consoleWindow->getInnerDimensions().left; + int y = _cursorY + _consoleWindow->getInnerDimensions().top; - Common::Rect r(x, y, x + _consoleTextArea.width() - kConWPadding, y + font->getFontHeight()); + Common::Rect r(x, y, x + _consoleWindow->getInnerDimensions().width() - kConWPadding, y + font->getFontHeight()); _screen.fillRect(r, kColorWhite); undrawCursor(); font->drawString(&_screen, _out[_inputTextLineNum], x, y, _screen.w, kColorBlack); - g_system->copyRectToScreen(_screen.getBasePtr(x, y), _screen.pitch, x, y, _consoleTextArea.width(), font->getFontHeight()); + g_system->copyRectToScreen(_screen.getBasePtr(x, y), _screen.pitch, x, y, _consoleWindow->getInnerDimensions().width(), font->getFontHeight()); } _cursorX = font->getStringWidth(_out[_inputTextLineNum]) + kConHPadding; @@ -427,4 +424,140 @@ void Gui::enableNewGameMenus() { _menu->enableCommand(kMenuFile, kMenuActionQuit, true); } +bool Gui::processConsoleEvents(WindowClick click, Common::Event &event) { + if (click == kBorderScrollUp || click == kBorderScrollDown) { + if (event.type == Common::EVENT_LBUTTONDOWN) { + int consoleHeight = _consoleWindow->getInnerDimensions().height(); + int textFullSize = _lines.size() * _consoleLineHeight + consoleHeight; + float scrollPos = (float)_scrollPos / textFullSize; + float scrollSize = (float)consoleHeight / textFullSize; + + _consoleWindow->setScroll(scrollPos, scrollSize); + + return true; + } else if (event.type == Common::EVENT_LBUTTONUP) { + int oldScrollPos = _scrollPos; + + switch (click) { + case kBorderScrollUp: + _scrollPos = MAX<int>(0, _scrollPos - _consoleLineHeight); + undrawCursor(); + _cursorY -= (_scrollPos - oldScrollPos); + _consoleDirty = true; + _consoleFullRedraw = true; + break; + case kBorderScrollDown: + _scrollPos = MIN<int>((_lines.size() - 2) * _consoleLineHeight, _scrollPos + _consoleLineHeight); + undrawCursor(); + _cursorY -= (_scrollPos - oldScrollPos); + _consoleDirty = true; + _consoleFullRedraw = true; + break; + default: + return false; + } + + return true; + } + + return false; + } + + if (click == kBorderResizeButton) { + _consoleDirty = true; + _consoleFullRedraw = true; + + return true; + } + + if (click == kBorderInner) { + if (event.type == Common::EVENT_LBUTTONDOWN) { + startMarking(event.mouse.x, event.mouse.y); + + return true; + } else if (event.type == Common::EVENT_LBUTTONUP) { + if (_inTextSelection) { + _inTextSelection = false; + + if (_selectionEndY == -1 || + (_selectionEndX == _selectionStartX && _selectionEndY == _selectionStartY)) { + _selectionStartY = _selectionEndY = -1; + _consoleFullRedraw = true; + _menu->enableCommand(kMenuEdit, kMenuActionCopy, false); + } else { + _menu->enableCommand(kMenuEdit, kMenuActionCopy, true); + + bool cutAllowed = false; + + if (_selectionStartY == _selectionEndY && _selectionStartY == (int)_lines.size() - 1) + cutAllowed = true; + + _menu->enableCommand(kMenuEdit, kMenuActionCut, cutAllowed); + _menu->enableCommand(kMenuEdit, kMenuActionClear, cutAllowed); + } + } + + return true; + } else if (event.type == Common::EVENT_MOUSEMOVE) { + if (_inTextSelection) { + updateTextSelection(event.mouse.x, event.mouse.y); + return true; + } + } + + return false; + } + + return false; +} + +int Gui::calcTextX(int x, int textLine) { + const Graphics::Font *font = getConsoleFont(); + + if ((uint)textLine >= _lines.size()) + return 0; + + Common::String str = _lines[textLine]; + + x -= _consoleWindow->getInnerDimensions().left; + + for (int i = str.size(); i >= 0; i--) { + if (font->getStringWidth(str) < x) { + return i; + } + + str.deleteLastChar(); + } + + return 0; +} + +int Gui::calcTextY(int y) { + y -= _consoleWindow->getInnerDimensions().top; + + if (y < 0) + y = 0; + + const int firstLine = _scrollPos / _consoleLineHeight; + int textLine = (y - _scrollPos % _consoleLineHeight) / _consoleLineHeight + firstLine; + + return textLine; +} + +void Gui::startMarking(int x, int y) { + _selectionStartY = calcTextY(y); + _selectionStartX = calcTextX(x, _selectionStartY); + + _selectionEndY = -1; + + _inTextSelection = true; +} + +void Gui::updateTextSelection(int x, int y) { + _selectionEndY = calcTextY(y); + _selectionEndX = calcTextX(x, _selectionEndY); + + _consoleFullRedraw = true; +} + } // End of namespace Wage diff --git a/engines/wage/gui.cpp b/engines/wage/gui.cpp index 15d82a68fb..310e5734b7 100644 --- a/engines/wage/gui.cpp +++ b/engines/wage/gui.cpp @@ -46,70 +46,40 @@ */ #include "common/timer.h" -#include "common/unzip.h" +#include "common/system.h" #include "graphics/cursorman.h" -#include "graphics/fonts/bdf.h" -#include "graphics/palette.h" #include "graphics/primitives.h" #include "wage/wage.h" #include "wage/design.h" #include "wage/entities.h" -#include "wage/menu.h" #include "wage/gui.h" +#include "wage/macwindow.h" +#include "wage/macwindowmanager.h" +#include "wage/macmenu.h" #include "wage/world.h" namespace Wage { -static const byte palette[] = { - 0, 0, 0, // Black - 0x80, 0x80, 0x80, // Gray - 0xff, 0xff, 0xff, // White - 0x00, 0xff, 0x00 // Green -}; - -static byte fillPatterns[][8] = { { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, // kPatternSolid - { 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55 }, // kPatternStripes - { 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55 }, // kPatternCheckers - { 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa } // kPatternCheckers2 -}; - -static const byte macCursorArrow[] = { - 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 2, 0, 2, 3, 3, 3, 3, 3, 3, 3, 3, - 2, 0, 0, 2, 3, 3, 3, 3, 3, 3, 3, - 2, 0, 0, 0, 2, 3, 3, 3, 3, 3, 3, - 2, 0, 0, 0, 0, 2, 3, 3, 3, 3, 3, - 2, 0, 0, 0, 0, 0, 2, 3, 3, 3, 3, - 2, 0, 0, 0, 0, 0, 0, 2, 3, 3, 3, - 2, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, - 2, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, - 2, 0, 0, 2, 0, 0, 2, 3, 3, 3, 3, - 2, 0, 2, 3, 2, 0, 0, 2, 3, 3, 3, - 2, 2, 3, 3, 2, 0, 0, 2, 3, 3, 3, - 2, 3, 3, 3, 3, 2, 0, 0, 2, 3, 3, - 3, 3, 3, 3, 3, 2, 0, 0, 2, 3, 3, - 3, 3, 3, 3, 3, 3, 2, 2, 2, 3, 3 -}; - -static const byte macCursorBeam[] = { - 0, 0, 3, 3, 3, 0, 0, 3, 3, 3, 3, - 3, 3, 0, 3, 0, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 0, 3, 0, 3, 3, 3, 3, 3, 3, - 0, 0, 3, 3, 3, 0, 0, 3, 3, 3, 3, +static const MenuData menuSubItems[] = { + { kMenuHighLevel, "File", 0, 0, false }, + { kMenuHighLevel, "Edit", 0, 0, false }, + { kMenuFile, "New", kMenuActionNew, 0, false }, + { kMenuFile, "Open...", kMenuActionOpen, 0, false }, + { kMenuFile, "Close", kMenuActionClose, 0, true }, + { kMenuFile, "Save", kMenuActionSave, 0, false }, + { kMenuFile, "Save as...", kMenuActionSaveAs, 0, true }, + { kMenuFile, "Revert", kMenuActionRevert, 0, false }, + { kMenuFile, "Quit", kMenuActionQuit, 0, true }, + + { kMenuEdit, "Undo", kMenuActionUndo, 'Z', false }, + { kMenuEdit, NULL, 0, 0, false }, + { kMenuEdit, "Cut", kMenuActionCut, 'K', false }, + { kMenuEdit, "Copy", kMenuActionCopy, 'C', false }, + { kMenuEdit, "Paste", kMenuActionPaste, 'V', false }, + { kMenuEdit, "Clear", kMenuActionClear, 'B', false }, + + { 0, NULL, 0, 0, false } }; static void cursorTimerHandler(void *refCon) { @@ -124,8 +94,8 @@ static void cursorTimerHandler(void *refCon) { if (!gui->_screen.getPixels()) return; - x += gui->_consoleTextArea.left; - y += gui->_consoleTextArea.top; + x += gui->_consoleWindow->getInnerDimensions().left; + y += gui->_consoleWindow->getInnerDimensions().top; gui->_screen.vLine(x, y, y + kCursorHeight, gui->_cursorState ? kColorBlack : kColorWhite); @@ -140,22 +110,25 @@ static void cursorTimerHandler(void *refCon) { gui->_cursorDirty = true; } +static bool sceneWindowCallback(WindowClick click, Common::Event &event, void *gui); +static bool consoleWindowCallback(WindowClick click, Common::Event &event, void *gui); +static void menuCommandsCallback(int action, Common::String &text, void *data); + + Gui::Gui(WageEngine *engine) { _engine = engine; _scene = NULL; _sceneDirty = true; _consoleDirty = true; - _bordersDirty = true; - _menuDirty = true; _cursorDirty = false; _consoleFullRedraw = true; _screen.create(g_system->getWidth(), g_system->getHeight(), Graphics::PixelFormat::createFormatCLUT8()); + _wm.setScreen(&_screen); + _scrollPos = 0; _consoleLineHeight = 8; // Dummy value which makes sense _consoleNumLines = 24; // Dummy value - _builtInFonts = false; - _sceneIsActive = false; _cursorX = 0; _cursorY = 0; @@ -168,28 +141,39 @@ Gui::Gui(WageEngine *engine) { _inputTextLineNum = 0; - g_system->getPaletteManager()->setPalette(palette, 0, 4); + g_system->getTimerManager()->installTimerProc(&cursorTimerHandler, 200000, this, "wageCursor"); - CursorMan.replaceCursorPalette(palette, 0, 4); - CursorMan.replaceCursor(macCursorArrow, 11, 16, 1, 1, 3); - _cursorIsArrow = true; - CursorMan.showMouse(true); + _menu = _wm.addMenu(); - for (int i = 0; i < ARRAYSIZE(fillPatterns); i++) - _patterns.push_back(fillPatterns[i]); + _menu->setCommandsCallback(menuCommandsCallback, this); - loadFonts(); + _menu->addStaticMenus(menuSubItems); + _menu->addMenuSubItem(kMenuAbout, _engine->_world->getAboutMenuItemName(), kMenuActionAbout); - g_system->getTimerManager()->installTimerProc(&cursorTimerHandler, 200000, this, "wageCursor"); + _commandsMenuId = _menu->addMenuItem(_engine->_world->_commandsMenuName.c_str()); + regenCommandsMenu(); + + if (!_engine->_world->_weaponMenuDisabled) { + _weaponsMenuId = _menu->addMenuItem(_engine->_world->_weaponsMenuName.c_str()); + + regenWeaponsMenu(); + } else { + _weaponsMenuId = -1; + } + + _menu->calcDimensions(); - _menu = new Menu(this); + _sceneWindow = _wm.addWindow(false, false, false); + _sceneWindow->setCallback(sceneWindowCallback, this); + + _consoleWindow = _wm.addWindow(true, true, true); + _consoleWindow->setCallback(consoleWindowCallback, this); } Gui::~Gui() { _screen.free(); _console.free(); g_system->getTimerManager()->removeTimerProc(&cursorTimerHandler); - delete _menu; } void Gui::undrawCursor() { @@ -199,82 +183,34 @@ void Gui::undrawCursor() { _cursorOff = false; } -const Graphics::Font *Gui::getFont(const char *name, Graphics::FontManager::FontUsage fallback) { - const Graphics::Font *font = 0; - - if (!_builtInFonts) { - font = FontMan.getFontByName(name); - - if (!font) - warning("Cannot load font %s", name); - } - - if (_builtInFonts || !font) - font = FontMan.getFontByUsage(fallback); - - return font; -} - -const Graphics::Font *Gui::getTitleFont() { - return getFont("Chicago-12", Graphics::FontManager::kBigGUIFont); -} - -void Gui::drawDesktop() { - // Draw desktop - Common::Rect r(0, 0, _screen.w - 1, _screen.h - 1); - Design::drawFilledRoundRect(&_screen, r, kDesktopArc, kColorBlack, _patterns, kPatternCheckers); - g_system->copyRectToScreen(_screen.getPixels(), _screen.pitch, 0, 0, _screen.w, _screen.h); -} - void Gui::draw() { if (_engine->_isGameOver) { - if (_menuDirty) { - drawDesktop(); - _menu->render(); - } - - _menuDirty = false; + _wm.draw(); return; } - if (_scene != _engine->_world->_player->_currentScene || _sceneDirty) { - _scene = _engine->_world->_player->_currentScene; - - drawDesktop(); + if (!_engine->_world->_player->_currentScene) + return; + if (_scene != _engine->_world->_player->_currentScene) { _sceneDirty = true; - _consoleDirty = true; - _menuDirty = true; - _consoleFullRedraw = true; - _scene->paint(&_screen, _scene->_designBounds->left, _scene->_designBounds->top); + _scene = _engine->_world->_player->_currentScene; - _sceneArea.left = _scene->_designBounds->left + kBorderWidth - 2; - _sceneArea.top = _scene->_designBounds->top + kBorderWidth - 2; - _sceneArea.setWidth(_scene->_designBounds->width() - 2 * kBorderWidth); - _sceneArea.setHeight(_scene->_designBounds->height() - 2 * kBorderWidth); + _sceneWindow->setDimensions(*_scene->_designBounds); + _sceneWindow->setTitle(_scene->_name); + _consoleWindow->setDimensions(*_scene->_textBounds); - _consoleTextArea.left = _scene->_textBounds->left + kBorderWidth - 2; - _consoleTextArea.top = _scene->_textBounds->top + kBorderWidth - 2; - _consoleTextArea.setWidth(_scene->_textBounds->width() - 2 * kBorderWidth); - _consoleTextArea.setHeight(_scene->_textBounds->height() - 2 * kBorderWidth); + _wm.setFullRefresh(true); } - if (_scene && (_bordersDirty || _sceneDirty)) - paintBorder(&_screen, _sceneArea, kWindowScene); + drawScene(); + drawConsole(); - // Render console - if (_consoleDirty || _consoleFullRedraw) - renderConsole(&_screen, _consoleTextArea); + _wm.draw(); - if (_bordersDirty || _consoleDirty || _consoleFullRedraw) - paintBorder(&_screen, _consoleTextArea, kWindowConsole); - - if (_menuDirty) - _menu->render(); - - if (_cursorDirty) { + if (_cursorDirty && _cursorRect.left < _screen.w && _cursorRect.bottom < _screen.h) { g_system->copyRectToScreen(_screen.getBasePtr(_cursorRect.left, _cursorRect.top), _screen.pitch, _cursorRect.left, _cursorRect.top, _cursorRect.width(), _cursorRect.height()); @@ -283,397 +219,141 @@ void Gui::draw() { _sceneDirty = false; _consoleDirty = false; - _bordersDirty = false; - _menuDirty = false; _consoleFullRedraw = false; } -void Gui::drawBox(Graphics::Surface *g, int x, int y, int w, int h) { - Common::Rect r(x, y, x + w + 1, y + h + 1); - - g->fillRect(r, kColorWhite); - g->frameRect(r, kColorBlack); -} +void Gui::drawScene() { + if (!_sceneDirty) + return; -void Gui::fillRect(Graphics::Surface *g, int x, int y, int w, int h, int color) { - Common::Rect r(x, y, x + w, y + h); + _scene->paint(_sceneWindow->getSurface(), 0, 0); + _sceneWindow->setDirty(true); - g->fillRect(r, color); + _sceneDirty = true; + _consoleDirty = true; + _menu->setDirty(true); + _consoleFullRedraw = true; } -#define ARROW_W 12 -#define ARROW_H 6 -const int arrowPixels[ARROW_H][ARROW_W] = { - {0,0,0,0,0,1,1,0,0,0,0,0}, - {0,0,0,0,1,1,1,1,0,0,0,0}, - {0,0,0,1,1,1,1,1,1,0,0,0}, - {0,0,1,1,1,1,1,1,1,1,0,0}, - {0,1,1,1,1,1,1,1,1,1,1,0}, - {1,1,1,1,1,1,1,1,1,1,1,1}}; - -static void drawPixelInverted(int x, int y, int color, void *data) { - Graphics::Surface *surface = (Graphics::Surface *)data; +static bool sceneWindowCallback(WindowClick click, Common::Event &event, void *g) { + Gui *gui = (Gui *)g; - if (x >= 0 && x < surface->w && y >= 0 && y < surface->h) { - byte *p = (byte *)surface->getBasePtr(x, y); - - *p = *p == kColorWhite ? kColorBlack : kColorWhite; - } + return gui->processSceneEvents(click, event); } -void Gui::paintBorder(Graphics::Surface *g, Common::Rect &r, WindowType windowType, int highlightedPart, float scrollPos, float scrollSize) { - bool active = false, scrollable = false, closeable = false, drawTitle = false; - const int size = kBorderWidth; - int x = r.left - size; - int y = r.top - size; - int width = r.width() + 2 * size; - int height = r.height() + 2 * size; - - switch (windowType) { - case kWindowScene: - active = _sceneIsActive; - scrollable = false; - closeable = _sceneIsActive; - drawTitle = true; - break; - case kWindowConsole: - active = !_sceneIsActive; - scrollable = true; - closeable = !_sceneIsActive; - drawTitle = false; - break; - } +bool Gui::processSceneEvents(WindowClick click, Common::Event &event) { + if (click == kBorderInner && event.type == Common::EVENT_LBUTTONUP) { + Designed *obj = _scene->lookUpEntity(event.mouse.x - _sceneWindow->getDimensions().left, + event.mouse.y - _sceneWindow->getDimensions().top); - drawBox(g, x, y, size, size); - drawBox(g, x + width - size - 1, y, size, size); - drawBox(g, x + width - size - 1, y + height - size - 1, size, size); - drawBox(g, x, y + height - size - 1, size, size); - drawBox(g, x + size, y + 2, width - 2 * size - 1, size - 4); - drawBox(g, x + size, y + height - size + 1, width - 2 * size - 1, size - 4); - drawBox(g, x + 2, y + size, size - 4, height - 2 * size - 1); - drawBox(g, x + width - size + 1, y + size, size - 4, height - 2 * size - 1); - - if (active) { - fillRect(g, x + size, y + 5, width - 2 * size - 1, 8); - fillRect(g, x + size, y + height - 13, width - 2 * size - 1, 8); - fillRect(g, x + 5, y + size, 8, height - 2 * size - 1); - if (!scrollable) { - fillRect(g, x + width - 13, y + size, 8, height - 2 * size - 1); - } else { - int x1 = x + width - 15; - int y1 = y + size + 1; - - for (int yy = 0; yy < ARROW_H; yy++) { - for (int xx = 0; xx < ARROW_W; xx++) - g->hLine(x1 + xx, y1 + yy, x1 + xx, (arrowPixels[yy][xx] != 0 ? kColorBlack : kColorWhite)); - } - - fillRect(g, x + width - 13, y + size + ARROW_H, 8, height - 2 * size - 1 - ARROW_H * 2); - - y1 += height - 2 * size - ARROW_H - 2; - for (int yy = 0; yy < ARROW_H; yy++) { - for (int xx = 0; xx < ARROW_W; xx++) - g->hLine(x1 + xx, y1 + yy, x1 + xx, (arrowPixels[ARROW_H - yy - 1][xx] != 0 ? kColorBlack : kColorWhite)); - } - - if (highlightedPart == kBorderScrollUp || highlightedPart == kBorderScrollDown) { - int rx1 = x + width - kBorderWidth + 2; - int ry1 = y + size + r.height() * scrollPos; - int rx2 = rx1 + size - 4; - int ry2 = ry1 + r.height() * scrollSize; - Common::Rect rr(rx1, ry1, rx2, ry2); - - Graphics::drawFilledRect(rr, kColorBlack, drawPixelInverted, g); - } - } - if (closeable) { - if (highlightedPart == kBorderCloseButton) { - fillRect(g, x + 6, y + 6, 6, 6); - } else { - drawBox(g, x + 5, y + 5, 7, 7); - } - } - } + if (obj != nullptr) + _engine->processTurn(NULL, obj); - if (drawTitle) { - const Graphics::Font *font = getTitleFont(); - int yOff = _builtInFonts ? 3 : 1; - - int w = font->getStringWidth(_scene->_name) + 10; - int maxWidth = width - size * 2 - 7; - if (w > maxWidth) - w = maxWidth; - drawBox(g, x + (width - w) / 2, y, w, size); - font->drawString(g, _scene->_name, x + (width - w) / 2 + 5, y + yOff, w, kColorBlack); - } - - if (x < 0) { - width += x; - x = 0; - } - if (y < 0) { - height += y; - y = 0; + return true; } - if (x + width > _screen.w) - width = _screen.w - x; - if (y + height > _screen.h) - height = _screen.h - y; - g_system->copyRectToScreen(g->getBasePtr(x, y), g->pitch, x, y, width, height); + return false; } -void Gui::loadFonts() { - Common::Archive *dat; - - dat = Common::makeZipArchive("wage.dat"); - - if (!dat) { - warning("Could not find wage.dat. Falling back to built-in fonts"); - _builtInFonts = true; - +// Render console +void Gui::drawConsole() { + if (!_consoleDirty && !_consoleFullRedraw && !_sceneDirty) return; - } - - Common::ArchiveMemberList list; - dat->listMembers(list); - - for (Common::ArchiveMemberList::iterator it = list.begin(); it != list.end(); ++it) { - Common::SeekableReadStream *stream = dat->createReadStreamForMember((*it)->getName()); - - Graphics::BdfFont *font = Graphics::BdfFont::loadFont(*stream); - - delete stream; - - Common::String fontName = (*it)->getName(); - - // Trim the .bdf extension - for (int i = fontName.size() - 1; i >= 0; --i) { - if (fontName[i] == '.') { - while ((uint)i < fontName.size()) { - fontName.deleteLastChar(); - } - break; - } - } - - FontMan.assignFontToName(fontName, font); - debug(2, " %s", fontName.c_str()); - } + renderConsole(_consoleWindow->getSurface(), Common::Rect(kBorderWidth - 2, kBorderWidth - 2, + _consoleWindow->getDimensions().width(), _consoleWindow->getDimensions().height())); + _consoleWindow->setDirty(true); +} - _builtInFonts = false; +static bool consoleWindowCallback(WindowClick click, Common::Event &event, void *g) { + Gui *gui = (Gui *)g; - delete dat; + return gui->processConsoleEvents(click, event); } +//////////////// +// Menu stuff +//////////////// void Gui::regenCommandsMenu() { - _menu->regenCommandsMenu(); + _menu->createSubMenuFromString(_commandsMenuId, _engine->_world->_commandsMenu.c_str()); } void Gui::regenWeaponsMenu() { - _menu->regenWeaponsMenu(); -} - -void Gui::processMenuShortCut(byte flags, uint16 ascii) { - _menu->processMenuShortCut(flags, ascii); -} - -void Gui::mouseMove(int x, int y) { - if (_menu->_menuActivated) { - if (_menu->mouseMove(x, y)) - _menuDirty = true; - + if (_engine->_world->_weaponMenuDisabled) return; - } - if (_inTextSelection) { - updateTextSelection(x, y); - return; - } - - if (_consoleTextArea.contains(x, y)) { - if (_cursorIsArrow) { - CursorMan.replaceCursor(macCursorBeam, 11, 16, 3, 8, 3); - _cursorIsArrow = false; - } - } else if (_cursorIsArrow == false) { - CursorMan.replaceCursor(macCursorArrow, 11, 16, 1, 1, 3); - _cursorIsArrow = true; - } -} - -void Gui::pushArrowCursor() { - CursorMan.pushCursor(macCursorArrow, 11, 16, 1, 1, 3); -} + _menu->clearSubMenu(_weaponsMenuId); -void Gui::popCursor() { - CursorMan.popCursor(); -} + Chr *player = _engine->_world->_player; + ObjArray *weapons = player->getWeapons(true); -static int isInBorder(Common::Rect &rect, int x, int y) { - if (x >= rect.left - kBorderWidth && x < rect.left && y >= rect.top - kBorderWidth && y < rect.top) - return kBorderCloseButton; + bool empty = true; - if (x >= rect.right && x < rect.right + kBorderWidth) { - if (y < rect.top - kBorderWidth) - return kBorderNone; + for (uint i = 0; i < weapons->size(); i++) { + Obj *obj = (*weapons)[i]; + if (obj->_type == Obj::REGULAR_WEAPON || + obj->_type == Obj::THROW_WEAPON || + obj->_type == Obj::MAGICAL_OBJECT) { + Common::String command(obj->_operativeVerb); + command += " "; + command += obj->_name; - if (y >= rect.bottom + kBorderWidth) - return kBorderNone; + _menu->addMenuSubItem(_weaponsMenuId, command.c_str(), kMenuActionCommand, 0, 0, true); - if (y >= rect.top + rect.height() / 2) - return kBorderScrollDown; - - return kBorderScrollUp; - } - - return kBorderNone; -} - -Designed *Gui::mouseUp(int x, int y) { - if (_menu->_menuActivated) { - if (_menu->mouseRelease(x, y)) { - _sceneDirty = true; - _consoleDirty = true; - _bordersDirty = true; - _menuDirty = true; - } - - return NULL; - } - - if (_inTextSelection) { - _inTextSelection = false; - - if (_selectionEndY == -1 || - (_selectionEndX == _selectionStartX && _selectionEndY == _selectionStartY)) { - _selectionStartY = _selectionEndY = -1; - _consoleFullRedraw = true; - _menu->enableCommand(kMenuEdit, kMenuActionCopy, false); - } else { - _menu->enableCommand(kMenuEdit, kMenuActionCopy, true); - - bool cutAllowed = false; - - if (_selectionStartY == _selectionEndY && _selectionStartY == (int)_lines.size() - 1) - cutAllowed = true; - - _menu->enableCommand(kMenuEdit, kMenuActionCut, cutAllowed); - _menu->enableCommand(kMenuEdit, kMenuActionClear, cutAllowed); + empty = false; } } + delete weapons; - int borderClick; - - if (_sceneArea.contains(x, y)) { - if (!_sceneIsActive) { - _sceneIsActive = true; - _bordersDirty = true; - } - - for (ObjList::const_iterator it = _scene->_objs.begin(); it != _scene->_objs.end(); ++it) { - if ((*it)->_design->isPointOpaque(x - _sceneArea.left + kBorderWidth, y - _sceneArea.top + kBorderWidth)) - return *it; - } - - for (ChrList::const_iterator it = _scene->_chrs.begin(); it != _scene->_chrs.end(); ++it) { - if ((*it)->_design->isPointOpaque(x - _sceneArea.left + kBorderWidth, y - _sceneArea.top + kBorderWidth)) - return *it; - } - } else if (_consoleTextArea.contains(x, y)) { - if (_sceneIsActive) { - _sceneIsActive = false; - _bordersDirty = true; - } - } else if ((borderClick = isInBorder(_consoleTextArea, x, y)) != kBorderNone) { - _bordersDirty = true; - int _oldScrollPos = _scrollPos; - - switch (borderClick) { - case kBorderScrollUp: - _scrollPos = MAX<int>(0, _scrollPos - _consoleLineHeight); - undrawCursor(); - _cursorY -= (_scrollPos - _oldScrollPos); - _consoleDirty = true; - _consoleFullRedraw = true; - break; - case kBorderScrollDown: - _scrollPos = MIN<int>((_lines.size() - 2) * _consoleLineHeight, _scrollPos + _consoleLineHeight); - undrawCursor(); - _cursorY -= (_scrollPos - _oldScrollPos); - _consoleDirty = true; - _consoleFullRedraw = true; - break; - } - } - - return NULL; -} - -void Gui::mouseDown(int x, int y) { - int borderClick; - - if (_menu->mouseClick(x, y)) { - _menuDirty = true; - } else if (_consoleTextArea.contains(x, y)) { - startMarking(x, y); - } else if ((borderClick = isInBorder(_consoleTextArea, x, y)) != kBorderNone) { - int textFullSize = _lines.size() * _consoleLineHeight + _consoleTextArea.height(); - float scrollPos = (float)_scrollPos / textFullSize; - float scrollSize = (float)_consoleTextArea.height() / textFullSize; - - paintBorder(&_screen, _consoleTextArea, kWindowConsole, borderClick, scrollPos, scrollSize); - } + if (empty) + _menu->addMenuSubItem(_weaponsMenuId, "You have no weapons", 0, 0, 0, false); } -int Gui::calcTextX(int x, int textLine) { - const Graphics::Font *font = getConsoleFont(); - - if ((uint)textLine >= _lines.size()) - return 0; - - Common::String str = _lines[textLine]; - - x -= _consoleTextArea.left; - - for (int i = str.size(); i >= 0; i--) { - if (font->getStringWidth(str) < x) { - return i; - } - - str.deleteLastChar(); - } - - return 0; +bool Gui::processEvent(Common::Event &event) { + return _wm.processEvent(event); } -int Gui::calcTextY(int y) { - y -= _consoleTextArea.top; +void menuCommandsCallback(int action, Common::String &text, void *data) { + Gui *g = (Gui *)data; - if (y < 0) - y = 0; - - const int firstLine = _scrollPos / _consoleLineHeight; - int textLine = (y - _scrollPos % _consoleLineHeight) / _consoleLineHeight + firstLine; - - return textLine; + g->executeMenuCommand(action, text); } -void Gui::startMarking(int x, int y) { - _selectionStartY = calcTextY(y); - _selectionStartX = calcTextX(x, _selectionStartY); - - _selectionEndY = -1; +void Gui::executeMenuCommand(int action, Common::String &text) { + switch(action) { + case kMenuActionAbout: + case kMenuActionNew: + case kMenuActionOpen: + case kMenuActionClose: + case kMenuActionSave: + case kMenuActionSaveAs: + case kMenuActionRevert: + case kMenuActionQuit: + + case kMenuActionUndo: + actionUndo(); + break; + case kMenuActionCut: + actionCut(); + break; + case kMenuActionCopy: + actionCopy(); + break; + case kMenuActionPaste: + actionPaste(); + break; + case kMenuActionClear: + actionClear(); + break; - _inTextSelection = true; -} + case kMenuActionCommand: + _engine->processTurn(&text, NULL); + break; -void Gui::updateTextSelection(int x, int y) { - _selectionEndY = calcTextY(y); - _selectionEndX = calcTextX(x, _selectionEndY); + default: + warning("Unknown action: %d", action); - _consoleFullRedraw = true; + } } } // End of namespace Wage diff --git a/engines/wage/gui.h b/engines/wage/gui.h index c136163951..ba1bb5ef3b 100644 --- a/engines/wage/gui.h +++ b/engines/wage/gui.h @@ -50,47 +50,23 @@ #include "common/str-array.h" #include "graphics/font.h" -#include "graphics/fontman.h" -#include "graphics/surface.h" +#include "graphics/managed_surface.h" +#include "common/events.h" #include "common/rect.h" +#include "wage/macwindow.h" +#include "wage/macwindowmanager.h" + namespace Wage { class Menu; - -enum WindowType { - kWindowScene, - kWindowConsole -}; +class Scene; +class WageEngine; enum { - kMenuHeight = 20, - kMenuLeftMargin = 7, - kMenuSpacing = 13, - kMenuPadding = 16, - kMenuDropdownPadding = 14, - kMenuDropdownItemHeight = 16, - kMenuItemHeight = 20, - kBorderWidth = 17, - kDesktopArc = 7, - kComponentsPadding = 10, kCursorHeight = 12 }; -enum { - kPatternSolid = 1, - kPatternStripes = 2, - kPatternCheckers = 3, - kPatternCheckers2 = 4 -}; - -enum { - kBorderNone = 0, - kBorderScrollUp, - kBorderScrollDown, - kBorderCloseButton -}; - class Gui { public: Gui(WageEngine *engine); @@ -99,17 +75,12 @@ public: void draw(); void appendText(const char *str); void clearOutput(); - void mouseMove(int x, int y); - void mouseDown(int x, int y); - Designed *mouseUp(int x, int y); + bool processEvent(Common::Event &event); + void drawInput(); void setSceneDirty() { _sceneDirty = true; } - const Graphics::Font *getFont(const char *name, Graphics::FontManager::FontUsage fallback); void regenCommandsMenu(); void regenWeaponsMenu(); - void processMenuShortCut(byte flags, uint16 ascii); - void pushArrowCursor(); - void popCursor(); void actionCopy(); void actionPaste(); @@ -120,15 +91,15 @@ public: void disableAllMenus(); void enableNewGameMenus(); + bool processSceneEvents(WindowClick click, Common::Event &event); + bool processConsoleEvents(WindowClick click, Common::Event &event); + void executeMenuCommand(int action, Common::String &text); + private: + void drawScene(); + void drawConsole(); void undrawCursor(); - void drawDesktop(); - void paintBorder(Graphics::Surface *g, Common::Rect &r, WindowType windowType, int highlightedPart = kBorderNone, - float scrollPos = 0.0, float scrollSize = 0.0); - void renderConsole(Graphics::Surface *g, Common::Rect &r); - void drawBox(Graphics::Surface *g, int x, int y, int w, int h); - void fillRect(Graphics::Surface *g, int x, int y, int w, int h, int color = kColorBlack); - void loadFonts(); + void renderConsole(Graphics::ManagedSurface *g, const Common::Rect &r); void flowText(Common::String &str); const Graphics::Font *getConsoleFont(); const Graphics::Font *getTitleFont(); @@ -138,29 +109,27 @@ private: void updateTextSelection(int x, int y); public: - Graphics::Surface _screen; + Graphics::ManagedSurface _screen; int _cursorX, _cursorY; bool _cursorState; - Common::Rect _consoleTextArea; - bool _builtInFonts; WageEngine *_engine; - Patterns _patterns; - bool _cursorDirty; Common::Rect _cursorRect; bool _cursorOff; - bool _menuDirty; + Scene *_scene; + + MacWindowManager _wm; + MacWindow *_sceneWindow; + MacWindow *_consoleWindow; private: - Graphics::Surface _console; + Graphics::ManagedSurface _console; Menu *_menu; - Scene *_scene; bool _sceneDirty; bool _consoleDirty; - bool _bordersDirty; Common::StringArray _out; Common::StringArray _lines; @@ -169,10 +138,6 @@ private: uint _consoleNumLines; bool _consoleFullRedraw; - Common::Rect _sceneArea; - bool _sceneIsActive; - bool _cursorIsArrow; - bool _inTextSelection; int _selectionStartX; int _selectionStartY; @@ -183,6 +148,9 @@ private: Common::String _undobuffer; int _inputTextLineNum; + + int _commandsMenuId; + int _weaponsMenuId; }; } // End of namespace Wage diff --git a/engines/wage/menu.cpp b/engines/wage/macmenu.cpp index 12ef8c2219..ed5f5070ff 100644 --- a/engines/wage/menu.cpp +++ b/engines/wage/macmenu.cpp @@ -48,15 +48,25 @@ #include "common/system.h" #include "common/keyboard.h" -#include "wage/wage.h" -#include "wage/entities.h" -#include "wage/design.h" -#include "wage/gui.h" -#include "wage/menu.h" -#include "wage/world.h" +#include "graphics/primitives.h" +#include "graphics/font.h" + +#include "wage/macwindowmanager.h" +#include "wage/macwindow.h" +#include "wage/macmenu.h" namespace Wage { +enum { + kMenuHeight = 20, + kMenuLeftMargin = 7, + kMenuSpacing = 13, + kMenuPadding = 16, + kMenuDropdownPadding = 14, + kMenuDropdownItemHeight = 16, + kMenuItemHeight = 20 +}; + struct MenuSubItem { Common::String text; int action; @@ -79,66 +89,65 @@ struct MenuItem { MenuItem(const char *n) : name(n) {} }; -struct MenuData { - int menunum; - const char *title; - int action; - byte shortcut; - bool enabled; -} static const menuSubItems[] = { - { kMenuFile, "New", kMenuActionNew, 0, false }, - { kMenuFile, "Open...", kMenuActionOpen, 0, false }, - { kMenuFile, "Close", kMenuActionClose, 0, true }, - { kMenuFile, "Save", kMenuActionSave, 0, false }, - { kMenuFile, "Save as...", kMenuActionSaveAs, 0, true }, - { kMenuFile, "Revert", kMenuActionRevert, 0, false }, - { kMenuFile, "Quit", kMenuActionQuit, 0, true }, - - { kMenuEdit, "Undo", kMenuActionUndo, 'Z', false }, - { kMenuEdit, NULL, 0, 0, false }, - { kMenuEdit, "Cut", kMenuActionCut, 'K', false }, - { kMenuEdit, "Copy", kMenuActionCopy, 'C', false }, - { kMenuEdit, "Paste", kMenuActionPaste, 'V', false }, - { kMenuEdit, "Clear", kMenuActionClear, 'B', false }, - - { 0, NULL, 0, 0, false } -}; +Menu::Menu(int id, const Common::Rect &bounds, MacWindowManager *wm) + : BaseMacWindow(id, false, wm) { + _font = getMenuFont(); -Menu::Menu(Gui *gui) : _gui(gui) { - assert(_gui->_engine); - assert(_gui->_engine->_world); + _screen.create(bounds.width(), bounds.height(), Graphics::PixelFormat::createFormatCLUT8()); - _font = getMenuFont(); + _bbox.left = 0; + _bbox.top = 0; + _bbox.right = _screen.w; + _bbox.bottom = kMenuHeight; + + _menuActivated = false; + _activeItem = -1; + _activeSubItem = -1; + + _ccallback = NULL; + _cdata = NULL; + + _tempSurface.create(_screen.w, _font->getFontHeight(), Graphics::PixelFormat::createFormatCLUT8()); +} + +Menu::~Menu() { + for (uint i = 0; i < _items.size(); i++) { + for (uint j = 0; j < _items[i]->subitems.size(); j++) + delete _items[i]->subitems[j]; + delete _items[i]; + } +} - MenuItem *about = new MenuItem(_gui->_builtInFonts ? "\xa9" : "\xf0"); // (c) Symbol as the most resembling apple +void Menu::addStaticMenus(const MenuData *data) { + MenuItem *about = new MenuItem(_wm->hasBuiltInFonts() ? "\xa9" : "\xf0"); // (c) Symbol as the most resembling apple _items.push_back(about); - _items[0]->subitems.push_back(new MenuSubItem(_gui->_engine->_world->getAboutMenuItemName(), kMenuActionAbout)); - MenuItem *file = new MenuItem("File"); - _items.push_back(file); + for (int i = 0; data[i].menunum; i++) { + const MenuData *m = &data[i]; - MenuItem *edit = new MenuItem("Edit"); - _items.push_back(edit); + if (m->menunum == kMenuHighLevel) { + MenuItem *item = new MenuItem(m->title); + _items.push_back(item); - for (int i = 0; menuSubItems[i].menunum; i++) { - const MenuData *m = &menuSubItems[i]; + continue; + } _items[m->menunum]->subitems.push_back(new MenuSubItem(m->title, m->action, 0, m->shortcut, m->enabled)); } +} - _commands = new MenuItem(_gui->_engine->_world->_commandsMenuName.c_str()); - _items.push_back(_commands); - regenCommandsMenu(); - - _weapons = NULL; +int Menu::addMenuItem(const char *name) { + MenuItem *i = new MenuItem(name); + _items.push_back(i); - if (!_gui->_engine->_world->_weaponMenuDisabled) { - _weapons = new MenuItem(_gui->_engine->_world->_weaponsMenuName.c_str()); - _items.push_back(_weapons); + return _items.size() - 1; +} - regenWeaponsMenu(); - } +void Menu::addMenuSubItem(int id, const char *text, int action, int style, char shortcut, bool enabled) { + _items[id]->subitems.push_back(new MenuSubItem(text, action, style, shortcut, enabled)); +} +void Menu::calcDimensions() { // Calculate menu dimensions int y = 1; int x = 18; @@ -150,47 +159,29 @@ Menu::Menu(Gui *gui) : _gui(gui) { _items[i]->bbox.left = x - kMenuLeftMargin; _items[i]->bbox.top = y; _items[i]->bbox.right = x + w + kMenuSpacing - kMenuLeftMargin; - _items[i]->bbox.bottom = y + _font->getFontHeight() + (_gui->_builtInFonts ? 3 : 2); + _items[i]->bbox.bottom = y + _font->getFontHeight() + (_wm->hasBuiltInFonts() ? 3 : 2); } calcMenuBounds(_items[i]); x += w + kMenuSpacing; } - - _bbox.left = 0; - _bbox.top = 0; - _bbox.right = _gui->_screen.w - 1; - _bbox.bottom = kMenuHeight - 1; - - _menuActivated = false; - _activeItem = -1; - _activeSubItem = -1; - - _screenCopy.create(_gui->_screen.w, _gui->_screen.h, Graphics::PixelFormat::createFormatCLUT8()); - _tempSurface.create(_gui->_screen.w, _font->getFontHeight(), Graphics::PixelFormat::createFormatCLUT8()); -} - -Menu::~Menu() { - for (uint i = 0; i < _items.size(); i++) { - for (uint j = 0; j < _items[i]->subitems.size(); j++) - delete _items[i]->subitems[j]; - delete _items[i]; - } } -void Menu::regenCommandsMenu() { - for (uint j = 0; j < _commands->subitems.size(); j++) - delete _commands->subitems[j]; +void Menu::clearSubMenu(int id) { + MenuItem *menu = _items[id]; - _commands->subitems.clear(); + for (uint j = 0; j < menu->subitems.size(); j++) + delete menu->subitems[j]; - createCommandsMenu(_commands); - calcMenuBounds(_commands); + menu->subitems.clear(); } -void Menu::createCommandsMenu(MenuItem *menu) { - Common::String string(_gui->_engine->_world->_commandsMenu); +void Menu::createSubMenuFromString(int id, const char *str) { + clearSubMenu(id); + + MenuItem *menu = _items[id]; + Common::String string(str); Common::String item; @@ -253,45 +244,12 @@ void Menu::createCommandsMenu(MenuItem *menu) { item.clear(); } -} - -void Menu::regenWeaponsMenu() { - if (_gui->_engine->_world->_weaponMenuDisabled) - return; - - for (uint j = 0; j < _weapons->subitems.size(); j++) - delete _weapons->subitems[j]; - - _weapons->subitems.clear(); - - createWeaponsMenu(_weapons); - calcMenuBounds(_weapons); -} - -void Menu::createWeaponsMenu(MenuItem *menu) { - Chr *player = _gui->_engine->_world->_player; - ObjArray *weapons = player->getWeapons(true); - - for (uint i = 0; i < weapons->size(); i++) { - Obj *obj = (*weapons)[i]; - if (obj->_type == Obj::REGULAR_WEAPON || - obj->_type == Obj::THROW_WEAPON || - obj->_type == Obj::MAGICAL_OBJECT) { - Common::String command(obj->_operativeVerb); - command += " "; - command += obj->_name; - - menu->subitems.push_back(new MenuSubItem(command.c_str(), kMenuActionCommand, 0, 0, true)); - } - } - delete weapons; - if (menu->subitems.empty()) - menu->subitems.push_back(new MenuSubItem("You have no weapons", 0, 0, 0, false)); + calcMenuBounds(menu); } const Graphics::Font *Menu::getMenuFont() { - return _gui->getFont("Chicago-12", Graphics::FontManager::kBigGUIFont); + return _wm->getFont("Chicago-12", Graphics::FontManager::kBigGUIFont); } const char *Menu::getAcceleratorString(MenuSubItem *item, const char *prefix) { @@ -299,7 +257,7 @@ const char *Menu::getAcceleratorString(MenuSubItem *item, const char *prefix) { *res = 0; if (item->shortcut != 0) - sprintf(res, "%s%c%c", prefix, (_gui->_builtInFonts ? '^' : '\x11'), item->shortcut); + sprintf(res, "%s%c%c", prefix, (_wm->hasBuiltInFonts() ? '^' : '\x11'), item->shortcut); return res; } @@ -338,14 +296,35 @@ void Menu::calcMenuBounds(MenuItem *menu) { menu->subbbox.bottom = y2; } -void Menu::render() { +static void drawPixelPlain(int x, int y, int color, void *data) { + Graphics::ManagedSurface *surface = (Graphics::ManagedSurface *)data; + + if (x >= 0 && x < surface->w && y >= 0 && y < surface->h) + *((byte *)surface->getBasePtr(x, y)) = (byte)color; +} + +static void drawFilledRoundRect(Graphics::ManagedSurface *surface, Common::Rect &rect, int arc, int color) { + Graphics::drawRoundRect(rect, arc, color, true, drawPixelPlain, surface); +} + +bool Menu::draw(Graphics::ManagedSurface *g, bool forceRedraw) { Common::Rect r(_bbox); - Design::drawFilledRoundRect(&_gui->_screen, r, kDesktopArc, kColorWhite, _gui->_patterns, kPatternSolid); + if (!_contentIsDirty && !forceRedraw) + return false; + + _contentIsDirty = false; + + _screen.clear(kColorGreen); + + drawFilledRoundRect(&_screen, r, kDesktopArc, kColorWhite); r.top = 7; - Design::drawFilledRect(&_gui->_screen, r, kColorWhite, _gui->_patterns, kPatternSolid); + _screen.fillRect(r, kColorWhite); r.top = kMenuHeight - 1; - Design::drawFilledRect(&_gui->_screen, r, kColorBlack, _gui->_patterns, kPatternSolid); + r.bottom++; + _screen.fillRect(r, kColorGreen); + r.bottom--; + _screen.fillRect(r, kColorBlack); for (uint i = 0; i < _items.size(); i++) { int color = kColorBlack; @@ -355,19 +334,24 @@ void Menu::render() { Common::Rect hbox = it->bbox; hbox.left -= 1; - hbox.right += 2; + hbox.right += 3; + hbox.bottom += 1; - Design::drawFilledRect(&_gui->_screen, hbox, kColorBlack, _gui->_patterns, kPatternSolid); + _screen.fillRect(hbox, kColorBlack); color = kColorWhite; if (!it->subitems.empty()) renderSubmenu(it); } - _font->drawString(&_gui->_screen, it->name, it->bbox.left + kMenuLeftMargin, it->bbox.top + (_gui->_builtInFonts ? 2 : 1), it->bbox.width(), color); + _font->drawString(&_screen, it->name, it->bbox.left + kMenuLeftMargin, it->bbox.top + (_wm->hasBuiltInFonts() ? 2 : 1), it->bbox.width(), color); } - g_system->copyRectToScreen(_gui->_screen.getPixels(), _gui->_screen.pitch, 0, 0, _gui->_screen.w, kMenuHeight); + g->transBlitFrom(_screen, kColorGreen); + + g_system->copyRectToScreen(g->getPixels(), g->pitch, 0, 0, g->w, g->h); + + return true; } void Menu::renderSubmenu(MenuItem *menu) { @@ -376,10 +360,12 @@ void Menu::renderSubmenu(MenuItem *menu) { if (r->width() == 0 || r->height() == 0) return; - Design::drawFilledRect(&_gui->_screen, *r, kColorWhite, _gui->_patterns, kPatternSolid); - Design::drawRect(&_gui->_screen, *r, 1, kColorBlack, _gui->_patterns, kPatternSolid); - Design::drawVLine(&_gui->_screen, r->right + 1, r->top + 3, r->bottom + 1, 1, kColorBlack, _gui->_patterns, kPatternSolid); - Design::drawHLine(&_gui->_screen, r->left + 3, r->right + 1, r->bottom + 1, 1, kColorBlack, _gui->_patterns, kPatternSolid); + _screen.fillRect(*r, kColorWhite); + _screen.frameRect(*r, kColorBlack); + _screen.vLine(r->right, r->top + 3, r->bottom + 1, kColorBlack); + _screen.vLine(r->right + 1, r->top + 3, r->bottom + 1, kColorBlack); + _screen.hLine(r->left + 3, r->bottom, r->right + 1, kColorBlack); + _screen.hLine(r->left + 3, r->bottom + 1, r->right + 1, kColorBlack); int x = r->left + kMenuDropdownPadding; int y = r->top + 1; @@ -391,13 +377,13 @@ void Menu::renderSubmenu(MenuItem *menu) { int color = kColorBlack; if (i == (uint)_activeSubItem && !text.empty() && menu->subitems[i]->enabled) { color = kColorWhite; - Common::Rect trect(r->left, y - (_gui->_builtInFonts ? 1 : 0), r->right, y + _font->getFontHeight()); + Common::Rect trect(r->left, y - (_wm->hasBuiltInFonts() ? 1 : 0), r->right, y + _font->getFontHeight()); - Design::drawFilledRect(&_gui->_screen, trect, kColorBlack, _gui->_patterns, kPatternSolid); + _screen.fillRect(trect, kColorBlack); } if (!text.empty()) { - Graphics::Surface *s = &_gui->_screen; + Graphics::ManagedSurface *s = &_screen; int tx = x, ty = y; if (!menu->subitems[i]->enabled) { @@ -406,7 +392,7 @@ void Menu::renderSubmenu(MenuItem *menu) { ty = 0; accelX -= x; - _tempSurface.fillRect(Common::Rect(0, 0, _tempSurface.w, _tempSurface.h), kColorGreen); + _tempSurface.clear(kColorGreen); } _font->drawString(s, text, tx, ty, r->width(), color); @@ -419,8 +405,8 @@ void Menu::renderSubmenu(MenuItem *menu) { // fake it here for (int ii = 0; ii < _tempSurface.h; ii++) { const byte *src = (const byte *)_tempSurface.getBasePtr(0, ii); - byte *dst = (byte *)_gui->_screen.getBasePtr(x, y+ii); - byte pat = _gui->_patterns[kPatternCheckers2 - 1][ii % 8]; + byte *dst = (byte *)_screen.getBasePtr(x, y+ii); + byte pat = _wm->getPatterns()[kPatternCheckers2 - 1][ii % 8]; for (int j = 0; j < r->width(); j++) { if (*src != kColorGreen && (pat & (1 << (7 - (x + j) % 8)))) *dst = *src; @@ -430,20 +416,51 @@ void Menu::renderSubmenu(MenuItem *menu) { } } } else { // Delimiter - Design::drawHLine(&_gui->_screen, r->left + 1, r->right - 1, y + kMenuDropdownItemHeight / 2, 1, kColorBlack, _gui->_patterns, kPatternStripes); + bool flip = r->left & 2; + byte *ptr = (byte *)_screen.getBasePtr(r->left + 1, y + kMenuDropdownItemHeight / 2); + for (int xx = r->left + 1; xx <= r->right - 1; xx++, ptr++) { + *ptr = flip ? kColorBlack : kColorWhite; + flip = !flip; + } } y += kMenuDropdownItemHeight; } - g_system->copyRectToScreen(_gui->_screen.getBasePtr(r->left, r->top), _gui->_screen.pitch, r->left, r->top, r->width() + 3, r->height() + 3); + _contentIsDirty = true; + //g_system->copyRectToScreen(_screen.getBasePtr(r->left, r->top), _screen.pitch, r->left, r->top, r->width() + 2, r->height() + 2); +} + +bool Menu::processEvent(Common::Event &event) { + switch (event.type) { + case Common::EVENT_KEYDOWN: + return keyEvent(event); + case Common::EVENT_LBUTTONDOWN: + return mouseClick(event.mouse.x, event.mouse.y); + case Common::EVENT_LBUTTONUP: + return mouseRelease(event.mouse.x, event.mouse.y); + case Common::EVENT_MOUSEMOVE: + return mouseMove(event.mouse.x, event.mouse.y); + default: + return false; + } +} + +bool Menu::keyEvent(Common::Event &event) { + if (event.type != Common::EVENT_KEYDOWN) + return false; + + if (event.kbd.flags & (Common::KBD_ALT | Common::KBD_CTRL | Common::KBD_META)) { + if (event.kbd.ascii >= 0x20 && event.kbd.ascii <= 0x7f) { + return processMenuShortCut(event.kbd.flags, event.kbd.ascii); + } + } + + return false; } bool Menu::mouseClick(int x, int y) { if (_bbox.contains(x, y)) { - if (!_menuActivated) - _screenCopy.copyFrom(_gui->_screen); - for (uint i = 0; i < _items.size(); i++) if (_items[i]->bbox.contains(x, y)) { if ((uint)_activeItem == i) @@ -454,14 +471,15 @@ bool Menu::mouseClick(int x, int y) { r.right += 3; r.bottom += 3; - _gui->_screen.copyRectToSurface(_screenCopy, r.left, r.top, r); - g_system->copyRectToScreen(_gui->_screen.getBasePtr(r.left, r.top), _gui->_screen.pitch, r.left, r.top, r.width() + 1, r.height() + 1); + _wm->setFullRefresh(true); } _activeItem = i; _activeSubItem = -1; _menuActivated = true; + _contentIsDirty = true; + return true; } } else if (_menuActivated && _items[_activeItem]->subbbox.contains(x, y)) { @@ -472,11 +490,13 @@ bool Menu::mouseClick(int x, int y) { _activeSubItem = numSubItem; renderSubmenu(_items[_activeItem]); + _contentIsDirty = true; } } else if (_menuActivated && _activeItem != -1) { _activeSubItem = -1; renderSubmenu(_items[_activeItem]); + _contentIsDirty = true; } return false; @@ -495,77 +515,49 @@ bool Menu::mouseRelease(int x, int y) { _menuActivated = false; if (_activeItem != -1 && _activeSubItem != -1 && _items[_activeItem]->subitems[_activeSubItem]->enabled) - executeCommand(_items[_activeItem]->subitems[_activeSubItem]); + (*_ccallback)(_items[_activeItem]->subitems[_activeSubItem]->action, + _items[_activeItem]->subitems[_activeSubItem]->text, _cdata); _activeItem = -1; _activeSubItem = -1; + _wm->setFullRefresh(true); + return true; } return false; } -void Menu::executeCommand(MenuSubItem *subitem) { - switch(subitem->action) { - case kMenuActionAbout: - case kMenuActionNew: - case kMenuActionOpen: - case kMenuActionClose: - case kMenuActionSave: - case kMenuActionSaveAs: - case kMenuActionRevert: - case kMenuActionQuit: - - case kMenuActionUndo: - _gui->actionUndo(); - break; - case kMenuActionCut: - _gui->actionCut(); - break; - case kMenuActionCopy: - _gui->actionCopy(); - break; - case kMenuActionPaste: - _gui->actionPaste(); - break; - case kMenuActionClear: - _gui->actionClear(); - break; - - case kMenuActionCommand: - _gui->_engine->processTurn(&subitem->text, NULL); - break; - - default: - warning("Unknown action: %d", subitem->action); - - } -} - -void Menu::processMenuShortCut(byte flags, uint16 ascii) { +bool Menu::processMenuShortCut(byte flags, uint16 ascii) { ascii = tolower(ascii); if (flags & (Common::KBD_CTRL | Common::KBD_META)) { for (uint i = 0; i < _items.size(); i++) for (uint j = 0; j < _items[i]->subitems.size(); j++) if (_items[i]->subitems[j]->enabled && tolower(_items[i]->subitems[j]->shortcut) == ascii) { - executeCommand(_items[i]->subitems[j]); - break; + (*_ccallback)(_items[i]->subitems[j]->action, _items[i]->subitems[j]->text, _cdata); + return true; } } + + return false; } void Menu::enableCommand(int menunum, int action, bool state) { for (uint i = 0; i < _items[menunum]->subitems.size(); i++) if (_items[menunum]->subitems[i]->action == action) _items[menunum]->subitems[i]->enabled = state; + + _contentIsDirty = true; } void Menu::disableAllMenus() { for (uint i = 1; i < _items.size(); i++) // Leave About menu on for (uint j = 0; j < _items[i]->subitems.size(); j++) _items[i]->subitems[j]->enabled = false; + + _contentIsDirty = true; } } // End of namespace Wage diff --git a/engines/wage/menu.h b/engines/wage/macmenu.h index 3550356bc6..e73e4c48a9 100644 --- a/engines/wage/menu.h +++ b/engines/wage/macmenu.h @@ -45,8 +45,8 @@ * */ -#ifndef WAGE_MENU_H -#define WAGE_MENU_H +#ifndef WAGE_MACMENU_H +#define WAGE_MACMENU_H namespace Wage { @@ -64,6 +64,7 @@ enum { }; enum { + kMenuHighLevel = -1, kMenuAbout = 0, kMenuFile = 1, kMenuEdit = 2, @@ -90,29 +91,43 @@ enum { kMenuActionCommand }; -class Menu { +struct MenuData { + int menunum; + const char *title; + int action; + byte shortcut; + bool enabled; +}; + +class Menu : public BaseMacWindow { public: - Menu(Gui *gui); + Menu(int id, const Common::Rect &bounds, MacWindowManager *wm); ~Menu(); - void render(); - bool mouseClick(int x, int y); - bool mouseRelease(int x, int y); - bool mouseMove(int x, int y); + void setCommandsCallback(void (*callback)(int, Common::String &, void *), void *data) { _ccallback = callback; _cdata = data; } + + void addStaticMenus(const MenuData *data); + void calcDimensions(); + + int addMenuItem(const char *name); + void addMenuSubItem(int id, const char *text, int action, int style = 0, char shortcut = 0, bool enabled = true); + void createSubMenuFromString(int id, const char *string); + void clearSubMenu(int id); + + bool draw(Graphics::ManagedSurface *g, bool forceRedraw = false); + bool processEvent(Common::Event &event); - void regenCommandsMenu(); - void regenWeaponsMenu(); - void processMenuShortCut(byte flags, uint16 ascii); void enableCommand(int menunum, int action, bool state); void disableAllMenus(); - bool _menuActivated; + void setActive(bool active) { _menuActivated = active; } + bool hasAllFocus() { return _menuActivated; } + Common::Rect _bbox; private: - Gui *_gui; - Graphics::Surface _screenCopy; - Graphics::Surface _tempSurface; + Graphics::ManagedSurface _screen; + Graphics::ManagedSurface _tempSurface; private: const Graphics::Font *getMenuFont(); @@ -120,18 +135,25 @@ private: int calculateMenuWidth(MenuItem *menu); void calcMenuBounds(MenuItem *menu); void renderSubmenu(MenuItem *menu); - void createCommandsMenu(MenuItem *menu); - void createWeaponsMenu(MenuItem *menu); - void executeCommand(MenuSubItem *subitem); + + bool keyEvent(Common::Event &event); + bool mouseClick(int x, int y); + bool mouseRelease(int x, int y); + bool mouseMove(int x, int y); + + bool processMenuShortCut(byte flags, uint16 ascii); Common::Array<MenuItem *> _items; - MenuItem *_weapons; - MenuItem *_commands; const Graphics::Font *_font; + bool _menuActivated; + int _activeItem; int _activeSubItem; + + void (*_ccallback)(int action, Common::String &text, void *data); + void *_cdata; }; } // End of namespace Wage diff --git a/engines/wage/macwindow.cpp b/engines/wage/macwindow.cpp new file mode 100644 index 0000000000..8903936061 --- /dev/null +++ b/engines/wage/macwindow.cpp @@ -0,0 +1,376 @@ +/* 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. + * + * MIT License: + * + * Copyright (c) 2009 Alexei Svitkine, Eugene Sandulenko + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + */ + +#include "graphics/font.h" +#include "graphics/primitives.h" +#include "common/events.h" + +#include "wage/macwindow.h" +#include "wage/macwindowmanager.h" + +namespace Wage { + +BaseMacWindow::BaseMacWindow(int id, bool editable, MacWindowManager *wm) : + _id(id), _editable(editable), _wm(wm) { + _callback = 0; + _dataPtr = 0; + + _contentIsDirty = true; + + _type = kWindowUnknown; +} + +MacWindow::MacWindow(int id, bool scrollable, bool resizable, bool editable, MacWindowManager *wm) : + BaseMacWindow(id, editable, wm), _scrollable(scrollable), _resizable(resizable) { + _active = false; + _borderIsDirty = true; + + _highlightedPart = kBorderNone; + + _scrollPos = _scrollSize = 0.0; + + _beingDragged = false; + _beingResized = false; + + _draggedX = _draggedY = 0; + + _type = kWindowWindow; +} + +MacWindow::~MacWindow() { +} + +const Graphics::Font *MacWindow::getTitleFont() { + return _wm->getFont("Chicago-12", Graphics::FontManager::kBigGUIFont); +} + +void MacWindow::setActive(bool active) { + if (active == _active) + return; + + _active = active; + _borderIsDirty = true; +} + +void MacWindow::resize(int w, int h) { + if (_surface.w == w && _surface.h == h) + return; + + _surface.free(); + _surface.create(w, h, Graphics::PixelFormat::createFormatCLUT8()); + _borderSurface.free(); + _borderSurface.create(w, h, Graphics::PixelFormat::createFormatCLUT8()); + _composeSurface.free(); + _composeSurface.create(w, h, Graphics::PixelFormat::createFormatCLUT8()); + + _dims.setWidth(w); + _dims.setHeight(h); + + updateInnerDims(); + + _contentIsDirty = true; + _borderIsDirty = true; +} + +void MacWindow::move(int x, int y) { + if (_dims.left == x && _dims.top == y) + return; + + _dims.moveTo(x, y); + updateInnerDims(); + + _contentIsDirty = true; +} + +void MacWindow::setDimensions(const Common::Rect &r) { + resize(r.width(), r.height()); + _dims.moveTo(r.left, r.top); + updateInnerDims(); + + _contentIsDirty = true; +} + +bool MacWindow::draw(Graphics::ManagedSurface *g, bool forceRedraw) { + if (!_borderIsDirty && !_contentIsDirty && !forceRedraw) + return false; + + if (_borderIsDirty || forceRedraw) + drawBorder(); + + _contentIsDirty = false; + + // Compose + _composeSurface.blitFrom(_surface, Common::Rect(0, 0, _surface.w - 2, _surface.h - 2), Common::Point(2, 2)); + _composeSurface.transBlitFrom(_borderSurface, kColorGreen); + + g->transBlitFrom(_composeSurface, _composeSurface.getBounds(), Common::Point(_dims.left - 2, _dims.top - 2), kColorGreen2); + + return true; +} + +#define ARROW_W 12 +#define ARROW_H 6 +const int arrowPixels[ARROW_H][ARROW_W] = { + {0,0,0,0,0,1,1,0,0,0,0,0}, + {0,0,0,0,1,1,1,1,0,0,0,0}, + {0,0,0,1,1,1,1,1,1,0,0,0}, + {0,0,1,1,1,1,1,1,1,1,0,0}, + {0,1,1,1,1,1,1,1,1,1,1,0}, + {1,1,1,1,1,1,1,1,1,1,1,1}}; + +static void drawPixelInverted(int x, int y, int color, void *data) { + Graphics::ManagedSurface *surface = (Graphics::ManagedSurface *)data; + + if (x >= 0 && x < surface->w && y >= 0 && y < surface->h) { + byte *p = (byte *)surface->getBasePtr(x, y); + + *p = *p == kColorWhite ? kColorBlack : kColorWhite; + } +} + +void MacWindow::updateInnerDims() { + _innerDims = _dims; + _innerDims.grow(-kBorderWidth); +} + +void MacWindow::drawBorder() { + _borderIsDirty = false; + + bool active = _active, scrollable = _scrollable, closeable = _active, drawTitle = !_title.empty(); + const int size = kBorderWidth; + int x = 0; + int y = 0; + int width = _borderSurface.w; + int height = _borderSurface.h; + Graphics::ManagedSurface *g = &_borderSurface; + + // We draw rect with outer kColorGreen2 and inner kColorGreen, so on 2 passes we cut out + // scene by external shape of the border + int sz = kBorderWidth / 2; + g->clear(kColorGreen2); + g->fillRect(Common::Rect(sz, sz, width - sz, height - sz), kColorGreen); + + drawBox(g, x, y, size, size); + drawBox(g, x + width - size - 1, y, size, size); + drawBox(g, x + width - size - 1, y + height - size - 1, size, size); + drawBox(g, x, y + height - size - 1, size, size); + drawBox(g, x + size, y + 2, width - 2 * size - 1, size - 4); + drawBox(g, x + size, y + height - size + 1, width - 2 * size - 1, size - 4); + drawBox(g, x + 2, y + size, size - 4, height - 2 * size - 1); + drawBox(g, x + width - size + 1, y + size, size - 4, height - 2 * size - 1); + + if (active) { + fillRect(g, x + size, y + 5, width - 2 * size - 1, 8, kColorBlack); + fillRect(g, x + size, y + height - 13, width - 2 * size - 1, 8, kColorBlack); + fillRect(g, x + 5, y + size, 8, height - 2 * size - 1, kColorBlack); + if (!scrollable) { + fillRect(g, x + width - 13, y + size, 8, height - 2 * size - 1, kColorBlack); + } else { + int x1 = x + width - 15; + int y1 = y + size + 1; + + for (int yy = 0; yy < ARROW_H; yy++) { + for (int xx = 0; xx < ARROW_W; xx++) + g->hLine(x1 + xx, y1 + yy, x1 + xx, (arrowPixels[yy][xx] != 0 ? kColorBlack : kColorWhite)); + } + + fillRect(g, x + width - 13, y + size + ARROW_H, 8, height - 2 * size - 1 - ARROW_H * 2, kColorBlack); + + y1 += height - 2 * size - ARROW_H - 2; + for (int yy = 0; yy < ARROW_H; yy++) { + for (int xx = 0; xx < ARROW_W; xx++) + g->hLine(x1 + xx, y1 + yy, x1 + xx, (arrowPixels[ARROW_H - yy - 1][xx] != 0 ? kColorBlack : kColorWhite)); + } + + if (_highlightedPart == kBorderScrollUp || _highlightedPart == kBorderScrollDown) { + int rx1 = x + width - kBorderWidth + 2; + int ry1 = y + size + _dims.height() * _scrollPos; + int rx2 = rx1 + size - 4; + int ry2 = ry1 + _dims.height() * _scrollSize; + Common::Rect rr(rx1, ry1, rx2, ry2); + + Graphics::drawFilledRect(rr, kColorBlack, drawPixelInverted, g); + } + } + if (closeable) { + if (_highlightedPart == kBorderCloseButton) { + fillRect(g, x + 6, y + 6, 6, 6, kColorBlack); + } else { + drawBox(g, x + 5, y + 5, 7, 7); + } + } + } + + if (drawTitle) { + const Graphics::Font *font = getTitleFont(); + int yOff = _wm->hasBuiltInFonts() ? 3 : 1; + + int w = font->getStringWidth(_title) + 10; + int maxWidth = width - size * 2 - 7; + if (w > maxWidth) + w = maxWidth; + drawBox(g, x + (width - w) / 2, y, w, size); + font->drawString(g, _title, x + (width - w) / 2 + 5, y + yOff, w, kColorBlack); + } +} + +void MacWindow::setHighlight(WindowClick highlightedPart) { + if (_highlightedPart == highlightedPart) + return; + + _highlightedPart = highlightedPart; + _borderIsDirty = true; + } + + void MacWindow::setScroll(float scrollPos, float scrollSize) { + if (_scrollPos == scrollPos && _scrollSize == scrollSize) + return; + + _scrollPos = scrollPos; + _scrollSize = scrollSize; + _borderIsDirty = true; + } + + +void MacWindow::drawBox(Graphics::ManagedSurface *g, int x, int y, int w, int h) { + Common::Rect r(x, y, x + w + 1, y + h + 1); + + g->fillRect(r, kColorWhite); + g->frameRect(r, kColorBlack); +} + +void MacWindow::fillRect(Graphics::ManagedSurface *g, int x, int y, int w, int h, int color) { + Common::Rect r(x, y, x + w, y + h); + + g->fillRect(r, color); +} + +WindowClick MacWindow::isInBorder(int x, int y) { + if (_innerDims.contains(x, y)) + return kBorderInner; + + if (x >= _innerDims.left - kBorderWidth && x < _innerDims.left && y >= _innerDims.top - kBorderWidth && y < _innerDims.top) + return kBorderCloseButton; + + if (_resizable) + if (x >= _innerDims.right && x < _innerDims.right + kBorderWidth && y >= _innerDims.bottom && y < _innerDims.bottom + kBorderWidth) + return kBorderResizeButton; + + if (_scrollable && x >= _innerDims.right && x < _innerDims.right + kBorderWidth) { + if (y < _innerDims.top - kBorderWidth) + return kBorderBorder; + + if (y >= _innerDims.bottom + kBorderWidth) + return kBorderBorder; + + if (y >= _innerDims.top + _innerDims.height() / 2) + return kBorderScrollDown; + + return kBorderScrollUp; + } + + return kBorderBorder; +} + +bool MacWindow::processEvent(Common::Event &event) { + WindowClick click = isInBorder(event.mouse.x, event.mouse.y); + + switch (event.type) { + case Common::EVENT_MOUSEMOVE: + if (_beingDragged) { + _dims.translate(event.mouse.x - _draggedX, event.mouse.y - _draggedY); + updateInnerDims(); + + _draggedX = event.mouse.x; + _draggedY = event.mouse.y; + + _wm->setFullRefresh(true); + } + + if (_beingResized) { + resize(MAX(kBorderWidth * 4, _dims.width() + event.mouse.x - _draggedX), + MAX(kBorderWidth * 4, _dims.height() + event.mouse.y - _draggedY)); + + _draggedX = event.mouse.x; + _draggedY = event.mouse.y; + + _wm->setFullRefresh(true); + (*_callback)(click, event, _dataPtr); + } + break; + case Common::EVENT_LBUTTONDOWN: + setHighlight(click); + + if (click == kBorderBorder) { + _beingDragged = true; + + _draggedX = event.mouse.x; + _draggedY = event.mouse.y; + } + + if (click == kBorderResizeButton) { + _beingResized = true; + + _draggedX = event.mouse.x; + _draggedY = event.mouse.y; + } + + break; + case Common::EVENT_LBUTTONUP: + _beingDragged = false; + _beingResized = false; + + setHighlight(kBorderNone); + break; + default: + return false; + } + + return (*_callback)(click, event, _dataPtr); +} + +} // End of namespace Wage diff --git a/engines/wage/macwindow.h b/engines/wage/macwindow.h new file mode 100644 index 0000000000..4c6e9efeff --- /dev/null +++ b/engines/wage/macwindow.h @@ -0,0 +1,161 @@ +/* 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. + * + * MIT License: + * + * Copyright (c) 2009 Alexei Svitkine, Eugene Sandulenko + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + */ + +#ifndef WAGE_MACWINDOW_H +#define WAGE_MACWINDOW_H + +#include "graphics/managed_surface.h" + +namespace Wage { + +class MacWindowManager; + +enum WindowType { + kWindowUnknown, + kWindowWindow, + kWindowMenu +}; + +enum { + kBorderWidth = 17 +}; + +enum WindowClick { + kBorderNone = 0, + kBorderScrollUp, + kBorderScrollDown, + kBorderCloseButton, + kBorderInner, + kBorderBorder, + kBorderResizeButton +}; + +class BaseMacWindow { +public: + BaseMacWindow(int id, bool editable, MacWindowManager *wm); + virtual ~BaseMacWindow() {} + + const Common::Rect &getDimensions() { return _dims; } + int getId() { return _id; } + WindowType getType() { return _type; } + bool isEditable() { return _editable; } + Graphics::ManagedSurface *getSurface() { return &_surface; } + virtual void setActive(bool active) = 0; + void setDirty(bool dirty) { _contentIsDirty = dirty; } + + virtual bool draw(Graphics::ManagedSurface *g, bool forceRedraw = false) = 0; + virtual bool processEvent(Common::Event &event) = 0; + + virtual bool hasAllFocus() = 0; + + void setCallback(bool (*callback)(WindowClick, Common::Event &, void *), void *data) { _callback = callback; _dataPtr = data; } + +protected: + int _id; + WindowType _type; + + bool _editable; + + Graphics::ManagedSurface _surface; + bool _contentIsDirty; + + Common::Rect _dims; + + bool (*_callback)(WindowClick, Common::Event &, void *); + void *_dataPtr; + + MacWindowManager *_wm; +}; + +class MacWindow : public BaseMacWindow { +public: + MacWindow(int id, bool scrollable, bool resizable, bool editable, MacWindowManager *wm); + virtual ~MacWindow(); + void move(int x, int y); + void resize(int w, int h); + void setDimensions(const Common::Rect &r); + const Common::Rect &getInnerDimensions() { return _innerDims; } + + bool draw(Graphics::ManagedSurface *g, bool forceRedraw = false); + + void setActive(bool active); + void setTitle(Common::String &title) { _title = title; } + void setHighlight(WindowClick highlightedPart); + void setScroll(float scrollPos, float scrollSize); + bool processEvent(Common::Event &event); + bool hasAllFocus() { return _beingDragged || _beingResized; } + +private: + void drawBorder(); + void drawBox(Graphics::ManagedSurface *g, int x, int y, int w, int h); + void fillRect(Graphics::ManagedSurface *g, int x, int y, int w, int h, int color); + const Graphics::Font *getTitleFont(); + void updateInnerDims(); + WindowClick isInBorder(int x, int y); + +private: + Graphics::ManagedSurface _borderSurface; + Graphics::ManagedSurface _composeSurface; + bool _scrollable; + bool _resizable; + bool _active; + bool _borderIsDirty; + + bool _beingDragged, _beingResized; + int _draggedX, _draggedY; + + WindowClick _highlightedPart; + float _scrollPos, _scrollSize; + + Common::Rect _innerDims; + + Common::String _title; +}; + +} // End of namespace Wage + +#endif diff --git a/engines/wage/macwindowmanager.cpp b/engines/wage/macwindowmanager.cpp new file mode 100644 index 0000000000..5cc54d648a --- /dev/null +++ b/engines/wage/macwindowmanager.cpp @@ -0,0 +1,380 @@ +/* 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. + * + * MIT License: + * + * Copyright (c) 2009 Alexei Svitkine, Eugene Sandulenko + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + */ + +#include "common/array.h" +#include "common/events.h" +#include "common/list.h" +#include "common/unzip.h" +#include "common/system.h" +#include "common/stream.h" + +#include "graphics/cursorman.h" +#include "graphics/fonts/bdf.h" +#include "graphics/managed_surface.h" +#include "graphics/palette.h" +#include "graphics/primitives.h" + +#include "wage/macwindowmanager.h" +#include "wage/macwindow.h" +#include "wage/macmenu.h" + +namespace Wage { + +static const byte palette[] = { + 0, 0, 0, // Black + 0x80, 0x80, 0x80, // Gray + 0xff, 0xff, 0xff, // White + 0x00, 0xff, 0x00, // Green + 0x00, 0xcf, 0x00 // Green2 +}; + +static byte fillPatterns[][8] = { { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, // kPatternSolid + { 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55 }, // kPatternStripes + { 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55 }, // kPatternCheckers + { 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa } // kPatternCheckers2 +}; + +static const byte macCursorArrow[] = { + 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 2, 0, 2, 3, 3, 3, 3, 3, 3, 3, 3, + 2, 0, 0, 2, 3, 3, 3, 3, 3, 3, 3, + 2, 0, 0, 0, 2, 3, 3, 3, 3, 3, 3, + 2, 0, 0, 0, 0, 2, 3, 3, 3, 3, 3, + 2, 0, 0, 0, 0, 0, 2, 3, 3, 3, 3, + 2, 0, 0, 0, 0, 0, 0, 2, 3, 3, 3, + 2, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, + 2, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, + 2, 0, 0, 2, 0, 0, 2, 3, 3, 3, 3, + 2, 0, 2, 3, 2, 0, 0, 2, 3, 3, 3, + 2, 2, 3, 3, 2, 0, 0, 2, 3, 3, 3, + 2, 3, 3, 3, 3, 2, 0, 0, 2, 3, 3, + 3, 3, 3, 3, 3, 2, 0, 0, 2, 3, 3, + 3, 3, 3, 3, 3, 3, 2, 2, 2, 3, 3 +}; + +static const byte macCursorBeam[] = { + 0, 0, 3, 3, 3, 0, 0, 3, 3, 3, 3, + 3, 3, 0, 3, 0, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 0, 3, 0, 3, 3, 3, 3, 3, 3, + 0, 0, 3, 3, 3, 0, 0, 3, 3, 3, 3, +}; + +MacWindowManager::MacWindowManager() { + _screen = 0; + _lastId = 0; + _activeWindow = -1; + + _menu = 0; + + _fullRefresh = true; + + _builtInFonts = true; + + for (int i = 0; i < ARRAYSIZE(fillPatterns); i++) + _patterns.push_back(fillPatterns[i]); + + loadFonts(); + + g_system->getPaletteManager()->setPalette(palette, 0, ARRAYSIZE(palette) / 3); + + CursorMan.replaceCursorPalette(palette, 0, ARRAYSIZE(palette) / 3); + CursorMan.replaceCursor(macCursorArrow, 11, 16, 1, 1, 3); + _cursorIsArrow = true; + CursorMan.showMouse(true); +} + +MacWindowManager::~MacWindowManager() { + for (int i = 0; i < _lastId; i++) + delete _windows[i]; +} + +MacWindow *MacWindowManager::addWindow(bool scrollable, bool resizable, bool editable) { + MacWindow *w = new MacWindow(_lastId, scrollable, resizable, editable, this); + + _windows.push_back(w); + _windowStack.push_back(w); + + setActive(_lastId); + + _lastId++; + + return w; +} + +Menu *MacWindowManager::addMenu() { + _menu = new Menu(_lastId, _screen->getBounds(), this); + + _windows.push_back(_menu); + + _lastId++; + + return _menu; +} + +void MacWindowManager::setActive(int id) { + if (_activeWindow == id) + return; + + if (_activeWindow != -1) + _windows[_activeWindow]->setActive(false); + + _activeWindow = id; + + _windows[id]->setActive(true); + + _windowStack.remove(_windows[id]); + _windowStack.push_back(_windows[id]); + + _fullRefresh = true; +} + +struct PlotData { + Graphics::ManagedSurface *surface; + Patterns *patterns; + uint fillType; + int thickness; + + PlotData(Graphics::ManagedSurface *s, Patterns *p, int f, int t) : + surface(s), patterns(p), fillType(f), thickness(t) {} +}; + +static void drawPixel(int x, int y, int color, void *data) { + PlotData *p = (PlotData *)data; + + if (p->fillType > p->patterns->size()) + return; + + byte *pat = p->patterns->operator[](p->fillType - 1); + + if (p->thickness == 1) { + if (x >= 0 && x < p->surface->w && y >= 0 && y < p->surface->h) { + uint xu = (uint)x; // for letting compiler optimize it + uint yu = (uint)y; + + *((byte *)p->surface->getBasePtr(xu, yu)) = + (pat[yu % 8] & (1 << (7 - xu % 8))) ? + color : kColorWhite; + } + } else { + int x1 = x; + int x2 = x1 + p->thickness; + int y1 = y; + int y2 = y1 + p->thickness; + + for (y = y1; y < y2; y++) + for (x = x1; x < x2; x++) + if (x >= 0 && x < p->surface->w && y >= 0 && y < p->surface->h) { + uint xu = (uint)x; // for letting compiler optimize it + uint yu = (uint)y; + *((byte *)p->surface->getBasePtr(xu, yu)) = + (pat[yu % 8] & (1 << (7 - xu % 8))) ? + color : kColorWhite; + } + } +} + +void MacWindowManager::drawDesktop() { + Common::Rect r(_screen->getBounds()); + + PlotData pd(_screen, &_patterns, kPatternCheckers, 1); + + Graphics::drawRoundRect(r, kDesktopArc, kColorBlack, true, drawPixel, &pd); + + g_system->copyRectToScreen(_screen->getPixels(), _screen->pitch, 0, 0, _screen->w, _screen->h); +} + +void MacWindowManager::draw() { + assert(_screen); + + if (_fullRefresh) + drawDesktop(); + + for (Common::List<BaseMacWindow *>::const_iterator it = _windowStack.begin(); it != _windowStack.end(); it++) { + BaseMacWindow *w = *it; + if (w->draw(_screen, _fullRefresh)) { + w->setDirty(false); + + Common::Rect clip(w->getDimensions().left - 2, w->getDimensions().top - 2, w->getDimensions().right - 2, w->getDimensions().bottom - 2); + clip.clip(_screen->getBounds()); + + g_system->copyRectToScreen(_screen->getBasePtr(clip.left, clip.top), _screen->pitch, clip.left, clip.top, clip.width(), clip.height()); + } + } + + // Menu is drawn on top of everything and always + if (_menu) + _menu->draw(_screen, _fullRefresh); + + _fullRefresh = false; +} + +bool MacWindowManager::processEvent(Common::Event &event) { + // Menu gets events first fir shortcuts and menu bar + if (_menu && _menu->processEvent(event)) + return true; + + if (event.type != Common::EVENT_MOUSEMOVE && event.type != Common::EVENT_LBUTTONDOWN && + event.type != Common::EVENT_LBUTTONUP) + return false; + + if (_windows[_activeWindow]->isEditable() && _windows[_activeWindow]->getType() == kWindowWindow && + ((MacWindow *)_windows[_activeWindow])->getInnerDimensions().contains(event.mouse.x, event.mouse.y)) { + if (_cursorIsArrow) { + CursorMan.replaceCursor(macCursorBeam, 11, 16, 3, 8, 3); + _cursorIsArrow = false; + } + } else { + if (_cursorIsArrow == false) { + CursorMan.replaceCursor(macCursorArrow, 11, 16, 1, 1, 3); + _cursorIsArrow = true; + } + } + + for (Common::List<BaseMacWindow *>::const_iterator it = _windowStack.end(); it != _windowStack.begin();) { + it--; + BaseMacWindow *w = *it; + + if (w->hasAllFocus() || w->getDimensions().contains(event.mouse.x, event.mouse.y)) { + if (event.type == Common::EVENT_LBUTTONDOWN || event.type == Common::EVENT_LBUTTONUP) + setActive(w->getId()); + + return w->processEvent(event); + } + } + + return false; +} + +////////////////////// +// Font stuff +////////////////////// +void MacWindowManager::loadFonts() { + Common::Archive *dat; + + dat = Common::makeZipArchive("classicmacfonts.dat"); + + if (!dat) { + warning("Could not find classicmacfonts.dat. Falling back to built-in fonts"); + _builtInFonts = true; + + return; + } + + Common::ArchiveMemberList list; + dat->listMembers(list); + + for (Common::ArchiveMemberList::iterator it = list.begin(); it != list.end(); ++it) { + Common::SeekableReadStream *stream = dat->createReadStreamForMember((*it)->getName()); + + Graphics::BdfFont *font = Graphics::BdfFont::loadFont(*stream); + + delete stream; + + Common::String fontName = (*it)->getName(); + + // Trim the .bdf extension + for (int i = fontName.size() - 1; i >= 0; --i) { + if (fontName[i] == '.') { + while ((uint)i < fontName.size()) { + fontName.deleteLastChar(); + } + break; + } + } + + FontMan.assignFontToName(fontName, font); + + debug(2, " %s", fontName.c_str()); + } + + _builtInFonts = false; + + delete dat; +} + +const Graphics::Font *MacWindowManager::getFont(const char *name, Graphics::FontManager::FontUsage fallback) { + const Graphics::Font *font = 0; + + if (!_builtInFonts) { + font = FontMan.getFontByName(name); + + if (!font) + warning("Cannot load font %s", name); + } + + if (_builtInFonts || !font) + font = FontMan.getFontByUsage(fallback); + + return font; +} + +///////////////// +// Cursor stuff +///////////////// +void MacWindowManager::pushArrowCursor() { + CursorMan.pushCursor(macCursorArrow, 11, 16, 1, 1, 3); +} + +void MacWindowManager::popCursor() { + CursorMan.popCursor(); +} + + +} // End of namespace Wage diff --git a/engines/wage/macwindowmanager.h b/engines/wage/macwindowmanager.h new file mode 100644 index 0000000000..13f85cddd4 --- /dev/null +++ b/engines/wage/macwindowmanager.h @@ -0,0 +1,141 @@ +/* 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. + * + * MIT License: + * + * Copyright (c) 2009 Alexei Svitkine, Eugene Sandulenko + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + */ + +#ifndef WAGE_MACWINDOWMANAGER_H +#define WAGE_MACWINDOWMANAGER_H + +#include "common/array.h" +#include "common/list.h" +#include "common/events.h" +#include "common/archive.h" + +#include "graphics/fontman.h" + +namespace Graphics { +class ManagedSurface; +} + +namespace Wage { + +enum { + kDesktopArc = 7 +}; + +enum { + kColorBlack = 0, + kColorGray = 1, + kColorWhite = 2, + kColorGreen = 3, + kColorGreen2 = 4 +}; + +enum { + kPatternSolid = 1, + kPatternStripes = 2, + kPatternCheckers = 3, + kPatternCheckers2 = 4 +}; + +class BaseMacWindow; +class MacWindow; +class Menu; + +typedef Common::Array<byte *> Patterns; + +class MacWindowManager { +public: + MacWindowManager(); + ~MacWindowManager(); + + void setScreen(Graphics::ManagedSurface *screen) { _screen = screen; } + bool hasBuiltInFonts() { return _builtInFonts; } + const Graphics::Font *getFont(const char *name, Graphics::FontManager::FontUsage fallback); + + MacWindow *addWindow(bool scrollable, bool resizable, bool editable); + Menu *addMenu(); + void setActive(int id); + + void setFullRefresh(bool redraw) { _fullRefresh = true; } + + void draw(); + + bool processEvent(Common::Event &event); + + BaseMacWindow *getWindow(int id) { return _windows[id]; } + + Patterns &getPatterns() { return _patterns; } + void drawFilledRoundRect(Graphics::ManagedSurface *surface, Common::Rect &rect, int arc, int color); + + void pushArrowCursor(); + void popCursor(); + +private: + void drawDesktop(); + void loadFonts(); + +private: + Graphics::ManagedSurface *_screen; + + Common::List<BaseMacWindow *> _windowStack; + Common::Array<BaseMacWindow *> _windows; + + int _lastId; + int _activeWindow; + + bool _fullRefresh; + + Patterns _patterns; + + Menu *_menu; + + bool _builtInFonts; + bool _cursorIsArrow; +}; + +} // End of namespace Wage + +#endif diff --git a/engines/wage/module.mk b/engines/wage/module.mk index 21316bbf83..e150d5f27e 100644 --- a/engines/wage/module.mk +++ b/engines/wage/module.mk @@ -9,7 +9,9 @@ MODULE_OBJS := \ entities.o \ gui.o \ gui-console.o \ - menu.o \ + macmenu.o \ + macwindow.o \ + macwindowmanager.o \ randomhat.o \ script.o \ sound.o \ diff --git a/engines/wage/script.cpp b/engines/wage/script.cpp index 294c08ed82..61336dce88 100644 --- a/engines/wage/script.cpp +++ b/engines/wage/script.cpp @@ -1099,7 +1099,7 @@ struct Mapping { { "\?\?\?(0xf5)", OPCODE }, { "\?\?\?(0xf6)", OPCODE }, { "\?\?\?(0xf7)", OPCODE }, - { "\?\?\?(0xf8)", OPCODE }, // 0xa8 + { "\?\?\?(0xf8)", OPCODE }, // 0xf8 { "\?\?\?(0xf9)", OPCODE }, { "\?\?\?(0xfa)", OPCODE }, { "\?\?\?(0xfb)", OPCODE }, diff --git a/engines/wage/util.cpp b/engines/wage/util.cpp index f31a83ca04..8c8af6652e 100644 --- a/engines/wage/util.cpp +++ b/engines/wage/util.cpp @@ -122,4 +122,17 @@ const char *getGenderSpecificPronoun(int gender, bool capitalize) { return capitalize ? "It" : "it"; } +bool isStorageScene(const Common::String &name) { + if (name.equalsIgnoreCase(STORAGESCENE)) + return true; + + if (name.equalsIgnoreCase("STROAGE@")) // Jumble + return true; + + if (name.equalsIgnoreCase("STORAGE@@")) // Jumble + return true; + + return false; +} + } // End of namespace Wage diff --git a/engines/wage/wage.cpp b/engines/wage/wage.cpp index e0299c8da2..567e2768d8 100644 --- a/engines/wage/wage.cpp +++ b/engines/wage/wage.cpp @@ -86,6 +86,7 @@ WageEngine::WageEngine(OSystem *syst, const ADGameDescription *desc) : Engine(sy _offer = NULL; _resManager = NULL; + _debugger = NULL; debug("WageEngine::WageEngine()"); } @@ -148,24 +149,14 @@ void WageEngine::processEvents() { Common::Event event; while (_eventMan->pollEvent(event)) { + if (_gui->processEvent(event)) + continue; + switch (event.type) { case Common::EVENT_QUIT: if (saveDialog()) _shouldQuit = true; break; - case Common::EVENT_MOUSEMOVE: - _gui->mouseMove(event.mouse.x, event.mouse.y); - break; - case Common::EVENT_LBUTTONDOWN: - _gui->mouseDown(event.mouse.x, event.mouse.y); - break; - case Common::EVENT_LBUTTONUP: - { - Designed *obj = _gui->mouseUp(event.mouse.x, event.mouse.y); - if (obj != NULL) - processTurn(NULL, obj); - } - break; case Common::EVENT_KEYDOWN: switch (event.kbd.keycode) { case Common::KEYCODE_BACKSPACE: @@ -189,13 +180,6 @@ void WageEngine::processEvents() { break; } - if (event.kbd.flags & (Common::KBD_ALT | Common::KBD_CTRL | Common::KBD_META)) { - if (event.kbd.ascii >= 0x20 && event.kbd.ascii <= 0x7f) { - _gui->processMenuShortCut(event.kbd.flags, event.kbd.ascii); - } - break; - } - if (event.kbd.ascii >= 0x20 && event.kbd.ascii <= 0x7f) { _inputText += (char)event.kbd.ascii; _gui->drawInput(); @@ -236,7 +220,6 @@ void WageEngine::gameOver() { _gui->disableAllMenus(); _gui->enableNewGameMenus(); - _gui->_menuDirty = true; } bool WageEngine::saveDialog() { @@ -281,15 +264,16 @@ void WageEngine::performInitialSetup() { debug(5, "Resetting Owners: %d", _world->_orderedObjs.size()); for (uint i = 0; i < _world->_orderedObjs.size(); i++) { Obj *obj = _world->_orderedObjs[i]; - if (!obj->_sceneOrOwner.equalsIgnoreCase(STORAGESCENE)) { + if (!isStorageScene(obj->_sceneOrOwner)) { Common::String location = obj->_sceneOrOwner; location.toLowercase(); - if (_world->_scenes.contains(location)) { - _world->move(obj, _world->_scenes[location]); + Scene *scene = getSceneByName(location); + if (scene != NULL) { + _world->move(obj, scene); } else { if (!_world->_chrs.contains(location)) { // Note: PLAYER@ is not a valid target here. - warning("Couldn't move %s to %s", obj->_name.c_str(), obj->_sceneOrOwner.c_str()); + warning("Couldn't move %s to \"%s\"", obj->_name.c_str(), obj->_sceneOrOwner.c_str()); } else { // TODO: Add check for max items. _world->move(obj, _world->_chrs[location]); @@ -301,7 +285,7 @@ void WageEngine::performInitialSetup() { bool playerPlaced = false; for (uint i = 0; i < _world->_orderedChrs.size(); i++) { Chr *chr = _world->_orderedChrs[i]; - if (!chr->_initialScene.equalsIgnoreCase(STORAGESCENE)) { + if (!isStorageScene(chr->_initialScene)) { Common::String key = chr->_initialScene; key.toLowercase(); if (_world->_scenes.contains(key) && _world->_scenes[key] != NULL) { @@ -328,13 +312,14 @@ void WageEngine::doClose() { } Scene *WageEngine::getSceneByName(Common::String &location) { - Scene *scene; if (location.equals("random@")) { - scene = _world->getRandomScene(); + return _world->getRandomScene(); } else { - scene = _world->_scenes[location]; + if (_world->_scenes.contains(location)) + return _world->_scenes[location]; + else + return NULL; } - return scene; } void WageEngine::onMove(Designed *what, Designed *from, Designed *to) { @@ -386,6 +371,7 @@ void WageEngine::onMove(Designed *what, Designed *from, Designed *to) { if (!_temporarilyHidden) { if (to == currentScene || from == currentScene) { redrawScene(); + g_system->updateScreen(); g_system->delayMillis(100); } } @@ -397,6 +383,7 @@ void WageEngine::redrawScene() { if (currentScene != NULL) { bool firstTime = (_lastScene != currentScene); + _gui->draw(); updateSoundTimerForScene(currentScene, firstTime); } } diff --git a/engines/wage/wage.h b/engines/wage/wage.h index 8ca306aea3..eb50a2e3dd 100644 --- a/engines/wage/wage.h +++ b/engines/wage/wage.h @@ -75,6 +75,8 @@ typedef Common::Array<Chr *> ChrArray; typedef Common::List<Obj *> ObjList; typedef Common::List<Chr *> ChrList; +#define STORAGESCENE "STORAGE@" + enum OperandType { OBJ = 0, CHR = 1, @@ -101,21 +103,12 @@ enum { // the current limitation is 32 debug levels (1 << 31 is the last one) }; -enum { - kColorBlack = 0, - kColorGray = 1, - kColorWhite = 2, - kColorGreen = 3 -}; - Common::String readPascalString(Common::SeekableReadStream *in); Common::Rect *readRect(Common::SeekableReadStream *in); const char *getIndefiniteArticle(const Common::String &word); const char *prependGenderSpecificPronoun(int gender); const char *getGenderSpecificPronoun(int gender, bool capitalize); - - -typedef Common::Array<byte *> Patterns; +bool isStorageScene(const Common::String &name); class WageEngine : public Engine { friend class Dialog; diff --git a/engines/wage/world.cpp b/engines/wage/world.cpp index 40b1555e35..53fc1b4742 100644 --- a/engines/wage/world.cpp +++ b/engines/wage/world.cpp @@ -73,6 +73,8 @@ World::World(WageEngine *engine) { _weaponMenuDisabled = true; _engine = engine; + + _patterns = new Patterns; } World::~World() { @@ -88,8 +90,10 @@ World::~World() { for (uint i = 0; i < _orderedScenes.size(); i++) delete _orderedScenes[i]; - for (uint i = 0; i < _patterns.size(); i++) - free(_patterns[i]); + for (uint i = 0; i < _patterns->size(); i++) + free(_patterns->operator[](i)); + + delete _patterns; delete _globalScript; @@ -105,6 +109,18 @@ bool World::loadWorld(Common::MacResManager *resMan) { Common::SeekableReadStream *res; Common::MacResIDArray::const_iterator iter; + // Dumping interpreter code +#if 1 + res = resMan->getResource(MKTAG('C','O','D','E'), 1); + warning("code size: %d", res->size()); + byte *buf = (byte *)malloc(res->size()); + res->read(buf, res->size()); + Common::DumpFile out; + out.open("code.bin"); + out.write(buf, res->size()); + out.close(); +#endif + if ((resArray = resMan->getResIDArray(MKTAG('G','C','O','D'))).size() == 0) return false; @@ -249,7 +265,7 @@ bool World::loadWorld(Common::MacResManager *resMan) { byte *pattern = (byte *)malloc(8); res->read(pattern, 8); - _patterns.push_back(pattern); + _patterns->push_back(pattern); } delete res; @@ -262,7 +278,7 @@ bool World::loadWorld(Common::MacResManager *resMan) { byte *pattern = (byte *)malloc(8); res->read(pattern, 8); - _patterns.push_back(pattern); + _patterns->push_back(pattern); } } delete res; @@ -419,7 +435,7 @@ static bool objComparator(const Obj *o1, const Obj *o2) { bool o1Immobile = (o1->_type == Obj::IMMOBILE_OBJECT); bool o2Immobile = (o2->_type == Obj::IMMOBILE_OBJECT); if (o1Immobile == o2Immobile) { - return o1->_index - o2->_index; + return o1->_index < o2->_index; } return o1Immobile; } diff --git a/engines/wage/world.h b/engines/wage/world.h index e9041139df..468bedbc59 100644 --- a/engines/wage/world.h +++ b/engines/wage/world.h @@ -48,9 +48,9 @@ #ifndef WAGE_WORLD_H #define WAGE_WORLD_H -namespace Wage { +#include "wage/macwindowmanager.h" -#define STORAGESCENE "STORAGE@" +namespace Wage { class Sound; @@ -87,7 +87,7 @@ public: ObjArray _orderedObjs; ChrArray _orderedChrs; Common::Array<Sound *> _orderedSounds; - Patterns _patterns; + Patterns *_patterns; Scene *_storageScene; Chr *_player; //List<MoveListener> moveListeners; diff --git a/engines/wintermute/base/base_engine.cpp b/engines/wintermute/base/base_engine.cpp index 2166a3e070..4ce334aceb 100644 --- a/engines/wintermute/base/base_engine.cpp +++ b/engines/wintermute/base/base_engine.cpp @@ -84,7 +84,7 @@ void BaseEngine::LOG(bool res, const char *fmt, ...) { va_end(va); if (instance()._gameRef) { - instance()._gameRef->LOG("%s", buff); + instance()._gameRef->LOG(res, "%s", buff); } else { debugCN(kWintermuteDebugLog, "%02d:%02d:%02d: %s\n", hours, mins, secs, buff); } diff --git a/engines/wintermute/base/base_persistence_manager.cpp b/engines/wintermute/base/base_persistence_manager.cpp index 39462f7a15..5a694e7ce2 100644 --- a/engines/wintermute/base/base_persistence_manager.cpp +++ b/engines/wintermute/base/base_persistence_manager.cpp @@ -183,7 +183,7 @@ void BasePersistenceManager::getSaveStateDesc(int slot, SaveStateDescriptor &des } } - desc.setSaveDate(_savedTimestamp.tm_year, _savedTimestamp.tm_mon, _savedTimestamp.tm_mday); + desc.setSaveDate(_savedTimestamp.tm_year + 1900, _savedTimestamp.tm_mon + 1, _savedTimestamp.tm_mday); desc.setSaveTime(_savedTimestamp.tm_hour, _savedTimestamp.tm_min); desc.setPlayTime(0); } diff --git a/engines/wintermute/base/sound/base_sound_manager.cpp b/engines/wintermute/base/sound/base_sound_manager.cpp index f1e0c3b1f9..74c0086817 100644 --- a/engines/wintermute/base/sound/base_sound_manager.cpp +++ b/engines/wintermute/base/sound/base_sound_manager.cpp @@ -100,15 +100,14 @@ BaseSoundBuffer *BaseSoundMgr::addSound(const Common::String &filename, Audio::M BaseSoundBuffer *sound; Common::String useFilename = filename; + useFilename.toLowercase(); // try to switch WAV to OGG file (if available) - AnsiString ext = PathUtil::getExtension(filename); - if (StringUtil::compareNoCase(ext, "wav")) { - AnsiString path = PathUtil::getDirectoryName(filename); - AnsiString name = PathUtil::getFileNameWithoutExtension(filename); - - AnsiString newFile = PathUtil::combine(path, name + "ogg"); - if (BaseFileManager::getEngineInstance()->hasFile(newFile)) { - useFilename = newFile; + if (useFilename.hasSuffix(".wav")) { + Common::String oggFilename = useFilename; + oggFilename.erase(oggFilename.size() - 4); + oggFilename = oggFilename + ".ogg"; + if (BaseFileManager::getEngineInstance()->hasFile(oggFilename)) { + useFilename = oggFilename; } } diff --git a/engines/wintermute/ui/ui_window.cpp b/engines/wintermute/ui/ui_window.cpp index 9f3cdeaaa3..34341d1db2 100644 --- a/engines/wintermute/ui/ui_window.cpp +++ b/engines/wintermute/ui/ui_window.cpp @@ -139,13 +139,12 @@ bool UIWindow::display(int offsetX, int offsetY) { _shieldButton->setListener(this, _shieldButton, 0); _shieldButton->_parent = this; } - if (_shieldButton) { - _shieldButton->_posX = _shieldButton->_posY = 0; - _shieldButton->setWidth(_gameRef->_renderer->getWidth()); - _shieldButton->setHeight(_gameRef->_renderer->getHeight()); - _shieldButton->display(); - } + _shieldButton->_posX = _shieldButton->_posY = 0; + _shieldButton->setWidth(_gameRef->_renderer->getWidth()); + _shieldButton->setHeight(_gameRef->_renderer->getHeight()); + + _shieldButton->display(); } if (!_visible) { diff --git a/engines/zvision/core/events.cpp b/engines/zvision/core/events.cpp index cc1c00b6d0..767101b952 100644 --- a/engines/zvision/core/events.cpp +++ b/engines/zvision/core/events.cpp @@ -35,6 +35,7 @@ #include "common/events.h" #include "common/system.h" #include "common/rational.h" +#include "audio/mixer.h" #include "engines/util.h" diff --git a/engines/zvision/scripting/actions.h b/engines/zvision/scripting/actions.h index bde1baa291..98d216a6d5 100644 --- a/engines/zvision/scripting/actions.h +++ b/engines/zvision/scripting/actions.h @@ -26,8 +26,6 @@ #include "common/str.h" #include "common/rect.h" -#include "audio/mixer.h" - namespace ZVision { // Forward declaration of ZVision. This file is included before ZVision is declared diff --git a/engines/zvision/sound/midi.cpp b/engines/zvision/sound/midi.cpp index 3dd66ff2d4..9366f9e1e4 100644 --- a/engines/zvision/sound/midi.cpp +++ b/engines/zvision/sound/midi.cpp @@ -22,6 +22,7 @@ #include "common/scummsys.h" #include "common/textconsole.h" +#include "audio/mididrv.h" #include "zvision/sound/midi.h" diff --git a/engines/zvision/sound/midi.h b/engines/zvision/sound/midi.h index a3bac19636..020c65c9f7 100644 --- a/engines/zvision/sound/midi.h +++ b/engines/zvision/sound/midi.h @@ -23,7 +23,7 @@ #ifndef ZVISION_MIDI_H #define ZVISION_MIDI_H -#include "audio/mididrv.h" +class MidiDriver; namespace ZVision { diff --git a/engines/zvision/zvision.cpp b/engines/zvision/zvision.cpp index b0d69c5f94..05db284f62 100644 --- a/engines/zvision/zvision.cpp +++ b/engines/zvision/zvision.cpp @@ -34,13 +34,13 @@ #include "zvision/text/text.h" #include "zvision/text/truetype_font.h" #include "zvision/sound/midi.h" -#include "zvision/file/zfs_archive.h" #include "common/config-manager.h" #include "common/str.h" #include "common/debug.h" #include "common/debug-channels.h" #include "common/textconsole.h" +#include "common/timer.h" #include "common/error.h" #include "common/system.h" #include "common/file.h" diff --git a/graphics/VectorRendererSpec.cpp b/graphics/VectorRendererSpec.cpp index 26f0ced625..258d935440 100644 --- a/graphics/VectorRendererSpec.cpp +++ b/graphics/VectorRendererSpec.cpp @@ -2256,6 +2256,9 @@ drawBorderRoundedSquareAlg(int x1, int y1, int r, int w, int h, PixelType color, template<typename PixelType> void VectorRendererAA<PixelType>:: drawInteriorRoundedSquareAlg(int x1, int y1, int r, int w, int h, PixelType color, VectorRenderer::FillMode fill_m) { + w -= 2*Base::_strokeWidth; + h -= 2*Base::_strokeWidth; + // Do not draw empty space rounded squares. if (w <= 0 || h <= 0) { return; @@ -2272,8 +2275,6 @@ drawInteriorRoundedSquareAlg(int x1, int y1, int r, int w, int h, PixelType colo r -= Base::_strokeWidth; x1 += Base::_strokeWidth; y1 += Base::_strokeWidth; - w -= 2*Base::_strokeWidth; - h -= 2*Base::_strokeWidth; rsq = r*r; PixelType *ptr_tl = (PixelType *)Base::_activeSurface->getBasePtr(x1 + r, y1 + r); diff --git a/graphics/scaler/thumbnail_intern.cpp b/graphics/scaler/thumbnail_intern.cpp index 65e327f9c2..78fb7828d7 100644 --- a/graphics/scaler/thumbnail_intern.cpp +++ b/graphics/scaler/thumbnail_intern.cpp @@ -171,7 +171,8 @@ static bool grabScreen565(Graphics::Surface *surf) { if (!screen) return false; - assert(screen->format.bytesPerPixel == 1 || screen->format.bytesPerPixel == 2); + assert(screen->format.bytesPerPixel == 1 || screen->format.bytesPerPixel == 2 + || screen->format.bytesPerPixel == 4); assert(screen->getPixels() != 0); Graphics::PixelFormat screenFormat = g_system->getScreenFormat(); @@ -197,6 +198,9 @@ static bool grabScreen565(Graphics::Surface *surf) { } else if (screenFormat.bytesPerPixel == 2) { uint16 col = READ_UINT16(screen->getBasePtr(x, y)); screenFormat.colorToRGB(col, r, g, b); + } else if (screenFormat.bytesPerPixel == 4) { + uint32 col = READ_UINT32(screen->getBasePtr(x, y)); + screenFormat.colorToRGB(col, r, g, b); } *((uint16 *)surf->getBasePtr(x, y)) = Graphics::RGBToColor<Graphics::ColorMasks<565> >(r, g, b); diff --git a/gui/EventRecorder.cpp b/gui/EventRecorder.cpp index d0371f5e78..3f91cfa259 100644 --- a/gui/EventRecorder.cpp +++ b/gui/EventRecorder.cpp @@ -330,7 +330,7 @@ bool EventRecorder::openRecordFile(const Common::String &fileName) { } bool EventRecorder::checkGameHash(const ADGameDescription *gameDesc) { - if (_playbackFile->getHeader().hashRecords.size() != 0) { + if (_playbackFile->getHeader().hashRecords.size() == 0) { warning("Engine doesn't contain description table"); return false; } @@ -676,4 +676,3 @@ void EventRecorder::deleteTemporarySave() { } // End of namespace GUI #endif // ENABLE_EVENTRECORDER - diff --git a/gui/Tooltip.h b/gui/Tooltip.h index 58b6d8a429..60688412e6 100644 --- a/gui/Tooltip.h +++ b/gui/Tooltip.h @@ -41,6 +41,8 @@ public: void setup(Dialog *parent, Widget *widget, int x, int y); void drawDialog(); + + virtual void receivedFocus(int x = -1, int y = -1) {} protected: virtual void handleMouseDown(int x, int y, int button, int clickCount) { close(); @@ -64,7 +66,6 @@ protected: } virtual void handleMouseMoved(int x, int y, int button) { close(); - _parent->handleMouseMoved(x + (getAbsX() - _parent->getAbsX()), y + (getAbsY() - _parent->getAbsY()), button); } int _maxWidth; diff --git a/gui/credits.h b/gui/credits.h index cb9a10fec4..c5af88e64b 100644 --- a/gui/credits.h +++ b/gui/credits.h @@ -366,6 +366,9 @@ static const char *credits[] = { "C2""(retired)", "C0""Tarek Soliman", "", +"C1""Nintendo 3DS", +"C0""Thomas Edvalson", +"", "C1""Nintendo 64", "C0""Fabio Battaglia", "", @@ -535,6 +538,7 @@ static const char *credits[] = { "C0""Max Horn", "C2""(retired)", "C0""Oystein Eftevaag", +"C0""Thierry Crozat", "", "C1""Mandriva", "C0""Dominik Scherer", diff --git a/gui/debugger.cpp b/gui/debugger.cpp index c9b435963d..72d05e2973 100644 --- a/gui/debugger.cpp +++ b/gui/debugger.cpp @@ -42,6 +42,7 @@ #elif defined(USE_READLINE) #include <readline/readline.h> #include <readline/history.h> + #include "common/events.h" #endif @@ -191,6 +192,15 @@ char *readline_completionFunction(const char *text, int state) { return g_readline_debugger->readlineComplete(text, state); } +void readline_eventFunction() { + Common::EventManager *eventMan = g_system->getEventManager(); + + Common::Event event; + while (eventMan->pollEvent(event)) { + // drop all events + } +} + #ifdef USE_READLINE_INT_COMPLETION typedef int RLCompFunc_t(const char *, int); #else @@ -228,6 +238,7 @@ void Debugger::enter() { g_readline_debugger = this; rl_completion_entry_function = (RLCompFunc_t *)&readline_completionFunction; + rl_event_hook = (rl_hook_func_t *)&readline_eventFunction; char *line_read = 0; do { diff --git a/gui/dialog.cpp b/gui/dialog.cpp index 315c24e9bf..075a3bb533 100644 --- a/gui/dialog.cpp +++ b/gui/dialog.cpp @@ -119,6 +119,8 @@ void Dialog::reflowLayout() { } void Dialog::lostFocus() { + _dragWidget = NULL; + if (_tickleWidget) { _tickleWidget->lostFocus(); } diff --git a/gui/dialog.h b/gui/dialog.h index 593ee13458..0e06effabd 100644 --- a/gui/dialog.h +++ b/gui/dialog.h @@ -82,7 +82,7 @@ public: virtual void reflowLayout(); virtual void lostFocus(); - virtual void receivedFocus() {} + virtual void receivedFocus(int x = -1, int y = -1) { if (x >= 0 && y >= 0) handleMouseMoved(x, y, 0); } protected: virtual void open(); diff --git a/gui/gui-manager.cpp b/gui/gui-manager.cpp index 20c6d3fa13..3ce8bee020 100644 --- a/gui/gui-manager.cpp +++ b/gui/gui-manager.cpp @@ -281,14 +281,9 @@ void GuiManager::runLoop() { redraw(); } - _lastMousePosition.x = _lastMousePosition.y = -1; - _lastMousePosition.time = 0; - Common::EventManager *eventMan = _system->getEventManager(); uint32 lastRedraw = 0; - const uint32 waitTime = 1000 / 45; - - bool tooltipCheck = false; + const uint32 waitTime = 1000 / 60; while (!_dialogStack.empty() && activeDialog == getTopDialog() && !eventMan->shouldQuit()) { redraw(); @@ -304,9 +299,9 @@ void GuiManager::runLoop() { // _system->updateScreen(); if (lastRedraw + waitTime < _system->getMillis(true)) { + lastRedraw = _system->getMillis(true); _theme->updateScreen(); _system->updateScreen(); - lastRedraw = _system->getMillis(true); } Common::Event event; @@ -336,19 +331,14 @@ void GuiManager::runLoop() { processEvent(event, activeDialog); - if (event.type == Common::EVENT_MOUSEMOVE) { - tooltipCheck = true; - } - - if (lastRedraw + waitTime < _system->getMillis(true)) { + lastRedraw = _system->getMillis(true); _theme->updateScreen(); _system->updateScreen(); - lastRedraw = _system->getMillis(true); } } - if (tooltipCheck && _lastMousePosition.time + kTooltipDelay < _system->getMillis(true)) { + if (_lastMousePosition.time + kTooltipDelay < _system->getMillis(true)) { Widget *wdg = activeDialog->findWidget(_lastMousePosition.x, _lastMousePosition.y); if (wdg && wdg->hasTooltip() && !(wdg->getFlags() & WIDGET_PRESSED)) { Tooltip *tooltip = new Tooltip(); @@ -415,7 +405,7 @@ void GuiManager::restoreState() { } void GuiManager::openDialog(Dialog *dialog) { - dialog->receivedFocus(); + giveFocusToDialog(dialog); if (!_dialogStack.empty()) getTopDialog()->lostFocus(); @@ -439,8 +429,10 @@ void GuiManager::closeTopDialog() { // Remove the dialog from the stack _dialogStack.pop()->lostFocus(); - if (!_dialogStack.empty()) - getTopDialog()->receivedFocus(); + if (!_dialogStack.empty()) { + Dialog *dialog = getTopDialog(); + giveFocusToDialog(dialog); + } if (_redrawStatus != kRedrawFull) _redrawStatus = kRedrawCloseDialog; @@ -515,6 +507,7 @@ void GuiManager::processEvent(const Common::Event &event, Dialog *const activeDi int button; uint32 time; Common::Point mouse(event.mouse.x - activeDialog->_x, event.mouse.y - activeDialog->_y); + switch (event.type) { case Common::EVENT_KEYDOWN: activeDialog->handleKeyDown(event.kbd); @@ -523,12 +516,12 @@ void GuiManager::processEvent(const Common::Event &event, Dialog *const activeDi activeDialog->handleKeyUp(event.kbd); break; case Common::EVENT_MOUSEMOVE: + _globalMousePosition.x = event.mouse.x; + _globalMousePosition.y = event.mouse.y; activeDialog->handleMouseMoved(mouse.x, mouse.y, 0); if (mouse.x != _lastMousePosition.x || mouse.y != _lastMousePosition.y) { - _lastMousePosition.x = mouse.x; - _lastMousePosition.y = mouse.y; - _lastMousePosition.time = _system->getMillis(true); + setLastMousePos(mouse.x, mouse.y); } break; @@ -571,4 +564,17 @@ void GuiManager::processEvent(const Common::Event &event, Dialog *const activeDi } } +void GuiManager::giveFocusToDialog(Dialog *dialog) { + int16 dialogX = _globalMousePosition.x - dialog->_x; + int16 dialogY = _globalMousePosition.y - dialog->_y; + dialog->receivedFocus(dialogX, dialogY); + setLastMousePos(dialogX, dialogY); +} + +void GuiManager::setLastMousePos(int16 x, int16 y) { + _lastMousePosition.x = x; + _lastMousePosition.y = y; + _lastMousePosition.time = _system->getMillis(true); +} + } // End of namespace GUI diff --git a/gui/gui-manager.h b/gui/gui-manager.h index 26c8d6def9..35779215b2 100644 --- a/gui/gui-manager.h +++ b/gui/gui-manager.h @@ -124,11 +124,12 @@ protected: bool _useStdCursor; // position and time of last mouse click (used to detect double clicks) - struct { + struct MousePos { + MousePos() : x(-1), y(-1), count(0) { time = 0; } int16 x, y; // Position of mouse when the click occurred uint32 time; // Time int count; // How often was it already pressed? - } _lastClick, _lastMousePosition; + } _lastClick, _lastMousePosition, _globalMousePosition; // mouse cursor state int _cursorAnimateCounter; @@ -155,6 +156,9 @@ protected: Dialog *getTopDialog() const; void screenChange(); + + void giveFocusToDialog(Dialog *dialog); + void setLastMousePos(int16 x, int16 y); }; } // End of namespace GUI diff --git a/gui/module.mk b/gui/module.mk index bbb3def96d..9e821e71a7 100644 --- a/gui/module.mk +++ b/gui/module.mk @@ -65,5 +65,10 @@ MODULE_OBJS += \ fluidsynth-dialog.o endif +ifdef USE_UPDATES +MODULE_OBJS += \ + updates-dialog.o +endif + # Include common rules include $(srcdir)/rules.mk diff --git a/gui/options.cpp b/gui/options.cpp index ba247e5f15..2bb17509eb 100644 --- a/gui/options.cpp +++ b/gui/options.cpp @@ -36,6 +36,7 @@ #include "common/system.h" #include "common/textconsole.h" #include "common/translation.h" +#include "common/updates.h" #include "audio/mididrv.h" #include "audio/musicplugin.h" @@ -61,7 +62,8 @@ enum { kChooseExtraDirCmd = 'chex', kExtraPathClearCmd = 'clex', kChoosePluginsDirCmd = 'chpl', - kChooseThemeCmd = 'chtf' + kChooseThemeCmd = 'chtf', + kUpdatesCheckCmd = 'updc' }; enum { @@ -70,7 +72,7 @@ enum { kSubtitlesBoth }; -#ifdef SMALL_SCREEN_DEVICE +#ifdef GUI_ENABLE_KEYSDIALOG enum { kChooseKeyMappingCmd = 'chma' }; @@ -204,12 +206,12 @@ void OptionsDialog::open() { _renderModePopUp->setSelectedTag(sel); } -#ifdef SMALL_SCREEN_DEVICE +#ifdef GUI_ONLY_FULLSCREEN _fullscreenCheckbox->setState(true); _fullscreenCheckbox->setEnabled(false); _aspectCheckbox->setState(false); _aspectCheckbox->setEnabled(false); -#else // !SMALL_SCREEN_DEVICE +#else // !GUI_ONLY_FULLSCREEN // Fullscreen setting _fullscreenCheckbox->setState(ConfMan.getBool("fullscreen", _domain)); @@ -221,7 +223,7 @@ void OptionsDialog::open() { _aspectCheckbox->setEnabled(true); _aspectCheckbox->setState(ConfMan.getBool("aspect_ratio", _domain)); } -#endif // SMALL_SCREEN_DEVICE +#endif // GUI_ONLY_FULLSCREEN } @@ -604,7 +606,7 @@ void OptionsDialog::setGraphicSettingsState(bool enabled) { _gfxPopUp->setEnabled(enabled); _renderModePopUpDesc->setEnabled(enabled); _renderModePopUp->setEnabled(enabled); -#ifndef SMALL_SCREEN_DEVICE +#ifndef GUI_ENABLE_KEYSDIALOG _fullscreenCheckbox->setEnabled(enabled); if (_guioptions.contains(GUIO_NOASPECT)) _aspectCheckbox->setEnabled(false); @@ -868,10 +870,6 @@ void OptionsDialog::addMIDIControls(GuiObject *boss, const Common::String &prefi _midiGainSlider->setMaxValue(1000); _midiGainLabel = new StaticTextWidget(boss, prefix + "mcMidiGainLabel", "1.00"); -#ifdef USE_FLUIDSYNTH - new ButtonWidget(boss, prefix + "mcFluidSynthSettings", _("FluidSynth Settings"), 0, kFluidSynthSettingsCmd); -#endif - _enableMIDISettings = true; } @@ -1109,6 +1107,10 @@ GlobalOptionsDialog::GlobalOptionsDialog() _midiTabId = tab->addTab(_("MIDI")); addMIDIControls(tab, "GlobalOptions_MIDI."); +#ifdef USE_FLUIDSYNTH + new ButtonWidget(tab, "GlobalOptions_MIDI.mcFluidSynthSettings", _("FluidSynth Settings"), 0, kFluidSynthSettingsCmd); +#endif + // // 4) The MT-32 tab // @@ -1194,7 +1196,7 @@ GlobalOptionsDialog::GlobalOptionsDialog() _autosavePeriodPopUp->appendEntry(_(savePeriodLabels[i]), savePeriodValues[i]); } -#ifdef SMALL_SCREEN_DEVICE +#ifdef GUI_ENABLE_KEYSDIALOG new ButtonWidget(tab, "GlobalOptions_Misc.KeysButton", _("Keys"), 0, kChooseKeyMappingCmd); #endif @@ -1229,6 +1231,22 @@ GlobalOptionsDialog::GlobalOptionsDialog() #endif // USE_TRANSLATION +#ifdef USE_UPDATES + _updatesPopUpDesc = new StaticTextWidget(tab, "GlobalOptions_Misc.UpdatesPopupDesc", _("Update check:"), _("How often to check ScummVM updates")); + _updatesPopUp = new PopUpWidget(tab, "GlobalOptions_Misc.UpdatesPopup"); + + const int *vals = Common::UpdateManager::getUpdateIntervals(); + + while (*vals != -1) { + _updatesPopUp->appendEntry(Common::UpdateManager::updateIntervalToString(*vals), *vals); + vals++; + } + + _updatesPopUp->setSelectedTag(Common::UpdateManager::normalizeInterval(ConfMan.getInt("updates_check"))); + + new ButtonWidget(tab, "GlobalOptions_Misc.UpdatesCheckManuallyButton", _("Check now"), 0, kUpdatesCheckCmd); +#endif + // Activate the first tab tab->setActiveTab(0); _tabWidget = tab; @@ -1237,7 +1255,7 @@ GlobalOptionsDialog::GlobalOptionsDialog() new ButtonWidget(this, "GlobalOptions.Cancel", _("Cancel"), 0, kCloseCmd); new ButtonWidget(this, "GlobalOptions.Ok", _("OK"), 0, kOKCmd); -#ifdef SMALL_SCREEN_DEVICE +#ifdef GUI_ENABLE_KEYSDIALOG _keysDialog = new KeysDialog(); #endif @@ -1247,7 +1265,7 @@ GlobalOptionsDialog::GlobalOptionsDialog() } GlobalOptionsDialog::~GlobalOptionsDialog() { -#ifdef SMALL_SCREEN_DEVICE +#ifdef GUI_ENABLE_KEYSDIALOG delete _keysDialog; #endif @@ -1367,6 +1385,19 @@ void GlobalOptionsDialog::close() { } #endif // USE_TRANSLATION +#ifdef USE_UPDATES + ConfMan.setInt("updates_check", _updatesPopUp->getSelectedTag()); + + if (g_system->getUpdateManager()) { + if (_updatesPopUp->getSelectedTag() == Common::UpdateManager::kUpdateIntervalNotSupported) { + g_system->getUpdateManager()->setAutomaticallyChecksForUpdates(Common::UpdateManager::kUpdateStateDisabled); + } else { + g_system->getUpdateManager()->setAutomaticallyChecksForUpdates(Common::UpdateManager::kUpdateStateEnabled); + g_system->getUpdateManager()->setUpdateCheckInterval(_updatesPopUp->getSelectedTag()); + } + } +#endif + } OptionsDialog::close(); } @@ -1478,7 +1509,7 @@ void GlobalOptionsDialog::handleCommand(CommandSender *sender, uint32 cmd, uint3 } break; } -#ifdef SMALL_SCREEN_DEVICE +#ifdef GUI_ENABLE_KEYSDIALOG case kChooseKeyMappingCmd: _keysDialog->runModal(); break; @@ -1488,6 +1519,12 @@ void GlobalOptionsDialog::handleCommand(CommandSender *sender, uint32 cmd, uint3 _fluidSynthSettingsDialog->runModal(); break; #endif +#ifdef USE_UPDATES + case kUpdatesCheckCmd: + if (g_system->getUpdateManager()) + g_system->getUpdateManager()->checkForUpdates(); + break; +#endif default: OptionsDialog::handleCommand(sender, cmd, data); } diff --git a/gui/options.h b/gui/options.h index 1e65bfd134..294b41794b 100644 --- a/gui/options.h +++ b/gui/options.h @@ -29,7 +29,7 @@ #include "common/str.h" #include "audio/mididrv.h" -#ifdef SMALL_SCREEN_DEVICE +#ifdef GUI_ENABLE_KEYSDIALOG #include "gui/KeysDialog.h" #endif @@ -210,7 +210,7 @@ public: virtual void reflowLayout(); protected: -#ifdef SMALL_SCREEN_DEVICE +#ifdef GUI_ENABLE_KEYSDIALOG KeysDialog *_keysDialog; #endif #ifdef USE_FLUIDSYNTH @@ -236,6 +236,11 @@ protected: PopUpWidget *_autosavePeriodPopUp; StaticTextWidget *_guiLanguagePopUpDesc; PopUpWidget *_guiLanguagePopUp; + +#ifdef USE_UPDATES + StaticTextWidget *_updatesPopUpDesc; + PopUpWidget *_updatesPopUp; +#endif }; } // End of namespace GUI diff --git a/gui/predictivedialog.cpp b/gui/predictivedialog.cpp index 9557da1206..63b69a39ea 100644 --- a/gui/predictivedialog.cpp +++ b/gui/predictivedialog.cpp @@ -190,7 +190,7 @@ void PredictiveDialog::saveUserDictToFile() { void PredictiveDialog::handleKeyUp(Common::KeyState state) { if (_curPressedButton != kNoAct && !_needRefresh) { - _button[_curPressedButton]->startAnimatePressedState(); + _button[_curPressedButton]->setUnpressedState(); processButton(_curPressedButton); } } @@ -352,7 +352,7 @@ void PredictiveDialog::handleKeyDown(Common::KeyState state) { } if (_lastButton != _curPressedButton) - _button[_lastButton]->stopAnimatePressedState(); + _button[_lastButton]->setUnpressedState(); if (_curPressedButton != kNoAct && !_needRefresh) _button[_curPressedButton]->setPressedState(); @@ -604,18 +604,6 @@ void PredictiveDialog::processButton(ButtonId button) { } } -void PredictiveDialog::handleTickle() { - if (_lastTime) { - if ((_curTime - _lastTime) > kRepeatDelay) { - _lastTime = 0; - } - } - - if (getTickleWidget()) { - getTickleWidget()->handleTickle(); - } -} - void PredictiveDialog::mergeDicts() { _unitedDict.dictLineCount = _predictiveDict.dictLineCount + _userDict.dictLineCount; _unitedDict.dictLine = (char **)calloc(_unitedDict.dictLineCount, sizeof(char *)); diff --git a/gui/predictivedialog.h b/gui/predictivedialog.h index 4c167c3efa..1f6bdf84e0 100644 --- a/gui/predictivedialog.h +++ b/gui/predictivedialog.h @@ -43,7 +43,6 @@ public: virtual void handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32 data); virtual void handleKeyUp(Common::KeyState state); virtual void handleKeyDown(Common::KeyState state); - virtual void handleTickle(); const char *getResult() const { return _predictiveResult; } diff --git a/gui/recorderdialog.cpp b/gui/recorderdialog.cpp index 2d74cebbb6..c08b3e149a 100644 --- a/gui/recorderdialog.cpp +++ b/gui/recorderdialog.cpp @@ -33,7 +33,6 @@ #include "gui/editrecorddialog.h" #include "gui/EventRecorder.h" #include "gui/message.h" -#include "gui/saveload.h" #include "common/system.h" #include "gui/ThemeEval.h" #include "gui/gui-manager.h" diff --git a/gui/saveload.cpp b/gui/saveload.cpp index c1c1d12ec5..b94d30289b 100644 --- a/gui/saveload.cpp +++ b/gui/saveload.cpp @@ -25,7 +25,6 @@ #include "gui/saveload.h" #include "gui/saveload-dialog.h" -#include "gui/gui-manager.h" #include "engines/metaengine.h" diff --git a/gui/saveload.h b/gui/saveload.h index 22c26d4c5e..01a78c4924 100644 --- a/gui/saveload.h +++ b/gui/saveload.h @@ -23,7 +23,7 @@ #ifndef GUI_SAVELOAD_H #define GUI_SAVELOAD_H -#include "gui/dialog.h" +#include "common/str.h" #include "engines/metaengine.h" namespace GUI { diff --git a/gui/themes/default.inc b/gui/themes/default.inc index e367bcb3c7..a23e2f4c30 100644 --- a/gui/themes/default.inc +++ b/gui/themes/default.inc @@ -1076,6 +1076,17 @@ const char *defaultXML1 = "<?xml version = '1.0'?>" "type='PopUp' " "/>" "</layout>" +"<layout type='horizontal' padding='0,0,0,0' spacing='10' center='true'>" +"<widget name='UpdatesPopupDesc' " +"type='OptionsLabel' " +"/>" +"<widget name='UpdatesPopup' " +"type='PopUp' " +"/>" +"<widget name='UpdatesCheckManuallyButton' " +"type='Button' " +"/>" +"</layout>" "<widget name='KeysButton' " "type='Button' " "/>" @@ -2365,6 +2376,19 @@ const char *defaultXML1 = "<?xml version = '1.0'?>" "type='PopUp' " "/>" "</layout>" +"<layout type='horizontal' padding='0,0,0,0' spacing='6' center='true'>" +"<widget name='UpdatesPopupDesc' " +"width='80' " +"height='Globals.Line.Height' " +"textalign='right' " +"/>" +"<widget name='UpdatesPopup' " +"type='PopUp' " +"/>" +"<widget name='UpdatesCheckManuallyButton' " +"type='Button' " +"/>" +"</layout>" "<widget name='KeysButton' " "type='Button' " "/>" diff --git a/gui/themes/scummclassic.zip b/gui/themes/scummclassic.zip Binary files differindex 1d8b8dad05..43fcea12fd 100644 --- a/gui/themes/scummclassic.zip +++ b/gui/themes/scummclassic.zip diff --git a/gui/themes/scummclassic/classic_layout.stx b/gui/themes/scummclassic/classic_layout.stx index 18c2a1f889..65724d9faf 100644 --- a/gui/themes/scummclassic/classic_layout.stx +++ b/gui/themes/scummclassic/classic_layout.stx @@ -507,6 +507,17 @@ type = 'PopUp' /> </layout> + <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'> + <widget name = 'UpdatesPopupDesc' + type = 'OptionsLabel' + /> + <widget name = 'UpdatesPopup' + type = 'PopUp' + /> + <widget name = 'UpdatesCheckManuallyButton' + type = 'Button' + /> + </layout> <widget name='KeysButton' type='Button' /> diff --git a/gui/themes/scummclassic/classic_layout_lowres.stx b/gui/themes/scummclassic/classic_layout_lowres.stx index 6cc9eed6b3..f73f6e864b 100644 --- a/gui/themes/scummclassic/classic_layout_lowres.stx +++ b/gui/themes/scummclassic/classic_layout_lowres.stx @@ -510,6 +510,19 @@ type = 'PopUp' /> </layout> + <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '6' center = 'true'> + <widget name = 'UpdatesPopupDesc' + width = '80' + height = 'Globals.Line.Height' + textalign = 'right' + /> + <widget name = 'UpdatesPopup' + type = 'PopUp' + /> + <widget name = 'UpdatesCheckManuallyButton' + type = 'Button' + /> + </layout> <widget name='KeysButton' type='Button' /> diff --git a/gui/themes/scummmodern.zip b/gui/themes/scummmodern.zip Binary files differindex 43826abf5e..70f7672c57 100644 --- a/gui/themes/scummmodern.zip +++ b/gui/themes/scummmodern.zip diff --git a/gui/themes/scummmodern/scummmodern_layout.stx b/gui/themes/scummmodern/scummmodern_layout.stx index fd6a3c5cd2..c73ffa1f08 100644 --- a/gui/themes/scummmodern/scummmodern_layout.stx +++ b/gui/themes/scummmodern/scummmodern_layout.stx @@ -521,6 +521,17 @@ type = 'PopUp' /> </layout> + <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'> + <widget name = 'UpdatesPopupDesc' + type = 'OptionsLabel' + /> + <widget name = 'UpdatesPopup' + type = 'PopUp' + /> + <widget name = 'UpdatesCheckManuallyButton' + type = 'Button' + /> + </layout> <widget name='KeysButton' type='Button' /> diff --git a/gui/themes/scummmodern/scummmodern_layout_lowres.stx b/gui/themes/scummmodern/scummmodern_layout_lowres.stx index 9d8f79795c..43ec0cdee1 100644 --- a/gui/themes/scummmodern/scummmodern_layout_lowres.stx +++ b/gui/themes/scummmodern/scummmodern_layout_lowres.stx @@ -508,6 +508,19 @@ type = 'PopUp' /> </layout> + <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '6' center = 'true'> + <widget name = 'UpdatesPopupDesc' + width = '80' + height = 'Globals.Line.Height' + textalign = 'right' + /> + <widget name = 'UpdatesPopup' + type = 'PopUp' + /> + <widget name = 'UpdatesCheckManuallyButton' + type = 'Button' + /> + </layout> <widget name='KeysButton' type='Button' /> diff --git a/gui/themes/translations.dat b/gui/themes/translations.dat Binary files differindex b0da793cdf..917acdb13d 100644 --- a/gui/themes/translations.dat +++ b/gui/themes/translations.dat diff --git a/gui/updates-dialog.cpp b/gui/updates-dialog.cpp new file mode 100644 index 0000000000..960b3f397a --- /dev/null +++ b/gui/updates-dialog.cpp @@ -0,0 +1,148 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#include "common/system.h" +#include "common/translation.h" +#include "common/updates.h" +#include "common/config-manager.h" + +#include "gui/updates-dialog.h" +#include "gui/gui-manager.h" +#include "gui/ThemeEval.h" +#include "gui/widgets/popup.h" + +namespace GUI { + +enum { + kYesCmd = 'YES ', + kNoCmd = 'NO ', + kCheckBoxCmd = 'CHK ' +}; + + +UpdatesDialog::UpdatesDialog() : Dialog(30, 20, 260, 124) { + + const int screenW = g_system->getOverlayWidth(); + const int screenH = g_system->getOverlayHeight(); + + int buttonWidth = g_gui.xmlEval()->getVar("Globals.Button.Width", 0); + int buttonHeight = g_gui.xmlEval()->getVar("Globals.Button.Height", 0); + + const char *message = _( + "ScummVM now supports automatic check for updates\n" + "which requires access to the Internet.\n" + "\n" + "Would you like to enable this feature?"); + const char *message2 = _("(You can always enable it in the options dialog on the Misc tab)"); + + // First, determine the size the dialog needs. For this we have to break + // down the string into lines, and taking the maximum of their widths. + // Using this, and accounting for the space the button(s) need, we can set + // the real size of the dialog + Common::Array<Common::String> lines, lines2; + int maxlineWidth = g_gui.getFont().wordWrapText(message, screenW - 2 * 20, lines); + int maxlineWidth2 = g_gui.getFont(ThemeEngine::kFontStyleTooltip).wordWrapText(message2, screenW - 2 * 20, lines2); + + _w = MAX(MAX(maxlineWidth, maxlineWidth2), (2 * buttonWidth) + 10) + 20; + + int lineCount = lines.size() + 1 + lines2.size(); + + _h = 16 + 3 * kLineHeight; + _h += buttonHeight + 8; + + _h += lineCount * kLineHeight; + + // Center the dialog + _x = (screenW - _w) / 2; + _y = (screenH - _h) / 2; + + // Each line is represented by one static text item. + int y = 10; + for (int i = 0; i < lines.size(); i++) { + new StaticTextWidget(this, 10, y, maxlineWidth, kLineHeight, + lines[i], Graphics::kTextAlignCenter); + y += kLineHeight; + } + for (int i = 0; i < lines2.size(); i++) { + new StaticTextWidget(this, 10, y, maxlineWidth2, kLineHeight, + lines2[i], Graphics::kTextAlignCenter, 0, ThemeEngine::kFontStyleTooltip); + y += kLineHeight; + } + + y += kLineHeight; + _updatesCheckbox = new CheckboxWidget(this, 10, y, _w, kLineHeight, _("Check for updates automatically"), 0, kCheckBoxCmd); + + y += kLineHeight + 3; + + _updatesPopUp = new PopUpWidget(this, 10, y, _w - 20, g_gui.xmlEval()->getVar("Globals.PopUp.Height", kLineHeight)); + + const int *vals = Common::UpdateManager::getUpdateIntervals(); + + while (*vals != -1) { + _updatesPopUp->appendEntry(Common::UpdateManager::updateIntervalToString(*vals), *vals); + vals++; + } + + _updatesPopUp->setSelectedTag(Common::UpdateManager::kUpdateIntervalOneWeek); + + int yesButtonPos = (_w - (buttonWidth * 2)) / 2; + int noButtonPos = ((_w - (buttonWidth * 2)) / 2) + buttonWidth + 10; + + _yesButton = new ButtonWidget(this, yesButtonPos, _h - buttonHeight - 8, buttonWidth, buttonHeight, + _("Proceed"), 0, kYesCmd, Common::ASCII_RETURN); + _noButton = new ButtonWidget(this, noButtonPos, _h - buttonHeight - 8, buttonWidth, buttonHeight, + _("Cancel"), 0, kNoCmd, Common::ASCII_ESCAPE); + + _updatesPopUp->setEnabled(false); + _yesButton->setEnabled(false); +} + +void UpdatesDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) { + if (cmd == kYesCmd) { + ConfMan.setInt("updates_check", _updatesPopUp->getSelectedTag()); + + if (g_system->getUpdateManager()) { + if (_updatesCheckbox->getState() == false || + _updatesPopUp->getSelectedTag() == Common::UpdateManager::kUpdateIntervalNotSupported) { + g_system->getUpdateManager()->setAutomaticallyChecksForUpdates(Common::UpdateManager::kUpdateStateDisabled); + } else { + g_system->getUpdateManager()->setAutomaticallyChecksForUpdates(Common::UpdateManager::kUpdateStateEnabled); + g_system->getUpdateManager()->setUpdateCheckInterval(_updatesPopUp->getSelectedTag()); + } + } + close(); + } else if (cmd == kNoCmd) { + ConfMan.setInt("updates_check", Common::UpdateManager::kUpdateIntervalNotSupported); + g_system->getUpdateManager()->setAutomaticallyChecksForUpdates(Common::UpdateManager::kUpdateStateDisabled); + + close(); + } else if (cmd == kCheckBoxCmd) { + _updatesPopUp->setEnabled(_updatesCheckbox->getState()); + _yesButton->setEnabled(_updatesCheckbox->getState()); + + draw(); + } else { + Dialog::handleCommand(sender, cmd, data); + } +} + +} // End of namespace GUI diff --git a/engines/scumm/he/logic/moonbase.cpp b/gui/updates-dialog.h index 29a0dde7a2..9c429c960c 100644 --- a/engines/scumm/he/logic/moonbase.cpp +++ b/gui/updates-dialog.h @@ -20,33 +20,35 @@ * */ -#include "scumm/he/intern_he.h" -#include "scumm/he/logic_he.h" +#ifndef GUI_UPDATES_DIALOG_H +#define GUI_UPDATES_DIALOG_H -namespace Scumm { +#include "gui/dialog.h" + +namespace GUI { + +class CheckboxWidget; +class CommandSender; +class ButtonWidget; +class PopUpWidget; /** - * Logic code for: - * Moonbase Commander + * Wizard for updates opt-in */ -class LogicHEmoonbase : public LogicHE { +class UpdatesDialog : public Dialog { public: - LogicHEmoonbase(ScummEngine_v90he *vm) : LogicHE(vm) {} + UpdatesDialog(); + virtual ~UpdatesDialog() {} - int versionID(); -}; + void handleCommand(CommandSender *sender, uint32 cmd, uint32 data); -int LogicHEmoonbase::versionID() { - if (_vm->_game.features & GF_DEMO) - return -100; - else if (strcmp(_vm->_game.variant, "1.1") == 0) - return 110; - else - return 100; -} +private: + PopUpWidget *_updatesPopUp; + ButtonWidget *_yesButton; + ButtonWidget *_noButton; + CheckboxWidget *_updatesCheckbox; +}; -LogicHE *makeLogicHEmoonbase(ScummEngine_v90he *vm) { - return new LogicHEmoonbase(vm); -} +} // End of namespace GUI -} // End of namespace Scumm +#endif diff --git a/gui/widget.cpp b/gui/widget.cpp index 9f98298224..dda44604c8 100644 --- a/gui/widget.cpp +++ b/gui/widget.cpp @@ -229,20 +229,22 @@ Common::String Widget::cleanupHotkey(const Common::String &label) { #pragma mark - -StaticTextWidget::StaticTextWidget(GuiObject *boss, int x, int y, int w, int h, const Common::String &text, Graphics::TextAlign align, const char *tooltip) +StaticTextWidget::StaticTextWidget(GuiObject *boss, int x, int y, int w, int h, const Common::String &text, Graphics::TextAlign align, const char *tooltip, ThemeEngine::FontStyle font) : Widget(boss, x, y, w, h, tooltip), _align(align) { setFlags(WIDGET_ENABLED); _type = kStaticTextWidget; _label = text; + _font = font; } -StaticTextWidget::StaticTextWidget(GuiObject *boss, const Common::String &name, const Common::String &text, const char *tooltip) +StaticTextWidget::StaticTextWidget(GuiObject *boss, const Common::String &name, const Common::String &text, const char *tooltip, ThemeEngine::FontStyle font) : Widget(boss, name, tooltip) { setFlags(WIDGET_ENABLED); _type = kStaticTextWidget; _label = text; _align = g_gui.xmlEval()->getWidgetTextHAlign(name); + _font = font; } void StaticTextWidget::setValue(int value) { @@ -278,14 +280,14 @@ void StaticTextWidget::setAlign(Graphics::TextAlign align) { void StaticTextWidget::drawWidget() { - g_gui.theme()->drawText(Common::Rect(_x, _y, _x+_w, _y+_h), _label, _state, _align); + g_gui.theme()->drawText(Common::Rect(_x, _y, _x+_w, _y+_h), _label, _state, _align, ThemeEngine::kTextInversionNone, 0, true, _font); } #pragma mark - ButtonWidget::ButtonWidget(GuiObject *boss, int x, int y, int w, int h, const Common::String &label, const char *tooltip, uint32 cmd, uint8 hotkey) : StaticTextWidget(boss, x, y, w, h, cleanupHotkey(label), Graphics::kTextAlignCenter, tooltip), CommandSender(boss), - _cmd(cmd), _hotkey(hotkey), _lastTime(0) { + _cmd(cmd), _hotkey(hotkey), _lastTime(0), _duringPress(false) { if (hotkey == 0) _hotkey = parseHotkey(label); @@ -296,7 +298,7 @@ ButtonWidget::ButtonWidget(GuiObject *boss, int x, int y, int w, int h, const Co ButtonWidget::ButtonWidget(GuiObject *boss, const Common::String &name, const Common::String &label, const char *tooltip, uint32 cmd, uint8 hotkey) : StaticTextWidget(boss, name, cleanupHotkey(label), tooltip), CommandSender(boss), - _cmd(cmd), _hotkey(hotkey), _lastTime(0) { + _cmd(cmd), _hotkey(hotkey), _lastTime(0), _duringPress(false) { if (hotkey == 0) _hotkey = parseHotkey(label); setFlags(WIDGET_ENABLED/* | WIDGET_BORDER*/ | WIDGET_CLEARBG); @@ -304,13 +306,15 @@ ButtonWidget::ButtonWidget(GuiObject *boss, const Common::String &name, const Co } void ButtonWidget::handleMouseUp(int x, int y, int button, int clickCount) { - if (isEnabled() && x >= 0 && x < _w && y >= 0 && y < _h) { - startAnimatePressedState(); + if (isEnabled() && _duringPress && x >= 0 && x < _w && y >= 0 && y < _h) { + setUnpressedState(); sendCommand(_cmd, 0); } + _duringPress = false; } void ButtonWidget::handleMouseDown(int x, int y, int button, int clickCount) { + _duringPress = true; setPressedState(); } @@ -348,39 +352,17 @@ void ButtonWidget::setHighLighted(bool enable) { draw(); } -void ButtonWidget::handleTickle() { - if (_lastTime) { - uint32 curTime = g_system->getMillis(); - if (curTime - _lastTime > kPressedButtonTime) { - stopAnimatePressedState(); - } - } -} - void ButtonWidget::setPressedState() { - wantTickle(true); setFlags(WIDGET_PRESSED); + clearFlags(WIDGET_HILITED); draw(); } -void ButtonWidget::stopAnimatePressedState() { - wantTickle(false); - _lastTime = 0; +void ButtonWidget::setUnpressedState() { clearFlags(WIDGET_PRESSED); draw(); } -void ButtonWidget::startAnimatePressedState() { - _lastTime = g_system->getMillis(); -} - -void ButtonWidget::wantTickle(bool tickled) { - if (tickled) - ((GUI::Dialog *)_boss)->setTickleWidget(this); - else - ((GUI::Dialog *)_boss)->unSetTickleWidget(); -} - #pragma mark - PicButtonWidget::PicButtonWidget(GuiObject *boss, int x, int y, int w, int h, const char *tooltip, uint32 cmd, uint8 hotkey) @@ -468,9 +450,10 @@ CheckboxWidget::CheckboxWidget(GuiObject *boss, const Common::String &name, cons } void CheckboxWidget::handleMouseUp(int x, int y, int button, int clickCount) { - if (isEnabled() && x >= 0 && x < _w && y >= 0 && y < _h) { + if (isEnabled() && _duringPress && x >= 0 && x < _w && y >= 0 && y < _h) { toggleState(); } + _duringPress = false; } void CheckboxWidget::setState(bool state) { @@ -531,9 +514,10 @@ RadiobuttonWidget::RadiobuttonWidget(GuiObject *boss, const Common::String &name } void RadiobuttonWidget::handleMouseUp(int x, int y, int button, int clickCount) { - if (isEnabled() && x >= 0 && x < _w && y >= 0 && y < _h) { + if (isEnabled() && _duringPress && x >= 0 && x < _w && y >= 0 && y < _h) { toggleState(); } + _duringPress = false; } void RadiobuttonWidget::setState(bool state, bool setGroup) { diff --git a/gui/widget.h b/gui/widget.h index 9891f32b36..7f6f0c0533 100644 --- a/gui/widget.h +++ b/gui/widget.h @@ -168,9 +168,10 @@ class StaticTextWidget : public Widget { protected: Common::String _label; Graphics::TextAlign _align; + ThemeEngine::FontStyle _font; public: - StaticTextWidget(GuiObject *boss, int x, int y, int w, int h, const Common::String &text, Graphics::TextAlign align, const char *tooltip = 0); - StaticTextWidget(GuiObject *boss, const Common::String &name, const Common::String &text, const char *tooltip = 0); + StaticTextWidget(GuiObject *boss, int x, int y, int w, int h, const Common::String &text, Graphics::TextAlign align, const char *tooltip = 0, ThemeEngine::FontStyle font = ThemeEngine::kFontStyleBold); + StaticTextWidget(GuiObject *boss, const Common::String &name, const Common::String &text, const char *tooltip = 0, ThemeEngine::FontStyle font = ThemeEngine::kFontStyleBold); void setValue(int value); void setLabel(const Common::String &label); const Common::String &getLabel() const { return _label; } @@ -198,19 +199,15 @@ public: void handleMouseUp(int x, int y, int button, int clickCount); void handleMouseDown(int x, int y, int button, int clickCount); - void handleMouseEntered(int button) { setFlags(WIDGET_HILITED); draw(); } + void handleMouseEntered(int button) { if (_duringPress) { setFlags(WIDGET_PRESSED); } else { setFlags(WIDGET_HILITED); } draw(); } void handleMouseLeft(int button) { clearFlags(WIDGET_HILITED | WIDGET_PRESSED); draw(); } - void handleTickle(); void setHighLighted(bool enable); void setPressedState(); - void startAnimatePressedState(); - void stopAnimatePressedState(); - - void lostFocusWidget() { stopAnimatePressedState(); } + void setUnpressedState(); protected: void drawWidget(); - void wantTickle(bool tickled); + bool _duringPress; private: uint32 _lastTime; }; diff --git a/gui/widgets/popup.cpp b/gui/widgets/popup.cpp index 6186492339..0b2ea9fd4e 100644 --- a/gui/widgets/popup.cpp +++ b/gui/widgets/popup.cpp @@ -382,6 +382,16 @@ PopUpWidget::PopUpWidget(GuiObject *boss, const String &name, const char *toolti _selectedItem = -1; } +PopUpWidget::PopUpWidget(GuiObject *boss, int x, int y, int w, int h, const char *tooltip) + : Widget(boss, x, y, w, h, tooltip), CommandSender(boss) { + setFlags(WIDGET_ENABLED | WIDGET_CLEARBG | WIDGET_RETAIN_FOCUS | WIDGET_IGNORE_DRAG); + _type = kPopUpWidget; + + _selectedItem = -1; + + _leftPadding = _rightPadding = 0; +} + void PopUpWidget::handleMouseDown(int x, int y, int button, int clickCount) { if (isEnabled()) { PopUpDialog popupDialog(this, x + getAbsX(), y + getAbsY()); diff --git a/gui/widgets/popup.h b/gui/widgets/popup.h index 102c7fd258..37ddc276ad 100644 --- a/gui/widgets/popup.h +++ b/gui/widgets/popup.h @@ -58,6 +58,7 @@ protected: public: PopUpWidget(GuiObject *boss, const String &name, const char *tooltip = 0); + PopUpWidget(GuiObject *boss, int x, int y, int w, int h, const char *tooltip = 0); void handleMouseDown(int x, int y, int button, int clickCount); void handleMouseWheel(int x, int y, int direction); diff --git a/po/POTFILES b/po/POTFILES index 49f3b6c372..dc4a19da2e 100644 --- a/po/POTFILES +++ b/po/POTFILES @@ -19,12 +19,14 @@ gui/recorderdialog.cpp gui/saveload-dialog.cpp gui/themebrowser.cpp gui/ThemeEngine.cpp +gui/updates-dialog.cpp gui/widget.cpp base/main.cpp common/error.cpp common/rendermode.cpp +common/updates.cpp engines/advancedDetector.cpp engines/dialogs.cpp diff --git a/po/be_BY.po b/po/be_BY.po index 5b80dc19aa..20bc062b5e 100644 --- a/po/be_BY.po +++ b/po/be_BY.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ScummVM 1.8.0git\n" "Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n" -"POT-Creation-Date: 2016-02-20 21:22+0000\n" +"POT-Creation-Date: 2016-04-07 08:55+0100\n" "PO-Revision-Date: 2016-02-21 23:32+0300\n" "Last-Translator: Ivan Lukyanov <greencis@mail.ru>\n" "Language-Team: Ivan Lukyanov <greencis@mail.ru>\n" @@ -56,10 +56,11 @@ msgstr "ĆŅÕąå" #: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editrecorddialog.cpp:67 #: gui/filebrowser-dialog.cpp:64 gui/fluidsynth-dialog.cpp:152 #: gui/KeysDialog.cpp:43 gui/launcher.cpp:351 gui/massadd.cpp:95 -#: gui/options.cpp:1237 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 +#: gui/options.cpp:1255 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 #: gui/recorderdialog.cpp:156 gui/saveload-dialog.cpp:216 #: gui/saveload-dialog.cpp:276 gui/saveload-dialog.cpp:547 -#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 engines/engine.cpp:546 +#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 +#: gui/updates-dialog.cpp:113 engines/engine.cpp:546 #: backends/events/default/default-events.cpp:196 #: backends/events/default/default-events.cpp:218 #: backends/platform/wii/options.cpp:48 engines/drascula/saveload.cpp:49 @@ -173,7 +174,7 @@ msgstr "ĮöŻćįŽöŌŠ" msgid "Triangle" msgstr "ĀąŽåŚćāŻŠļ" -#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1168 +#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1170 msgid "Misc" msgstr "ĄŽ×ŻŠÕ" @@ -207,12 +208,12 @@ msgstr "ĮŚöŻćęģ ŻŠŪŠŌė FluidSynth ߊ ×ÜŠžēŠŻŻö." #: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:352 #: gui/launcher.cpp:1050 gui/launcher.cpp:1054 gui/massadd.cpp:92 -#: gui/options.cpp:1238 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 +#: gui/options.cpp:1256 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 #: engines/engine.cpp:476 backends/platform/wii/options.cpp:47 #: backends/platform/wince/CELauncherDialog.cpp:54 #: engines/agos/animation.cpp:558 engines/drascula/saveload.cpp:49 #: engines/groovie/script.cpp:408 engines/parallaction/saveload.cpp:274 -#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1834 +#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1831 #: engines/scumm/players/player_v3m.cpp:130 #: engines/scumm/players/player_v5m.cpp:108 engines/sky/compact.cpp:131 #: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:524 @@ -240,15 +241,15 @@ msgstr "·ŠŚąėęģ" msgid "Mouse click" msgstr "ŗŪöŚ Üėččć" -#: gui/gui-manager.cpp:126 base/main.cpp:322 +#: gui/gui-manager.cpp:126 base/main.cpp:325 msgid "Display keyboard" msgstr "æŠŚŠ×Šęģ ŚŪŠŅöļāćąć" -#: gui/gui-manager.cpp:130 base/main.cpp:326 +#: gui/gui-manager.cpp:130 base/main.cpp:329 msgid "Remap keys" msgstr "æÕąŠßąėׯŠēėęģ ŚŪŠŅöčė" -#: gui/gui-manager.cpp:133 base/main.cpp:329 engines/scumm/help.cpp:87 +#: gui/gui-manager.cpp:133 base/main.cpp:332 engines/scumm/help.cpp:87 msgid "Toggle fullscreen" msgstr "æÕąŠŚŪīēķŻŻÕ ŻŠ žŅÕįģ ķŚąŠŻ" @@ -324,8 +325,8 @@ msgstr "" "¼ŽŅŠ ÓćŪģŻö. ·ÜÕŻŠ ÓķāŠŁ ŻŠŪŠŌė ŻÕ ßÕąŠāŅŽąėęģ ąćįŚćī ŅÕąįöī ÓćŪģŻö ž " "ŃÕŪŠąćįŚćī" -#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:87 -#: gui/options.cpp:735 gui/options.cpp:748 gui/options.cpp:1208 +#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:89 +#: gui/options.cpp:737 gui/options.cpp:750 gui/options.cpp:1210 #: audio/null.cpp:41 msgid "<default>" msgstr "<ߊ ×ÜŠžēŠŻŻö>" @@ -347,11 +348,11 @@ msgstr "æŪŠā䎹܊:" msgid "Engine" msgstr "ĄćåŠŅöēŽŚ" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "Graphics" msgstr "³ąŠäöŚŠ" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "GFX" msgstr "³ąä" @@ -364,7 +365,7 @@ msgctxt "lowres" msgid "Override global graphic settings" msgstr "æÕąŠŚąėęģ ÓŪŠŃŠŪģŻėļ ŻŠŪŠŌė ÓąŠäöŚö" -#: gui/launcher.cpp:257 gui/options.cpp:1094 +#: gui/launcher.cpp:257 gui/options.cpp:1096 msgid "Audio" msgstr "°žŌėń" @@ -377,11 +378,11 @@ msgctxt "lowres" msgid "Override global audio settings" msgstr "æÕąŠŚąėęģ ÓŪŠŃŠŪģŻėļ ŻŠŪŠŌė ŠžŌėń" -#: gui/launcher.cpp:271 gui/options.cpp:1099 +#: gui/launcher.cpp:271 gui/options.cpp:1101 msgid "Volume" msgstr "³ćēŻŠįęģ" -#: gui/launcher.cpp:273 gui/options.cpp:1101 +#: gui/launcher.cpp:273 gui/options.cpp:1103 msgctxt "lowres" msgid "Volume" msgstr "³ćēŻŠįęģ" @@ -395,7 +396,7 @@ msgctxt "lowres" msgid "Override global volume settings" msgstr "æÕąŠŚąėęģ ÓŪŠŃŠŪģŻėļ ŻŠŪŠŌė ÓćēŻŠįęö" -#: gui/launcher.cpp:286 gui/options.cpp:1109 +#: gui/launcher.cpp:286 gui/options.cpp:1111 msgid "MIDI" msgstr "MIDI" @@ -408,7 +409,7 @@ msgctxt "lowres" msgid "Override global MIDI settings" msgstr "æÕąŠŚąėęģ ÓŪŠŃŠŪģŻėļ ŻŠŪŠŌė MIDI" -#: gui/launcher.cpp:300 gui/options.cpp:1115 +#: gui/launcher.cpp:300 gui/options.cpp:1117 msgid "MT-32" msgstr "MT-32" @@ -421,11 +422,11 @@ msgctxt "lowres" msgid "Override global MT-32 settings" msgstr "æÕąŠŚąėęģ ÓŪŠŃŠŪģŻėļ ŻŠŪŠŌė MT-32" -#: gui/launcher.cpp:314 gui/options.cpp:1122 +#: gui/launcher.cpp:314 gui/options.cpp:1124 msgid "Paths" msgstr "ČŪļåö" -#: gui/launcher.cpp:316 gui/options.cpp:1124 +#: gui/launcher.cpp:316 gui/options.cpp:1126 msgctxt "lowres" msgid "Paths" msgstr "ČŪļåö" @@ -439,7 +440,7 @@ msgctxt "lowres" msgid "Game Path:" msgstr "ČŪļå ŌŠ ÓćŪģŻö:" -#: gui/launcher.cpp:330 gui/options.cpp:1148 +#: gui/launcher.cpp:330 gui/options.cpp:1150 msgid "Extra Path:" msgstr "“ŠŌ. čŪļå:" @@ -447,42 +448,42 @@ msgstr "“ŠŌ. čŪļå:" msgid "Specifies path to additional data used by the game" msgstr "æŠŚŠ×ŅŠÕ čŪļå ŌŠ ŌŠŌŠāŚŽŅėå 䊣ŪŠž, ŌŠŌ×ÕŻėå ŌŪļ ÓćŪģŻö" -#: gui/launcher.cpp:332 gui/options.cpp:1150 +#: gui/launcher.cpp:332 gui/options.cpp:1152 msgctxt "lowres" msgid "Extra Path:" msgstr "“ŠŌ. čŪļå:" -#: gui/launcher.cpp:339 gui/options.cpp:1132 +#: gui/launcher.cpp:339 gui/options.cpp:1134 msgid "Save Path:" msgstr "·ŠåŠŅŠŻŻö ÓćŪģŻļž:" #: gui/launcher.cpp:339 gui/launcher.cpp:341 gui/launcher.cpp:342 -#: gui/options.cpp:1132 gui/options.cpp:1134 gui/options.cpp:1135 +#: gui/options.cpp:1134 gui/options.cpp:1136 gui/options.cpp:1137 msgid "Specifies where your saved games are put" msgstr "æŠŚŠ×ŅŠÕ čŪļå ŌŠ ׊åŠŅŠŻŻļž ÓćŪģŻö" -#: gui/launcher.cpp:341 gui/options.cpp:1134 +#: gui/launcher.cpp:341 gui/options.cpp:1136 msgctxt "lowres" msgid "Save Path:" msgstr "·ŠåŠŅŠŻŻö ÓćŪģŻļž:" #: gui/launcher.cpp:360 gui/launcher.cpp:459 gui/launcher.cpp:517 -#: gui/launcher.cpp:571 gui/options.cpp:1143 gui/options.cpp:1151 -#: gui/options.cpp:1160 gui/options.cpp:1275 gui/options.cpp:1281 -#: gui/options.cpp:1289 gui/options.cpp:1319 gui/options.cpp:1325 -#: gui/options.cpp:1332 gui/options.cpp:1425 gui/options.cpp:1428 -#: gui/options.cpp:1440 +#: gui/launcher.cpp:571 gui/options.cpp:1145 gui/options.cpp:1153 +#: gui/options.cpp:1162 gui/options.cpp:1293 gui/options.cpp:1299 +#: gui/options.cpp:1307 gui/options.cpp:1337 gui/options.cpp:1343 +#: gui/options.cpp:1350 gui/options.cpp:1456 gui/options.cpp:1459 +#: gui/options.cpp:1471 msgctxt "path" msgid "None" msgstr "½Õ ׊ŌŠŌ×ÕŻė" #: gui/launcher.cpp:365 gui/launcher.cpp:465 gui/launcher.cpp:575 -#: gui/options.cpp:1269 gui/options.cpp:1313 gui/options.cpp:1431 +#: gui/options.cpp:1287 gui/options.cpp:1331 gui/options.cpp:1462 #: backends/platform/wii/options.cpp:56 msgid "Default" msgstr "æŠ ×ÜŠžēŠŻŻö" -#: gui/launcher.cpp:510 gui/options.cpp:1434 +#: gui/launcher.cpp:510 gui/options.cpp:1465 msgid "Select SoundFont" msgstr "°ŃļąėęÕ SoundFont" @@ -494,7 +495,7 @@ msgstr "°ŃļąėęÕ ŌėąķŚāŽąėī × äŠŁŪŠÜö ÓćŪģŻö" msgid "Select additional game directory" msgstr "°ŃļąėęÕ ŌŠŌŠāŚŽŅćī ŌėąķŚāŽąėī ÓćŪģŻö" -#: gui/launcher.cpp:559 gui/options.cpp:1377 +#: gui/launcher.cpp:559 gui/options.cpp:1408 msgid "Select directory for saved games" msgstr "°ŃļąėęÕ ŌėąķŚāŽąėī ŌŪļ ׊åŠŅŠŻŻļž" @@ -502,7 +503,7 @@ msgstr "°ŃļąėęÕ ŌėąķŚāŽąėī ŌŪļ ׊åŠŅŠŻŻļž" msgid "This game ID is already taken. Please choose another one." msgstr "³ķāė ID ÓćŪģŻö žÖŽ ŅėŚŠąėįāŽžŅŠÕęęŠ. ŗŠŪö ŪŠįŚŠ, ŠŃļąėęÕ öŻčė." -#: gui/launcher.cpp:626 engines/dialogs.cpp:111 +#: gui/launcher.cpp:626 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:115 msgid "~Q~uit" msgstr "~²~ėåŠŌ" @@ -590,17 +591,18 @@ msgid "Search:" msgstr "æŽčćŚ:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214 -#: engines/mohawk/riven.cpp:718 engines/pegasus/pegasus.cpp:353 -#: engines/tsage/scenes.cpp:600 +#: engines/mohawk/dialogs.cpp:120 engines/mohawk/riven.cpp:718 +#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:600 msgid "Load game:" msgstr "·ŠÓąć×öęģ ÓćŪģŻī:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 #: backends/platform/wince/CEActionsPocket.cpp:267 #: backends/platform/wince/CEActionsSmartphone.cpp:231 -#: engines/cruise/menu.cpp:214 engines/mohawk/riven.cpp:718 -#: engines/parallaction/saveload.cpp:197 engines/pegasus/pegasus.cpp:353 -#: engines/scumm/dialogs.cpp:189 engines/tsage/scenes.cpp:600 +#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:120 +#: engines/mohawk/riven.cpp:718 engines/parallaction/saveload.cpp:197 +#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:189 +#: engines/tsage/scenes.cpp:600 msgid "Load" msgstr "·ŠÓąć×öęģ" @@ -687,132 +689,132 @@ msgstr "æÕąŠŚŪīēėęęŠ ž ÓćŪģŻī" msgid "Fast replay" msgstr "ÅćāŚŠÕ ßąŠŁÓąŠŅŠŻŻÕ" -#: gui/options.cpp:85 +#: gui/options.cpp:87 common/updates.cpp:56 msgid "Never" msgstr "½öŚŽŪö" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 5 mins" msgstr "ŚŽÖŻėļ 5 åŅöŪöŻ" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 10 mins" msgstr "ŚŽÖŻėļ 10 åŅöŪöŻ" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 15 mins" msgstr "ŚŽÖŻėļ 15 åŅöŪöŻ" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 30 mins" msgstr "ŚŽÖŻėļ 30 åŅöŪöŻ" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "8 kHz" msgstr "8 Ś³ę" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "11 kHz" msgstr "11 Ś³ę" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "22 kHz" msgstr "22 Ś³ę" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "44 kHz" msgstr "44 Ś³ę" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "48 kHz" msgstr "48 Ś³ę" -#: gui/options.cpp:255 gui/options.cpp:479 gui/options.cpp:580 -#: gui/options.cpp:649 gui/options.cpp:857 +#: gui/options.cpp:257 gui/options.cpp:481 gui/options.cpp:582 +#: gui/options.cpp:651 gui/options.cpp:859 msgctxt "soundfont" msgid "None" msgstr "½Õ ׊ŌŠŌ×ÕŻė" -#: gui/options.cpp:389 +#: gui/options.cpp:391 msgid "Failed to apply some of the graphic options changes:" msgstr "½Õ ŠāąėÜŠŪŠįļ žÖėęģ ×ÜÕŻė ŻÕŚŠāŽąėå ÓąŠäöēŻėå ŻŠŪŠŌ:" -#: gui/options.cpp:401 +#: gui/options.cpp:403 msgid "the video mode could not be changed." msgstr "ŅöŌķŠąķÖėÜ ŻÕ ÜŽÖŠ Ńėęģ ×ÜÕŻÕŻė." -#: gui/options.cpp:407 +#: gui/options.cpp:409 msgid "the fullscreen setting could not be changed" msgstr "ߎžŻŠķŚąŠŻŻė ąķÖėÜ ŻÕ ÜŽÖŠ Ńėęģ ×ÜÕŻÕŻė" -#: gui/options.cpp:413 +#: gui/options.cpp:415 msgid "the aspect ratio setting could not be changed" msgstr "ąķÖėÜ ŚŠąķŚāėąŽžŚö įćŠŌŻŽįöŻ ŃŠŚŽž ŻÕ ÜŽÖŠ Ńėęģ ×ÜÕŻÕŻė" -#: gui/options.cpp:732 +#: gui/options.cpp:734 msgid "Graphics mode:" msgstr "³ąŠä. ąķÖėÜ:" -#: gui/options.cpp:746 +#: gui/options.cpp:748 msgid "Render mode:" msgstr "ĄķÖėÜ ąŠįāąć:" -#: gui/options.cpp:746 gui/options.cpp:747 +#: gui/options.cpp:748 gui/options.cpp:749 msgid "Special dithering modes supported by some games" msgstr "ĮßÕęėļŪģŻėļ ąķÖėÜė ąķŻŌķąėŻÓć, ߊŌāąėÜŽžŅŠŻėļ ŻÕŚŠāŽąėÜö ÓćŪģŻļÜö" -#: gui/options.cpp:758 +#: gui/options.cpp:760 #: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2316 msgid "Fullscreen mode" msgstr "掞ŻŠķŚąŠŻŻė ąķÖėÜ" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Aspect ratio correction" msgstr "ŗŠąķŚęėļ įćŠŌŻŽįöŻ ŃŠŚŽž" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Correct aspect ratio for 320x200 games" msgstr "ŗŠąķŚāŠŅŠęģ įćŠŌŻŽįöŻė ŃŠŚŽž ŌŪļ ÓćŪģŻļž × ŠŌąŽ×ŻÕŻŻÕÜ 320x200" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Preferred Device:" msgstr "ĆߊŌŠŃŠŻŠļ ßąėŪŠŌŠ:" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Music Device:" msgstr "³ćŚŠŅŠļ ßąėŪŠŌŠ:" -#: gui/options.cpp:769 gui/options.cpp:771 +#: gui/options.cpp:771 gui/options.cpp:773 msgid "Specifies preferred sound device or sound card emulator" msgstr "·Š×ŻŠēŠÕ žßŠŌŠŃŠŻćī Ó挊Ņćī ßąėŪŠŌć ęö ķÜćŪļāŠą Ó挊ŅŽŁ ŚŠąāė" -#: gui/options.cpp:769 gui/options.cpp:771 gui/options.cpp:772 +#: gui/options.cpp:771 gui/options.cpp:773 gui/options.cpp:774 msgid "Specifies output sound device or sound card emulator" msgstr "·Š×ŻŠēŠÕ ŅėåŽŌŻćī Ó挊Ņćī ßąėŪŠŌć ęö ķÜćŪļāŠą Ó挊ŅŽŁ ŚŠąāė" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Preferred Dev.:" msgstr "ĆߊŌŠŃŠŻŠļ:" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Music Device:" msgstr "³ćŚŠŅŠļ ßąėŪŠŌŠ:" -#: gui/options.cpp:798 +#: gui/options.cpp:800 msgid "AdLib emulator:" msgstr "ĶÜćŪļāŠą AdLib:" -#: gui/options.cpp:798 gui/options.cpp:799 +#: gui/options.cpp:800 gui/options.cpp:801 msgid "AdLib is used for music in many games" msgstr "³ćŚŠŅŠļ ŚŠąāŠ AdLib ŅėŚŠąėįāŽžŅŠÕęęŠ ÜŻŽÓöÜö ÓćŪģŻļÜö" -#: gui/options.cpp:809 +#: gui/options.cpp:811 msgid "Output rate:" msgstr "ĒŠčēėŻļ ÓćŚć:" -#: gui/options.cpp:809 gui/options.cpp:810 +#: gui/options.cpp:811 gui/options.cpp:812 msgid "" "Higher value specifies better sound quality but may be not supported by your " "soundcard" @@ -820,68 +822,68 @@ msgstr "" "±ŽŪģčėļ ׯŠēķŻŻö ׊ŌŠīęģ ŪÕßčćī ļŚŠįęģ ÓćŚć, ŠŌŻŠŚ ļŻė ÜŽÓćęģ ŻÕ " "ߊŌāąėÜŪöŅŠęęŠ ŅŠčŠŁ Ó挊ŅŽŁ ŚŠąāŠŁ" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "GM Device:" msgstr "æąėŪŠŌŠ GM:" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "Specifies default sound device for General MIDI output" msgstr "·Š×ŻŠēŠÕ ŅėåŽŌŻćī Ó挊Ņćī ßąėŪŠŌć ŌŪļ MIDI" -#: gui/options.cpp:831 +#: gui/options.cpp:833 msgid "Don't use General MIDI music" msgstr "½Õ ŅėŚŠąėįāŽžŅŠęģ Üć×ėŚć ŌŪļ General MIDI" -#: gui/options.cpp:842 gui/options.cpp:908 +#: gui/options.cpp:844 gui/options.cpp:910 msgid "Use first available device" msgstr "²ėŚŠąėįāŽžŅŠęģ ßÕąčćī ŌŠįāć߯ćī ßąėŪŠŌć" -#: gui/options.cpp:854 +#: gui/options.cpp:856 msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:854 gui/options.cpp:856 gui/options.cpp:857 +#: 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" -#: gui/options.cpp:856 +#: gui/options.cpp:858 msgctxt "lowres" msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Mixed AdLib/MIDI mode" msgstr "·ÜÕ芯ė ąķÖėÜ AdLib/MIDI" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Use both MIDI and AdLib sound generation" msgstr "²ėŚŠąėįāŽžŅŠęģ ö MIDI, ö AdLib ŌŪļ ÓÕŻÕąŠęėö ÓćŚć" -#: gui/options.cpp:865 +#: gui/options.cpp:867 msgid "MIDI gain:" msgstr "Ć×ÜŠęŻÕŻŻÕ MIDI:" -#: gui/options.cpp:872 +#: gui/options.cpp:874 msgid "FluidSynth Settings" msgstr "½ŠŪŠŌė FluidSynth" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "MT-32 Device:" msgstr "½ŠŪ. MT-32:" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output" msgstr "" "æŠŚŠ×ŅŠÕ Ó挊Ņćī ßąėŪŠŌć ߊ ×ÜŠžēŠŻŻö ŌŪļ ŅėŅŠŌć ŻŠ Roland MT-32/LAPC1/CM32l/" "CM64" -#: gui/options.cpp:884 +#: gui/options.cpp:886 msgid "True Roland MT-32 (disable GM emulation)" msgstr "ĮŠßąŠžŌŻė Roland MT-32 (׊ъąŠŻöęģ ķÜćŪļęėī GM)" -#: gui/options.cpp:884 gui/options.cpp:886 +#: gui/options.cpp:886 gui/options.cpp:888 msgid "" "Check if you want to use your real hardware Roland-compatible sound device " "connected to your computer" @@ -889,16 +891,16 @@ msgstr "" "°ŌׯŠēęÕ, ŚŠŪö ž ŅŠį ߊŌŚŪīēŠŻŠ Roland-įćÜļčēŠŪģŻŠļ Ó挊ŅŠļ ßąėŪŠŌŠ ö Ņė " "ÖŠŌŠÕęÕ ļÕ ŅėŚŠąėįāŽžŅŠęģ" -#: gui/options.cpp:886 +#: gui/options.cpp:888 msgctxt "lowres" msgid "True Roland MT-32 (no GM emulation)" msgstr "ĮŠßąŠžŌŻė Roland MT-32 (ŃÕ× ķÜćŪļęėö GM)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "Roland GS Device (enable MT-32 mappings)" msgstr "ĄķÖėÜ Roland GS (ŌŠ×ŅŽŪöęģ ÜŠßöŻÓ MT-32)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "" "Check if you want to enable patch mappings to emulate an MT-32 on a Roland " "GS device" @@ -906,171 +908,183 @@ msgstr "" "°ŌׯŠēęÕ, ŚŠŪö ÖŠŌŠÕęÕ ŌŠ×ŅŽŪöęģ ÜŠßöŻÓ ŌŪļ ķÜćŪļęėö MT-32 ŻŠ ßąėŪŠŌ×Õ " "Rolans GS" -#: gui/options.cpp:898 +#: gui/options.cpp:900 msgid "Don't use Roland MT-32 music" msgstr "½Õ ŅėŚŠąėįāŽžŅŠęģ Üć×ėŚć ŌŪļ MT-32" -#: gui/options.cpp:925 +#: gui/options.cpp:927 msgid "Text and Speech:" msgstr "ĀķŚįā ö ŠÓćēŚŠ:" -#: gui/options.cpp:929 gui/options.cpp:939 +#: gui/options.cpp:931 gui/options.cpp:941 msgid "Speech" msgstr "°ÓćēŚŠ" -#: gui/options.cpp:930 gui/options.cpp:940 +#: gui/options.cpp:932 gui/options.cpp:942 msgid "Subtitles" msgstr "ĮćŃāėāąė" -#: gui/options.cpp:931 +#: gui/options.cpp:933 msgid "Both" msgstr "°ŃŽÕ" -#: gui/options.cpp:933 +#: gui/options.cpp:935 msgid "Subtitle speed:" msgstr "ÅćāŚŠįęģ āėāąŠž:" -#: gui/options.cpp:935 +#: gui/options.cpp:937 msgctxt "lowres" msgid "Text and Speech:" msgstr "ĀķŚįā ö ŠÓćēŚŠ:" -#: gui/options.cpp:939 +#: gui/options.cpp:941 msgid "Spch" msgstr "°Óćē" -#: gui/options.cpp:940 +#: gui/options.cpp:942 msgid "Subs" msgstr "ĮćŃ" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgctxt "lowres" msgid "Both" msgstr "°ŃŽÕ" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgid "Show subtitles and play speech" msgstr "æŠŚŠ×ŅŠęģ įćŃāėāąė ö ßąŠŁÓąŠŅŠęģ ÓŠŅŽąŚć" -#: gui/options.cpp:943 +#: gui/options.cpp:945 msgctxt "lowres" msgid "Subtitle speed:" msgstr "ÅćāŚŠįęģ āėāąŠž:" -#: gui/options.cpp:959 +#: gui/options.cpp:961 msgid "Music volume:" msgstr "³ćēŻ. Üć×ėŚö:" -#: gui/options.cpp:961 +#: gui/options.cpp:963 msgctxt "lowres" msgid "Music volume:" msgstr "³ćēŻ. Üć×ėŚö:" -#: gui/options.cpp:968 +#: gui/options.cpp:970 msgid "Mute All" msgstr "²ėŚŪ. ćįń" -#: gui/options.cpp:971 +#: gui/options.cpp:973 msgid "SFX volume:" msgstr "³ćēŻŠįęģ SFX:" -#: gui/options.cpp:971 gui/options.cpp:973 gui/options.cpp:974 +#: gui/options.cpp:973 gui/options.cpp:975 gui/options.cpp:976 msgid "Special sound effects volume" msgstr "³ćēŻŠįęģ įßÕęėļŪģŻėå Ó挊Ņėå ķäÕŚāŠž" -#: gui/options.cpp:973 +#: gui/options.cpp:975 msgctxt "lowres" msgid "SFX volume:" msgstr "³ćēŻŠįęģ SFX:" -#: gui/options.cpp:981 +#: gui/options.cpp:983 msgid "Speech volume:" msgstr "³ćēŻ. ŠÓćēŚö:" -#: gui/options.cpp:983 +#: gui/options.cpp:985 msgctxt "lowres" msgid "Speech volume:" msgstr "³ćēŻ. ŠÓćēŚö:" -#: gui/options.cpp:1140 +#: gui/options.cpp:1142 msgid "Theme Path:" msgstr "ČŪļå ŌŠ āķÜ:" -#: gui/options.cpp:1142 +#: gui/options.cpp:1144 msgctxt "lowres" msgid "Theme Path:" msgstr "ČŪļå ŌŠ āķÜ:" -#: gui/options.cpp:1148 gui/options.cpp:1150 gui/options.cpp:1151 +#: gui/options.cpp:1150 gui/options.cpp:1152 gui/options.cpp:1153 msgid "Specifies path to additional data used by all games or ScummVM" msgstr "" "æŠŚŠ×ŅŠÕ čŪļå ŌŠ ŌŠŌŠāŚŽŅėå 䊣ŪŠž ŌŠŌ×ÕŻėå, ŅėŚŠąėįāŽžŅŠŻėå ćįöÜö ÓćŪģŻļÜö " "ŠŃŽ ScummVM" -#: gui/options.cpp:1157 +#: gui/options.cpp:1159 msgid "Plugins Path:" msgstr "ČŪļå ŌŠ ßŪŠÓöŻŠž:" -#: gui/options.cpp:1159 +#: gui/options.cpp:1161 msgctxt "lowres" msgid "Plugins Path:" msgstr "ČŪļå ŌŠ ßŪŠÓöŻŠž:" -#: gui/options.cpp:1170 +#: gui/options.cpp:1172 msgctxt "lowres" msgid "Misc" msgstr "ĄŽ×ŻŠÕ" -#: gui/options.cpp:1172 +#: gui/options.cpp:1174 msgid "Theme:" msgstr "ĀķÜŠ" -#: gui/options.cpp:1176 +#: gui/options.cpp:1178 msgid "GUI Renderer:" msgstr "¼ŠŪļŅŠŪŚŠ GUI:" -#: gui/options.cpp:1188 +#: gui/options.cpp:1190 msgid "Autosave:" msgstr "°žāŠ×ŠåŠŅŠŻŻÕ:" -#: gui/options.cpp:1190 +#: gui/options.cpp:1192 msgctxt "lowres" msgid "Autosave:" msgstr "°žāŠ×ŠåŠŅŠŻŻÕ:" -#: gui/options.cpp:1198 +#: gui/options.cpp:1200 msgid "Keys" msgstr "ŗŪŠŅöčė" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "GUI Language:" msgstr "¼ŽŅŠ GUI:" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "Language of ScummVM GUI" msgstr "¼ŽŅŠ ÓąŠäöēŻŠÓŠ öŻāķąäÕŁįć ScummVM" -#: gui/options.cpp:1364 +#: gui/options.cpp:1235 +msgid "Update check:" +msgstr "" + +#: gui/options.cpp:1235 +msgid "How often to check ScummVM updates" +msgstr "" + +#: gui/options.cpp:1247 +msgid "Check now" +msgstr "" + +#: gui/options.cpp:1382 msgid "You have to restart ScummVM before your changes will take effect." msgstr "²ė ߊŅöŻŻė ßÕąŠ×Šßćįęöęģ ScummVM, ŚŠŃ ćÖėęģ ×ÜÕŻė." -#: gui/options.cpp:1384 +#: gui/options.cpp:1415 msgid "The chosen directory cannot be written to. Please select another one." msgstr "½Õ ÜŠÓć ßöįŠęģ ć ŠŃąŠŻćī ŌėąķŚāŽąėī. ŗŠŪö ŪŠįŚŠ, Š×ŻŠēęÕ öŻčćī." -#: gui/options.cpp:1393 +#: gui/options.cpp:1424 msgid "Select directory for GUI themes" msgstr "°ŃļąėęÕ ŌėąķŚāŽąėī ŌŪļ āķÜ GUI" -#: gui/options.cpp:1403 +#: gui/options.cpp:1434 msgid "Select directory for extra files" msgstr "°ŃļąėęÕ ŌėąķŚāŽąėī × ŌŠŌŠāŚŽŅėÜö 䊣ŪŠÜö" -#: gui/options.cpp:1414 +#: gui/options.cpp:1445 msgid "Select directory for plugins" msgstr "°ŃļąėęÕ ŌėąķŚāŽąėī × ßŪŠÓöŻŠÜö" -#: gui/options.cpp:1467 +#: gui/options.cpp:1498 msgid "" "The theme you selected does not support your current language. If you want " "to use this theme you need to switch to another language first." @@ -1243,39 +1257,60 @@ msgstr "ĄŠįāŠąė׊āŠą įŠ ×ÓŪŠŌÖŅŠŻŻÕÜ" msgid "Antialiased" msgstr "ĮŠ ×ÓŪŠŌÖŅŠŻŻÕÜ" -#: gui/widget.cpp:323 gui/widget.cpp:325 gui/widget.cpp:331 gui/widget.cpp:333 +#: gui/updates-dialog.cpp:51 +msgid "" +"ScummVM now supports automatic check for updates\n" +"which requires access to the Internet.\n" +"\n" +"Would you like to enable this feature?" +msgstr "" + +#: gui/updates-dialog.cpp:55 +msgid "(You can always enable it in the options dialog on the Misc tab)" +msgstr "" + +#: gui/updates-dialog.cpp:92 +#, fuzzy +msgid "Check for updates automatically" +msgstr "æąŠŅļąŠī ŠŃŻŠžŪÕŻŻö..." + +#: gui/updates-dialog.cpp:111 +msgid "Proceed" +msgstr "" + +#: gui/widget.cpp:327 gui/widget.cpp:329 gui/widget.cpp:335 gui/widget.cpp:337 msgid "Clear value" msgstr "°ēėįęöęģ ׯŠēķŻŻÕ" -#: base/main.cpp:237 +#: base/main.cpp:240 #, c-format msgid "Engine does not support debug level '%s'" msgstr "ĄćåŠŅöēŽŚ ŻÕ ߊŌāąėÜŪöŅŠÕ ž×ąŽŅÕŻģ ŠŌŪŠŌŚö '%s'" -#: base/main.cpp:309 +#: base/main.cpp:312 msgid "Menu" msgstr "¼ÕŻī" -#: base/main.cpp:312 backends/platform/symbian/src/SymbianActions.cpp:45 +#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:45 #: backends/platform/wince/CEActionsPocket.cpp:45 #: backends/platform/wince/CEActionsSmartphone.cpp:46 msgid "Skip" msgstr "æąŠßćįęöęģ" -#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:50 +#: base/main.cpp:318 backends/platform/symbian/src/SymbianActions.cpp:50 #: backends/platform/wince/CEActionsPocket.cpp:42 msgid "Pause" msgstr "択׊" -#: base/main.cpp:318 +#: base/main.cpp:321 msgid "Skip line" msgstr "æąŠßćįęöęģ ąŠŌŽŚ" -#: base/main.cpp:510 +#: base/main.cpp:520 msgid "Error running game:" msgstr "æŠÜėŪŚŠ ׊ßćįŚć ÓćŪģŻö:" -#: base/main.cpp:557 +#: base/main.cpp:567 msgid "Could not find any engine capable of running the selected game" msgstr "½Õ ÜŠÓć ׯŠŁįęö ąćåŠŅöēŽŚ ŌŪļ ׊ßćįŚć ŠŃąŠŻŠŁ ÓćŪģŻö" @@ -1370,17 +1405,34 @@ msgctxt "lowres" msgid "Hercules Amber" msgstr "Hercules ±ćąčāėŻŠŅė" -#: engines/advancedDetector.cpp:317 +#: common/updates.cpp:58 +msgid "Daily" +msgstr "" + +#: common/updates.cpp:60 +msgid "Weekly" +msgstr "" + +#: common/updates.cpp:62 +msgid "Monthly" +msgstr "" + +#: common/updates.cpp:64 +#, fuzzy +msgid "<Bad value>" +msgstr "°ēėįęöęģ ׯŠēķŻŻÕ" + +#: engines/advancedDetector.cpp:334 #, c-format msgid "The game in '%s' seems to be unknown." msgstr "·ŌŠÕęęŠ, čāŽ ÓćŪģŻļ '%s' ļčēķ ŻÕŅļŌŽÜŠ." -#: engines/advancedDetector.cpp:318 +#: engines/advancedDetector.cpp:335 msgid "Please, report the following data to the ScummVM team along with name" msgstr "" "ŗŠŪö ŪŠįŚŠ, ßÕąŠŌŠŁęÕ ŻŠįāć߯ėļ ŌŠŌ×ÕŻėļ ŚŠÜŠŻŌ×Õ ScummVM ąŠ×ŠÜ × ŻŠ×ŅŠŁ" -#: engines/advancedDetector.cpp:320 +#: engines/advancedDetector.cpp:337 msgid "of the game you tried to add and its version/language/etc.:" msgstr "ÓćŪģŻö, ļŚćī Ņė įßąŠŃćÕęÕ ŌŠŌŠęģ, ö Š×ŻŠēęÕ ļÕ ŅÕąįöī, ÜŽŅć ö Ó.Ō." @@ -1388,11 +1440,11 @@ msgstr "ÓćŪģŻö, ļŚćī Ņė įßąŠŃćÕęÕ ŌŠŌŠęģ, ö Š×ŻŠēęÕ ļÕ ŅÕąįöī, ÜŽŅć ö Ó.Ō." msgid "~R~esume" msgstr "æąŠęļÓ~Ż~ćęģ" -#: engines/dialogs.cpp:87 +#: engines/dialogs.cpp:87 engines/mohawk/dialogs.cpp:113 msgid "~L~oad" msgstr "·Š~Ó~ąć×öęģ" -#: engines/dialogs.cpp:91 +#: engines/dialogs.cpp:91 engines/mohawk/dialogs.cpp:114 msgid "~S~ave" msgstr "·Š~ß~öįŠęģ" @@ -1421,9 +1473,9 @@ msgstr "³~Š~ŪŽžŻŠÕ ÜÕŻī" #: engines/avalanche/parser.cpp:1899 engines/cge/events.cpp:74 #: engines/cge2/events.cpp:67 engines/cruise/menu.cpp:212 #: engines/drascula/saveload.cpp:336 engines/dreamweb/saveload.cpp:261 -#: engines/hugo/file.cpp:298 engines/neverhood/menumodule.cpp:877 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/hugo/file.cpp:298 engines/mohawk/dialogs.cpp:121 +#: engines/neverhood/menumodule.cpp:877 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save game:" @@ -1438,9 +1490,10 @@ msgstr "·ŠåŠŅŠęģ ÓćŪģŻī:" #: engines/cge/events.cpp:74 engines/cge2/events.cpp:67 #: engines/cruise/menu.cpp:212 engines/drascula/saveload.cpp:336 #: engines/dreamweb/saveload.cpp:261 engines/hugo/file.cpp:298 -#: engines/neverhood/menumodule.cpp:877 engines/parallaction/saveload.cpp:212 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/scumm/dialogs.cpp:188 engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/mohawk/dialogs.cpp:121 engines/neverhood/menumodule.cpp:877 +#: engines/parallaction/saveload.cpp:212 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/scumm/dialogs.cpp:188 +#: engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save" @@ -1466,13 +1519,13 @@ msgstr "" "׊ ъ׊ŅŠŁ öŻäŠąÜŠęėļŁ, Š āŠŚįŠÜŠ öŻįāąćŚęėļÜö ßąŠ āŽÕ, ļŚ ŠāąėÜŠęģ ŌŠŪÕŁčćī " "ŌŠßŠÜŽÓć." -#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:109 -#: engines/mohawk/dialogs.cpp:170 engines/tsage/dialogs.cpp:106 +#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:117 +#: engines/mohawk/dialogs.cpp:242 engines/tsage/dialogs.cpp:106 msgid "~O~K" msgstr "~¾~ŗ" -#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:110 -#: engines/mohawk/dialogs.cpp:171 engines/tsage/dialogs.cpp:107 +#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:118 +#: engines/mohawk/dialogs.cpp:243 engines/tsage/dialogs.cpp:107 msgid "~C~ancel" msgstr "~°~ŌÜÕŻŠ" @@ -1630,11 +1683,11 @@ msgstr "°žŌėń FM-Towns" msgid "PC-98 Audio" msgstr "°žŌėń PC-98" -#: audio/softsynth/mt32.cpp:200 +#: audio/softsynth/mt32.cpp:196 msgid "Initializing MT-32 Emulator" msgstr "½ŠŪŠŌÖŅŠī ķÜćŪļāŠą MT-32" -#: audio/softsynth/mt32.cpp:426 +#: audio/softsynth/mt32.cpp:434 msgid "MT-32 Emulator" msgstr "ĶÜćŪļāŠą MT-32" @@ -1751,11 +1804,11 @@ msgstr "ĄķÖėÜ ŠžāŠŌąķÓć ׊ąŠ×" msgid "Swipe three fingers to the right to toggle." msgstr "æąŠŅļŌ×öęÕ āąėÜŠ ߊŪģęŠÜö ŻŠßąŠŅŠ ŌŪļ ßÕąŠŚŪīēķŻŻļ." -#: backends/graphics/opengl/opengl-graphics.cpp:119 +#: backends/graphics/opengl/opengl-graphics.cpp:126 msgid "OpenGL" msgstr "OpenGL" -#: backends/graphics/opengl/opengl-graphics.cpp:120 +#: backends/graphics/opengl/opengl-graphics.cpp:127 msgid "OpenGL (No filtering)" msgstr "OpenGL (ŃÕ× äöŪģāąŠž)" @@ -2307,20 +2360,20 @@ msgstr "" "½Õ ׊ŃćŌ×ģęÕįļ ßąėׯŠēėęģ ŚŪŠŅöčć ŌŪļ Ō×ÕļŻŻļ 'Hide Toolbar', ŚŠŃ ćŃŠēėęģ " "ćŅÕįģ öŻŅÕŻāŠą ć ÓćŪģŻö" -#: backends/updates/macosx/macosx-updates.mm:67 +#: backends/updates/macosx/macosx-updates.mm:68 msgid "Check for Updates..." msgstr "æąŠŅļąŠī ŠŃŻŠžŪÕŻŻö..." #: engines/agi/detection.cpp:147 engines/cine/detection.cpp:70 #: engines/drascula/detection.cpp:302 engines/dreamweb/detection.cpp:47 -#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:404 +#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:410 #: engines/toltecs/detection.cpp:200 engines/zvision/detection_tables.h:51 msgid "Use original save/load screens" msgstr "²ėŚŠąėįāŽžŅŠęģ ŠąėÓöŻŠŪģŻėļ ķŚąŠŻė ׊ßöįć/ēėāŠŻŻļ ÓćŪģŻö" #: engines/agi/detection.cpp:148 engines/cine/detection.cpp:71 #: engines/drascula/detection.cpp:303 engines/dreamweb/detection.cpp:48 -#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:405 +#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:411 #: engines/toltecs/detection.cpp:201 msgid "Use the original save/load screens, instead of the ScummVM ones" msgstr "" @@ -2350,11 +2403,30 @@ msgstr "" "ĆŚŪīēŠÕ ߊŌāąėÜŚć Üėčė. “Š×ŅŠŪļÕ ŅėŚŠąėįāŽžŅŠęģ Üėč ŌŪļ ßÕąŠÜļčēķŻŻļ ö ž " "ÜÕŻī ÓćŪģŻö." +#: engines/agi/detection.cpp:177 +#, fuzzy +msgid "Use Hercules hires font" +msgstr "Hercules ·ļŪńŻė" + +#: engines/agi/detection.cpp:178 +msgid "Uses Hercules hires font, when font file is available." +msgstr "" + +#: engines/agi/detection.cpp:187 +msgid "Pause when entering commands" +msgstr "" + +#: engines/agi/detection.cpp:188 +msgid "" +"Shows a command prompt window and pauses the game (like in SCI) instead of a " +"real-time prompt." +msgstr "" + #: engines/agi/saveload.cpp:777 engines/avalanche/parser.cpp:1887 #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore game:" @@ -2364,13 +2436,13 @@ msgstr "ĆׯŠŅöęģ ÓćŪģŻī:" #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore" msgstr "ĆׯŠŅöęģ" -#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2377 +#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2374 #, c-format msgid "" "Failed to load game state from file:\n" @@ -2381,7 +2453,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2370 +#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2367 #, c-format msgid "" "Failed to save game state to file:\n" @@ -2392,7 +2464,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2388 +#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2385 #, c-format msgid "" "Successfully saved game state in file:\n" @@ -2638,29 +2710,39 @@ msgstr "" "ŠŌŚąėęģ ŠŌŪŠŌŠēŻćī ŚŠŻįŽŪģ ScummVM ö žŅÕįęö ŚŠÜŠŻŌć 'import_savefile'.\n" "\n" +#: engines/mohawk/detection.cpp:168 +msgid "Play the Myst fly by movie" +msgstr "" + +#: engines/mohawk/detection.cpp:169 +msgid "The Myst fly by movie was not played by the original engine." +msgstr "" + #. I18N: Option for fast scene switching -#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:167 +#: engines/mohawk/dialogs.cpp:96 engines/mohawk/dialogs.cpp:239 msgid "~Z~ip Mode Activated" msgstr "~Ą~ķÖėÜ åćāŚŠÓŠ ßÕąŠåŽŌć ŠŚāėŅŠŅŠŻė" -#: engines/mohawk/dialogs.cpp:93 +#: engines/mohawk/dialogs.cpp:97 msgid "~T~ransitions Enabled" msgstr "~æ~ÕąŠåŽŌė ŠŚāėŅŠŅŠŻė" #. I18N: Drop book page -#: engines/mohawk/dialogs.cpp:95 +#: engines/mohawk/dialogs.cpp:99 msgid "~D~rop Page" msgstr "~²~ėŚöŻćęģ įāŠąŽŻŚć" -#: engines/mohawk/dialogs.cpp:99 -msgid "~S~how Map" +#: engines/mohawk/dialogs.cpp:103 +#, fuzzy +msgid "Show ~M~ap" msgstr "æ~Š~ŚŠ×Šęģ ŚŠąāć" -#: engines/mohawk/dialogs.cpp:105 -msgid "~M~ain Menu" +#: engines/mohawk/dialogs.cpp:109 +#, fuzzy +msgid "Main Men~u~" msgstr "~³~ŠŪŽžŻŠÕ ÜÕŻī" -#: engines/mohawk/dialogs.cpp:168 +#: engines/mohawk/dialogs.cpp:240 msgid "~W~ater Effect Enabled" msgstr "~Ķ~äÕŚāė ŅŠŌė žŚŪīēŠŻė" @@ -2781,37 +2863,37 @@ msgstr "°ŪģāķąŻŠāėžŻė žįāćß" msgid "Use an alternative game intro (CD version only)" msgstr "²ėŚŠąėįāŽžŅŠęģ ŠŪģāķąŻŠāėžŻė žįāćß (āŽŪģŚö ŌŪļ CD-ŅÕąįöö ÓćŪģŻö)" -#: engines/sci/detection.cpp:374 +#: engines/sci/detection.cpp:380 msgid "Skip EGA dithering pass (full color backgrounds)" msgstr "½Õ ąŠŃöęģ ŠßąŠŚįöÜŠęėī ŚŽŪÕąŠž EGA (ߎžŻŠŚŠŪļąŽŅėļ 䎯ė)" -#: engines/sci/detection.cpp:375 +#: engines/sci/detection.cpp:381 msgid "Skip dithering pass in EGA games, graphics are shown with full colors" msgstr "" "æąŠßćįŚŠÕ ßąŠåŽŌ ŠßąŠŚįöÜŠęėö ŚŽŪÕąŠž EGA, ÓąŠäöŚŠ ŃćŌ×Õ ßŠŚŠ×ŠŻŠ × ćįöÜö " "ŚŽŪÕąŠÜö" -#: engines/sci/detection.cpp:384 +#: engines/sci/detection.cpp:390 msgid "Enable high resolution graphics" msgstr "ĆŚŪīēėęģ ŠŌŪīįāąŠŅŠŻŻÕ ÓąŠäöŚö ŅėįŽŚŠÓŠ ŠŌąŽ×ŻÕŻŻļ" -#: engines/sci/detection.cpp:385 +#: engines/sci/detection.cpp:391 msgid "Enable high resolution graphics/content" msgstr "ĆŚŪīēėęģ ÓąŠäöŚć ö ŚŠŻāķŻā ŅėįŽŚŠÓŠ ŠŌąŽ×ŻÕŻŻļ" -#: engines/sci/detection.cpp:394 +#: engines/sci/detection.cpp:400 msgid "Prefer digital sound effects" msgstr "°ŌŌŠŅŠęģ ßÕąŠŅŠÓć ŪöēŃŠŅėÜ Ó挊ŅėÜ ķäÕŚāŠÜ" -#: engines/sci/detection.cpp:395 +#: engines/sci/detection.cpp:401 msgid "Prefer digital sound effects instead of synthesized ones" msgstr "°ŌŌŠŅŠęģ ßÕąŠŅŠÓć ŪöēŃŠŅėÜ Ó挊ŅėÜ ķäÕŚāŠÜ ׊ÜÕįā įöŻāķ׊ŅŠŻėå" -#: engines/sci/detection.cpp:414 +#: engines/sci/detection.cpp:420 msgid "Use IMF/Yamaha FB-01 for MIDI output" msgstr "²ėŚŠąėįāŽžŅŠęģ IMF/Yamaha FB-01 ŌŪļ ŅėŅŠŌć MIDI" -#: engines/sci/detection.cpp:415 +#: engines/sci/detection.cpp:421 msgid "" "Use an IBM Music Feature card or a Yamaha FB-01 FM synth module for MIDI " "output" @@ -2819,37 +2901,46 @@ msgstr "" "²ėŚŠąėįāŽžŅŠęģ Ó挊Ņćī ŚŠąāć IBM Music Feature ęö ÜŽŌćŪģ įöŻāķ×ć Yamaha " "FB-01 FM ŌŪļ MIDI" -#: engines/sci/detection.cpp:425 +#: engines/sci/detection.cpp:431 msgid "Use CD audio" msgstr "²ėŚŠąėįāŽžŅŠęģ CD-ŠžŌėń" -#: engines/sci/detection.cpp:426 +#: engines/sci/detection.cpp:432 msgid "Use CD audio instead of in-game audio, if available" msgstr "" "²ėŚŠąėįāŽžŅŠęģ Ó挊Ņėļ ŌŠąŽÖŚö × CD ׊ÜÕįā Üć×ėŚö × äŠŁŪŠž ÓćŪģŻö (ŚŠŪö " "ŌŠįāć߯Š)" -#: engines/sci/detection.cpp:436 +#: engines/sci/detection.cpp:442 msgid "Use Windows cursors" msgstr "²ėŚŠąėįāŽžŅŠęģ ŚćąįŽąė Windows" -#: engines/sci/detection.cpp:437 +#: engines/sci/detection.cpp:443 msgid "" "Use the Windows cursors (smaller and monochrome) instead of the DOS ones" msgstr "" "²ėŚŠąėįāŽžŅŠęģ ŚćąįŽąė Windows (ÜÕŻčėļ ߊ ߊÜÕąė ö ŠŌŻŠŚŠŪļąŽŅėļ) ׊ÜÕįā " "ŚćąįŽąŠž DOS" -#: engines/sci/detection.cpp:447 +#: engines/sci/detection.cpp:453 msgid "Use silver cursors" msgstr "²ėŚŠąėįāŽžŅŠęģ įąķŃŻėļ ŚćąįŽąė" -#: engines/sci/detection.cpp:448 +#: engines/sci/detection.cpp:454 msgid "" "Use the alternate set of silver cursors, instead of the normal golden ones" msgstr "" "²ėŚŠąėįāŽžŅŠęģ ŠŪģāķąŻŠāėžŻė ŻŠŃŽą įąķŃŻėå ŚćąįŽąŠž ׊ÜÕįā ×ŅėēŠŁŻėå ׊ŪŠāėå" +#: engines/scumm/detection.cpp:1335 +#, fuzzy +msgid "Show Object Line" +msgstr "æŠŚŠ×ŅŠęģ ŻŠ×Ņė ŠŃ'ÕŚāŠž" + +#: engines/scumm/detection.cpp:1336 +msgid "Show the names of objects at the bottom of the screen" +msgstr "" + #: engines/scumm/dialogs.cpp:176 #, c-format msgid "Insert Disk %c and Press Button to Continue." @@ -3515,7 +3606,7 @@ msgstr "³ćēŻ. Üć×ėŚö: " msgid "Subtitle speed: " msgstr "ÅćāŚŠįęģ āėāąŠž: " -#: engines/scumm/scumm.cpp:1832 +#: engines/scumm/scumm.cpp:1829 #, c-format msgid "" "Native MIDI support requires the Roland Upgrade from LucasArts,\n" @@ -3524,7 +3615,7 @@ msgstr "" "ĄķÖėÜ \"ąŽŌŻŠÓŠ\" MIDI ߊāąŠŃćÕ ŠŃŻŠžŪÕŻŻÕ Roland Upgrade ŠŌ\n" "LucasArts, ŠŪÕ ŻÕ åŠßŠÕ %s. æÕąŠŚŪīēŠīįļ ŻŠ AdLib." -#: engines/scumm/scumm.cpp:2644 +#: engines/scumm/scumm.cpp:2645 msgid "" "Usually, Maniac Mansion would start now. But for that to work, the game " "files for Maniac Mansion have to be in the 'Maniac' directory inside the " @@ -3707,6 +3798,15 @@ msgstr "æŠŚŠ×ŅŠęģ ŻŠ×Ņė ŠŃ'ÕŚāŠž" msgid "Show labels for objects on mouse hover" msgstr "æŠŚŠ×ŅŠÕ ŻŠ×Ņė ŠŃ'ÕŚāŠž ßąė ŻŠŅļŌ×ÕŻŻö ŚćąįŽąŠ Üėčė" +#: engines/sword25/detection.cpp:46 +msgid "Use English speech" +msgstr "" + +#: engines/sword25/detection.cpp:47 +msgid "" +"Use English speech instead of German for every language other than German" +msgstr "" + #: engines/teenagent/resources.cpp:95 msgid "" "You're missing the 'teenagent.dat' file. Get it from the ScummVM website" diff --git a/po/ca_ES.po b/po/ca_ES.po index 857e7de99e..baffd40199 100644 --- a/po/ca_ES.po +++ b/po/ca_ES.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ScummVM 1.6.0git\n" "Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n" -"POT-Creation-Date: 2016-02-20 21:22+0000\n" +"POT-Creation-Date: 2016-04-07 08:55+0100\n" "PO-Revision-Date: 2013-05-05 14:16+0100\n" "Last-Translator: Jordi Vilalta Prat <jvprat@jvprat.com>\n" "Language-Team: Catalan <scummvm-devel@lists.sf.net>\n" @@ -53,10 +53,11 @@ msgstr "Amunt" #: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editrecorddialog.cpp:67 #: gui/filebrowser-dialog.cpp:64 gui/fluidsynth-dialog.cpp:152 #: gui/KeysDialog.cpp:43 gui/launcher.cpp:351 gui/massadd.cpp:95 -#: gui/options.cpp:1237 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 +#: gui/options.cpp:1255 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 #: gui/recorderdialog.cpp:156 gui/saveload-dialog.cpp:216 #: gui/saveload-dialog.cpp:276 gui/saveload-dialog.cpp:547 -#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 engines/engine.cpp:546 +#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 +#: gui/updates-dialog.cpp:113 engines/engine.cpp:546 #: backends/events/default/default-events.cpp:196 #: backends/events/default/default-events.cpp:218 #: backends/platform/wii/options.cpp:48 engines/drascula/saveload.cpp:49 @@ -171,7 +172,7 @@ msgstr "Sinus" msgid "Triangle" msgstr "Triangle" -#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1168 +#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1170 msgid "Misc" msgstr "Misc" @@ -205,12 +206,12 @@ msgstr "Retorna tots els ajustos de FluidSynth als seus valors per defecte." #: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:352 #: gui/launcher.cpp:1050 gui/launcher.cpp:1054 gui/massadd.cpp:92 -#: gui/options.cpp:1238 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 +#: gui/options.cpp:1256 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 #: engines/engine.cpp:476 backends/platform/wii/options.cpp:47 #: backends/platform/wince/CELauncherDialog.cpp:54 #: engines/agos/animation.cpp:558 engines/drascula/saveload.cpp:49 #: engines/groovie/script.cpp:408 engines/parallaction/saveload.cpp:274 -#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1834 +#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1831 #: engines/scumm/players/player_v3m.cpp:130 #: engines/scumm/players/player_v5m.cpp:108 engines/sky/compact.cpp:131 #: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:524 @@ -240,15 +241,15 @@ msgstr "Tanca" msgid "Mouse click" msgstr "Clic del ratolķ" -#: gui/gui-manager.cpp:126 base/main.cpp:322 +#: gui/gui-manager.cpp:126 base/main.cpp:325 msgid "Display keyboard" msgstr "Mostra el teclat" -#: gui/gui-manager.cpp:130 base/main.cpp:326 +#: gui/gui-manager.cpp:130 base/main.cpp:329 msgid "Remap keys" msgstr "Assigna les tecles" -#: gui/gui-manager.cpp:133 base/main.cpp:329 engines/scumm/help.cpp:87 +#: gui/gui-manager.cpp:133 base/main.cpp:332 engines/scumm/help.cpp:87 msgid "Toggle fullscreen" msgstr "Commuta la pantalla completa" @@ -324,8 +325,8 @@ msgstr "" "Idioma del joc. Aixņ no convertirą la vostra versió Espanyola del joc a " "Anglčs" -#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:87 -#: gui/options.cpp:735 gui/options.cpp:748 gui/options.cpp:1208 +#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:89 +#: gui/options.cpp:737 gui/options.cpp:750 gui/options.cpp:1210 #: audio/null.cpp:41 msgid "<default>" msgstr "<per defecte>" @@ -347,11 +348,11 @@ msgstr "Platafor.:" msgid "Engine" msgstr "Motor" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "Graphics" msgstr "Grąfics" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "GFX" msgstr "GFX" @@ -364,7 +365,7 @@ msgctxt "lowres" msgid "Override global graphic settings" msgstr "Canviar les opcions de grąfics" -#: gui/launcher.cpp:257 gui/options.cpp:1094 +#: gui/launcher.cpp:257 gui/options.cpp:1096 msgid "Audio" msgstr "Ąudio" @@ -377,11 +378,11 @@ msgctxt "lowres" msgid "Override global audio settings" msgstr "Canviar les opcions d'ąudio" -#: gui/launcher.cpp:271 gui/options.cpp:1099 +#: gui/launcher.cpp:271 gui/options.cpp:1101 msgid "Volume" msgstr "Volum" -#: gui/launcher.cpp:273 gui/options.cpp:1101 +#: gui/launcher.cpp:273 gui/options.cpp:1103 msgctxt "lowres" msgid "Volume" msgstr "Volum" @@ -395,7 +396,7 @@ msgctxt "lowres" msgid "Override global volume settings" msgstr "Canviar les opcions de volum" -#: gui/launcher.cpp:286 gui/options.cpp:1109 +#: gui/launcher.cpp:286 gui/options.cpp:1111 msgid "MIDI" msgstr "MIDI" @@ -408,7 +409,7 @@ msgctxt "lowres" msgid "Override global MIDI settings" msgstr "Canviar les opcions de MIDI" -#: gui/launcher.cpp:300 gui/options.cpp:1115 +#: gui/launcher.cpp:300 gui/options.cpp:1117 msgid "MT-32" msgstr "MT-32" @@ -421,11 +422,11 @@ msgctxt "lowres" msgid "Override global MT-32 settings" msgstr "Canviar les opcions de MT-32" -#: gui/launcher.cpp:314 gui/options.cpp:1122 +#: gui/launcher.cpp:314 gui/options.cpp:1124 msgid "Paths" msgstr "Camins" -#: gui/launcher.cpp:316 gui/options.cpp:1124 +#: gui/launcher.cpp:316 gui/options.cpp:1126 msgctxt "lowres" msgid "Paths" msgstr "Camins" @@ -439,7 +440,7 @@ msgctxt "lowres" msgid "Game Path:" msgstr "Camķ joc:" -#: gui/launcher.cpp:330 gui/options.cpp:1148 +#: gui/launcher.cpp:330 gui/options.cpp:1150 msgid "Extra Path:" msgstr "Camķ extra:" @@ -447,42 +448,42 @@ msgstr "Camķ extra:" msgid "Specifies path to additional data used by the game" msgstr "Especifica el camķ de dades addicionals utilitzades pel joc" -#: gui/launcher.cpp:332 gui/options.cpp:1150 +#: gui/launcher.cpp:332 gui/options.cpp:1152 msgctxt "lowres" msgid "Extra Path:" msgstr "Camķ extra:" -#: gui/launcher.cpp:339 gui/options.cpp:1132 +#: gui/launcher.cpp:339 gui/options.cpp:1134 msgid "Save Path:" msgstr "Camķ de partides:" #: gui/launcher.cpp:339 gui/launcher.cpp:341 gui/launcher.cpp:342 -#: gui/options.cpp:1132 gui/options.cpp:1134 gui/options.cpp:1135 +#: gui/options.cpp:1134 gui/options.cpp:1136 gui/options.cpp:1137 msgid "Specifies where your saved games are put" msgstr "Especifica on es desaran les partides" -#: gui/launcher.cpp:341 gui/options.cpp:1134 +#: gui/launcher.cpp:341 gui/options.cpp:1136 msgctxt "lowres" msgid "Save Path:" msgstr "Partides:" #: gui/launcher.cpp:360 gui/launcher.cpp:459 gui/launcher.cpp:517 -#: gui/launcher.cpp:571 gui/options.cpp:1143 gui/options.cpp:1151 -#: gui/options.cpp:1160 gui/options.cpp:1275 gui/options.cpp:1281 -#: gui/options.cpp:1289 gui/options.cpp:1319 gui/options.cpp:1325 -#: gui/options.cpp:1332 gui/options.cpp:1425 gui/options.cpp:1428 -#: gui/options.cpp:1440 +#: gui/launcher.cpp:571 gui/options.cpp:1145 gui/options.cpp:1153 +#: gui/options.cpp:1162 gui/options.cpp:1293 gui/options.cpp:1299 +#: gui/options.cpp:1307 gui/options.cpp:1337 gui/options.cpp:1343 +#: gui/options.cpp:1350 gui/options.cpp:1456 gui/options.cpp:1459 +#: gui/options.cpp:1471 msgctxt "path" msgid "None" msgstr "Cap" #: gui/launcher.cpp:365 gui/launcher.cpp:465 gui/launcher.cpp:575 -#: gui/options.cpp:1269 gui/options.cpp:1313 gui/options.cpp:1431 +#: gui/options.cpp:1287 gui/options.cpp:1331 gui/options.cpp:1462 #: backends/platform/wii/options.cpp:56 msgid "Default" msgstr "Per defecte" -#: gui/launcher.cpp:510 gui/options.cpp:1434 +#: gui/launcher.cpp:510 gui/options.cpp:1465 msgid "Select SoundFont" msgstr "Seleccioneu el fitxer SoundFont" @@ -494,7 +495,7 @@ msgstr "Seleccioneu el directori amb les dades del joc" msgid "Select additional game directory" msgstr "Seleccioneu el directori addicional del joc" -#: gui/launcher.cpp:559 gui/options.cpp:1377 +#: gui/launcher.cpp:559 gui/options.cpp:1408 msgid "Select directory for saved games" msgstr "Seleccioneu el directori de les partides desades" @@ -503,7 +504,7 @@ msgid "This game ID is already taken. Please choose another one." msgstr "" "Aquest identificador de joc ja estą en śs. Si us plau, trieu-ne un altre." -#: gui/launcher.cpp:626 engines/dialogs.cpp:111 +#: gui/launcher.cpp:626 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:115 msgid "~Q~uit" msgstr "~T~anca" @@ -593,17 +594,18 @@ msgid "Search:" msgstr "Cerca:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214 -#: engines/mohawk/riven.cpp:718 engines/pegasus/pegasus.cpp:353 -#: engines/tsage/scenes.cpp:600 +#: engines/mohawk/dialogs.cpp:120 engines/mohawk/riven.cpp:718 +#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:600 msgid "Load game:" msgstr "Carrega partida:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 #: backends/platform/wince/CEActionsPocket.cpp:267 #: backends/platform/wince/CEActionsSmartphone.cpp:231 -#: engines/cruise/menu.cpp:214 engines/mohawk/riven.cpp:718 -#: engines/parallaction/saveload.cpp:197 engines/pegasus/pegasus.cpp:353 -#: engines/scumm/dialogs.cpp:189 engines/tsage/scenes.cpp:600 +#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:120 +#: engines/mohawk/riven.cpp:718 engines/parallaction/saveload.cpp:197 +#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:189 +#: engines/tsage/scenes.cpp:600 msgid "Load" msgstr "Carrega" @@ -695,132 +697,132 @@ msgstr "Commuta" msgid "Fast replay" msgstr "Mode rąpid" -#: gui/options.cpp:85 +#: gui/options.cpp:87 common/updates.cpp:56 msgid "Never" msgstr "Mai" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 5 mins" msgstr "cada 5 minuts" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 10 mins" msgstr "cada 10 minuts" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 15 mins" msgstr "cada 15 minuts" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 30 mins" msgstr "cada 30 minuts" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "8 kHz" msgstr "8 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "11 kHz" msgstr "11 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "22 kHz" msgstr "22 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "44 kHz" msgstr "44 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "48 kHz" msgstr "48 kHz" -#: gui/options.cpp:255 gui/options.cpp:479 gui/options.cpp:580 -#: gui/options.cpp:649 gui/options.cpp:857 +#: gui/options.cpp:257 gui/options.cpp:481 gui/options.cpp:582 +#: gui/options.cpp:651 gui/options.cpp:859 msgctxt "soundfont" msgid "None" msgstr "Cap" -#: gui/options.cpp:389 +#: gui/options.cpp:391 msgid "Failed to apply some of the graphic options changes:" msgstr "No s'han pogut aplicar alguns canvis de les opcions grąfiques:" -#: gui/options.cpp:401 +#: gui/options.cpp:403 msgid "the video mode could not be changed." msgstr "no s'ha pogut canviar el mode de vķdeo" -#: gui/options.cpp:407 +#: gui/options.cpp:409 msgid "the fullscreen setting could not be changed" msgstr "no s'ha pogut canviar l'ajust de pantalla completa" -#: gui/options.cpp:413 +#: gui/options.cpp:415 msgid "the aspect ratio setting could not be changed" msgstr "no s'ha pogut canviar l'ajust de la correcció d'aspecte" -#: gui/options.cpp:732 +#: gui/options.cpp:734 msgid "Graphics mode:" msgstr "Mode grąfic:" -#: gui/options.cpp:746 +#: gui/options.cpp:748 msgid "Render mode:" msgstr "Mode de pintat:" -#: gui/options.cpp:746 gui/options.cpp:747 +#: gui/options.cpp:748 gui/options.cpp:749 msgid "Special dithering modes supported by some games" msgstr "Modes de tramat especials suportats per alguns jocs" -#: gui/options.cpp:758 +#: gui/options.cpp:760 #: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2316 msgid "Fullscreen mode" msgstr "Mode pantalla completa" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Aspect ratio correction" msgstr "Correcció de la relació d'aspecte" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Correct aspect ratio for 320x200 games" msgstr "Corregeix la relació d'aspecte per jocs de 320x200" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Preferred Device:" msgstr "Disp. preferit:" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Music Device:" msgstr "Disp. de mśsica:" -#: gui/options.cpp:769 gui/options.cpp:771 +#: gui/options.cpp:771 gui/options.cpp:773 msgid "Specifies preferred sound device or sound card emulator" msgstr "Especifica el dispositiu de so o l'emulador de tarja de so preferit" -#: gui/options.cpp:769 gui/options.cpp:771 gui/options.cpp:772 +#: gui/options.cpp:771 gui/options.cpp:773 gui/options.cpp:774 msgid "Specifies output sound device or sound card emulator" msgstr "Especifica el dispositiu de so o l'emulador de tarja de so de sortida" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Preferred Dev.:" msgstr "Disp. preferit:" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Music Device:" msgstr "Disp. de mśsica:" -#: gui/options.cpp:798 +#: gui/options.cpp:800 msgid "AdLib emulator:" msgstr "Emulador AdLib:" -#: gui/options.cpp:798 gui/options.cpp:799 +#: gui/options.cpp:800 gui/options.cpp:801 msgid "AdLib is used for music in many games" msgstr "AdLib s'utilitza per la mśsica de molts jocs" -#: gui/options.cpp:809 +#: gui/options.cpp:811 msgid "Output rate:" msgstr "Freq. sortida:" -#: gui/options.cpp:809 gui/options.cpp:810 +#: gui/options.cpp:811 gui/options.cpp:812 msgid "" "Higher value specifies better sound quality but may be not supported by your " "soundcard" @@ -828,67 +830,67 @@ msgstr "" "Valors més alts especifiquen millor qualitat de so perņ pot ser que la " "vostra tarja de so no ho suporti" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "GM Device:" msgstr "Dispositiu GM:" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "Specifies default sound device for General MIDI output" msgstr "" "Especifica el dispositiu de so per defecte per a la sortida General MIDI" -#: gui/options.cpp:831 +#: gui/options.cpp:833 msgid "Don't use General MIDI music" msgstr "No utilitzis mśsica General MIDI" -#: gui/options.cpp:842 gui/options.cpp:908 +#: gui/options.cpp:844 gui/options.cpp:910 msgid "Use first available device" msgstr "Utilitza el primer dispositiu disponible" -#: gui/options.cpp:854 +#: gui/options.cpp:856 msgid "SoundFont:" msgstr "Fitxer SoundFont:" -#: gui/options.cpp:854 gui/options.cpp:856 gui/options.cpp:857 +#: gui/options.cpp:856 gui/options.cpp:858 gui/options.cpp:859 msgid "SoundFont is supported by some audio cards, FluidSynth and Timidity" msgstr "Algunes targes de so, FluidSynth i Timidity suporten SoundFont" -#: gui/options.cpp:856 +#: gui/options.cpp:858 msgctxt "lowres" msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Mixed AdLib/MIDI mode" msgstr "Mode combinat AdLib/MIDI" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Use both MIDI and AdLib sound generation" msgstr "Utilitza MIDI i la generació de so AdLib alhora" -#: gui/options.cpp:865 +#: gui/options.cpp:867 msgid "MIDI gain:" msgstr "Guany MIDI:" -#: gui/options.cpp:872 +#: gui/options.cpp:874 msgid "FluidSynth Settings" msgstr "Configuració de FluidSynth" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "MT-32 Device:" msgstr "Disposit. MT-32:" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output" msgstr "" "Especifica el dispositiu de so per defecte per a la sortida de Roland MT-32/" "LAPC1/CM32l/CM64" -#: gui/options.cpp:884 +#: gui/options.cpp:886 msgid "True Roland MT-32 (disable GM emulation)" msgstr "Roland MT-32 real (desactiva l'emulació GM)" -#: gui/options.cpp:884 gui/options.cpp:886 +#: gui/options.cpp:886 gui/options.cpp:888 msgid "" "Check if you want to use your real hardware Roland-compatible sound device " "connected to your computer" @@ -896,189 +898,201 @@ msgstr "" "Marqueu si voleu utilitzar el vostre dispositiu hardware real de so " "compatible amb Roland connectat al vostre ordinador" -#: gui/options.cpp:886 +#: gui/options.cpp:888 msgctxt "lowres" msgid "True Roland MT-32 (no GM emulation)" msgstr "Roland MT-32 real (sense emulació GM)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 #, fuzzy msgid "Roland GS Device (enable MT-32 mappings)" msgstr "Mode Roland GS (desactiva el mapeig GM)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "" "Check if you want to enable patch mappings to emulate an MT-32 on a Roland " "GS device" msgstr "" -#: gui/options.cpp:898 +#: gui/options.cpp:900 msgid "Don't use Roland MT-32 music" msgstr "No utilitzis mśsica de Roland MT-32" -#: gui/options.cpp:925 +#: gui/options.cpp:927 msgid "Text and Speech:" msgstr "Text i Veus:" -#: gui/options.cpp:929 gui/options.cpp:939 +#: gui/options.cpp:931 gui/options.cpp:941 msgid "Speech" msgstr "Veus" -#: gui/options.cpp:930 gui/options.cpp:940 +#: gui/options.cpp:932 gui/options.cpp:942 msgid "Subtitles" msgstr "Subtķtols" -#: gui/options.cpp:931 +#: gui/options.cpp:933 msgid "Both" msgstr "Ambdós" -#: gui/options.cpp:933 +#: gui/options.cpp:935 msgid "Subtitle speed:" msgstr "Velocitat de subt.:" -#: gui/options.cpp:935 +#: gui/options.cpp:937 msgctxt "lowres" msgid "Text and Speech:" msgstr "Text i Veus:" -#: gui/options.cpp:939 +#: gui/options.cpp:941 msgid "Spch" msgstr "Veus" -#: gui/options.cpp:940 +#: gui/options.cpp:942 msgid "Subs" msgstr "Subt" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgctxt "lowres" msgid "Both" msgstr "Ambdós" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgid "Show subtitles and play speech" msgstr "Mostra els subtķtols i reprodueix la veu" -#: gui/options.cpp:943 +#: gui/options.cpp:945 msgctxt "lowres" msgid "Subtitle speed:" msgstr "Veloc. de subt.:" -#: gui/options.cpp:959 +#: gui/options.cpp:961 msgid "Music volume:" msgstr "Volum de mśsica:" -#: gui/options.cpp:961 +#: gui/options.cpp:963 msgctxt "lowres" msgid "Music volume:" msgstr "Volum de mśsica:" -#: gui/options.cpp:968 +#: gui/options.cpp:970 msgid "Mute All" msgstr "Silenciar tot" -#: gui/options.cpp:971 +#: gui/options.cpp:973 msgid "SFX volume:" msgstr "Volum d'efectes:" -#: gui/options.cpp:971 gui/options.cpp:973 gui/options.cpp:974 +#: gui/options.cpp:973 gui/options.cpp:975 gui/options.cpp:976 msgid "Special sound effects volume" msgstr "Volum dels sons d'efectes especials" -#: gui/options.cpp:973 +#: gui/options.cpp:975 msgctxt "lowres" msgid "SFX volume:" msgstr "Volum d'efectes:" -#: gui/options.cpp:981 +#: gui/options.cpp:983 msgid "Speech volume:" msgstr "Volum de veus:" -#: gui/options.cpp:983 +#: gui/options.cpp:985 msgctxt "lowres" msgid "Speech volume:" msgstr "Volum de veus:" -#: gui/options.cpp:1140 +#: gui/options.cpp:1142 msgid "Theme Path:" msgstr "Camķ dels temes:" -#: gui/options.cpp:1142 +#: gui/options.cpp:1144 msgctxt "lowres" msgid "Theme Path:" msgstr "Camķ temes:" -#: gui/options.cpp:1148 gui/options.cpp:1150 gui/options.cpp:1151 +#: gui/options.cpp:1150 gui/options.cpp:1152 gui/options.cpp:1153 msgid "Specifies path to additional data used by all games or ScummVM" msgstr "" "Especifica el camķ de les dades addicionals utilitzades per tots els jocs o " "pel ScummVM" -#: gui/options.cpp:1157 +#: gui/options.cpp:1159 msgid "Plugins Path:" msgstr "Camķ dels connectors:" -#: gui/options.cpp:1159 +#: gui/options.cpp:1161 msgctxt "lowres" msgid "Plugins Path:" msgstr "Camķ de connectors:" -#: gui/options.cpp:1170 +#: gui/options.cpp:1172 msgctxt "lowres" msgid "Misc" msgstr "Misc" -#: gui/options.cpp:1172 +#: gui/options.cpp:1174 msgid "Theme:" msgstr "Tema:" -#: gui/options.cpp:1176 +#: gui/options.cpp:1178 msgid "GUI Renderer:" msgstr "Pintat GUI:" -#: gui/options.cpp:1188 +#: gui/options.cpp:1190 msgid "Autosave:" msgstr "Desat automątic:" -#: gui/options.cpp:1190 +#: gui/options.cpp:1192 msgctxt "lowres" msgid "Autosave:" msgstr "Auto-desat:" -#: gui/options.cpp:1198 +#: gui/options.cpp:1200 msgid "Keys" msgstr "Tecles" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "GUI Language:" msgstr "Idioma GUI:" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "Language of ScummVM GUI" msgstr "Idioma de la interfķcie d'usuari de ScummVM" -#: gui/options.cpp:1364 +#: gui/options.cpp:1235 +msgid "Update check:" +msgstr "" + +#: gui/options.cpp:1235 +msgid "How often to check ScummVM updates" +msgstr "" + +#: gui/options.cpp:1247 +msgid "Check now" +msgstr "" + +#: gui/options.cpp:1382 msgid "You have to restart ScummVM before your changes will take effect." msgstr "Heu de reiniciar ScummVM perquč tots els canvis tinguin efecte." -#: gui/options.cpp:1384 +#: gui/options.cpp:1415 msgid "The chosen directory cannot be written to. Please select another one." msgstr "" "No es pot escriure al directori seleccionat. Si us plau, escolliu-ne un " "altre." -#: gui/options.cpp:1393 +#: gui/options.cpp:1424 msgid "Select directory for GUI themes" msgstr "Seleccioneu el directori dels temes" -#: gui/options.cpp:1403 +#: gui/options.cpp:1434 msgid "Select directory for extra files" msgstr "Seleccioneu el directori dels fitxers extra" -#: gui/options.cpp:1414 +#: gui/options.cpp:1445 msgid "Select directory for plugins" msgstr "Seleccioneu el directori dels connectors" -#: gui/options.cpp:1467 +#: gui/options.cpp:1498 msgid "" "The theme you selected does not support your current language. If you want " "to use this theme you need to switch to another language first." @@ -1258,39 +1272,60 @@ msgstr "Pintat amb antialias (16bpp)" msgid "Antialiased" msgstr "Amb antialias (16bpp)" -#: gui/widget.cpp:323 gui/widget.cpp:325 gui/widget.cpp:331 gui/widget.cpp:333 +#: gui/updates-dialog.cpp:51 +msgid "" +"ScummVM now supports automatic check for updates\n" +"which requires access to the Internet.\n" +"\n" +"Would you like to enable this feature?" +msgstr "" + +#: gui/updates-dialog.cpp:55 +msgid "(You can always enable it in the options dialog on the Misc tab)" +msgstr "" + +#: gui/updates-dialog.cpp:92 +#, fuzzy +msgid "Check for updates automatically" +msgstr "Comprova les actualitzacions..." + +#: gui/updates-dialog.cpp:111 +msgid "Proceed" +msgstr "" + +#: gui/widget.cpp:327 gui/widget.cpp:329 gui/widget.cpp:335 gui/widget.cpp:337 msgid "Clear value" msgstr "Neteja el valor" -#: base/main.cpp:237 +#: base/main.cpp:240 #, c-format msgid "Engine does not support debug level '%s'" msgstr "El motor no suporta el nivell de depuració '%s'" -#: base/main.cpp:309 +#: base/main.cpp:312 msgid "Menu" msgstr "Menś" -#: base/main.cpp:312 backends/platform/symbian/src/SymbianActions.cpp:45 +#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:45 #: backends/platform/wince/CEActionsPocket.cpp:45 #: backends/platform/wince/CEActionsSmartphone.cpp:46 msgid "Skip" msgstr "Salta" -#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:50 +#: base/main.cpp:318 backends/platform/symbian/src/SymbianActions.cpp:50 #: backends/platform/wince/CEActionsPocket.cpp:42 msgid "Pause" msgstr "Pausa" -#: base/main.cpp:318 +#: base/main.cpp:321 msgid "Skip line" msgstr "Salta la lķnia" -#: base/main.cpp:510 +#: base/main.cpp:520 msgid "Error running game:" msgstr "Error al executar el joc:" -#: base/main.cpp:557 +#: base/main.cpp:567 msgid "Could not find any engine capable of running the selected game" msgstr "No s'ha pogut trobar cap motor capaē d'executar el joc seleccionat" @@ -1385,17 +1420,34 @@ msgctxt "lowres" msgid "Hercules Amber" msgstr "" -#: engines/advancedDetector.cpp:317 +#: common/updates.cpp:58 +msgid "Daily" +msgstr "" + +#: common/updates.cpp:60 +msgid "Weekly" +msgstr "" + +#: common/updates.cpp:62 +msgid "Monthly" +msgstr "" + +#: common/updates.cpp:64 +#, fuzzy +msgid "<Bad value>" +msgstr "Neteja el valor" + +#: engines/advancedDetector.cpp:334 #, c-format msgid "The game in '%s' seems to be unknown." msgstr "El joc a '%s' sembla ser desconegut." -#: engines/advancedDetector.cpp:318 +#: engines/advancedDetector.cpp:335 msgid "Please, report the following data to the ScummVM team along with name" msgstr "" "Informeu de la següent informació a l'equip de ScummVM juntament amb el" -#: engines/advancedDetector.cpp:320 +#: engines/advancedDetector.cpp:337 msgid "of the game you tried to add and its version/language/etc.:" msgstr "nom del joc que heu provat d'afegir i la seva versió/llengua/etc.:" @@ -1403,11 +1455,11 @@ msgstr "nom del joc que heu provat d'afegir i la seva versió/llengua/etc.:" msgid "~R~esume" msgstr "~C~ontinua" -#: engines/dialogs.cpp:87 +#: engines/dialogs.cpp:87 engines/mohawk/dialogs.cpp:113 msgid "~L~oad" msgstr "C~a~rrega" -#: engines/dialogs.cpp:91 +#: engines/dialogs.cpp:91 engines/mohawk/dialogs.cpp:114 msgid "~S~ave" msgstr "~D~esa" @@ -1436,9 +1488,9 @@ msgstr "~R~etorna al Llanēador" #: engines/avalanche/parser.cpp:1899 engines/cge/events.cpp:74 #: engines/cge2/events.cpp:67 engines/cruise/menu.cpp:212 #: engines/drascula/saveload.cpp:336 engines/dreamweb/saveload.cpp:261 -#: engines/hugo/file.cpp:298 engines/neverhood/menumodule.cpp:877 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/hugo/file.cpp:298 engines/mohawk/dialogs.cpp:121 +#: engines/neverhood/menumodule.cpp:877 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save game:" @@ -1453,9 +1505,10 @@ msgstr "Desa la partida:" #: engines/cge/events.cpp:74 engines/cge2/events.cpp:67 #: engines/cruise/menu.cpp:212 engines/drascula/saveload.cpp:336 #: engines/dreamweb/saveload.cpp:261 engines/hugo/file.cpp:298 -#: engines/neverhood/menumodule.cpp:877 engines/parallaction/saveload.cpp:212 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/scumm/dialogs.cpp:188 engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/mohawk/dialogs.cpp:121 engines/neverhood/menumodule.cpp:877 +#: engines/parallaction/saveload.cpp:212 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/scumm/dialogs.cpp:188 +#: engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save" @@ -1479,13 +1532,13 @@ msgstr "" "No s'ha pogut desar la partida (%s)! Consulteu el fitxer README per a la " "informació bąsica i les instruccions sobre com obtenir més assistčncia." -#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:109 -#: engines/mohawk/dialogs.cpp:170 engines/tsage/dialogs.cpp:106 +#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:117 +#: engines/mohawk/dialogs.cpp:242 engines/tsage/dialogs.cpp:106 msgid "~O~K" msgstr "~D~'acord" -#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:110 -#: engines/mohawk/dialogs.cpp:171 engines/tsage/dialogs.cpp:107 +#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:118 +#: engines/mohawk/dialogs.cpp:243 engines/tsage/dialogs.cpp:107 msgid "~C~ancel" msgstr "~C~ancel·la" @@ -1642,11 +1695,11 @@ msgstr "" msgid "PC-98 Audio" msgstr "Ąudio" -#: audio/softsynth/mt32.cpp:200 +#: audio/softsynth/mt32.cpp:196 msgid "Initializing MT-32 Emulator" msgstr "Iniciant l'Emulador de MT-32" -#: audio/softsynth/mt32.cpp:426 +#: audio/softsynth/mt32.cpp:434 msgid "MT-32 Emulator" msgstr "Emulador de MT-32" @@ -1764,12 +1817,12 @@ msgstr "" msgid "Swipe three fingers to the right to toggle." msgstr "" -#: backends/graphics/opengl/opengl-graphics.cpp:119 +#: backends/graphics/opengl/opengl-graphics.cpp:126 #, fuzzy msgid "OpenGL" msgstr "Obre" -#: backends/graphics/opengl/opengl-graphics.cpp:120 +#: backends/graphics/opengl/opengl-graphics.cpp:127 msgid "OpenGL (No filtering)" msgstr "" @@ -2322,20 +2375,20 @@ msgstr "" "No us oblideu d'assignar una tecla a l'acció 'Ocultar la barra d'eines' per " "veure l'inventari complet" -#: backends/updates/macosx/macosx-updates.mm:67 +#: backends/updates/macosx/macosx-updates.mm:68 msgid "Check for Updates..." msgstr "Comprova les actualitzacions..." #: engines/agi/detection.cpp:147 engines/cine/detection.cpp:70 #: engines/drascula/detection.cpp:302 engines/dreamweb/detection.cpp:47 -#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:404 +#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:410 #: engines/toltecs/detection.cpp:200 engines/zvision/detection_tables.h:51 msgid "Use original save/load screens" msgstr "Utilitza les pantalles originals de desat/cąrrega" #: engines/agi/detection.cpp:148 engines/cine/detection.cpp:71 #: engines/drascula/detection.cpp:303 engines/dreamweb/detection.cpp:48 -#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:405 +#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:411 #: engines/toltecs/detection.cpp:201 msgid "Use the original save/load screens, instead of the ScummVM ones" msgstr "" @@ -2362,11 +2415,29 @@ msgid "" "Enables mouse support. Allows to use mouse for movement and in game menus." msgstr "" +#: engines/agi/detection.cpp:177 +msgid "Use Hercules hires font" +msgstr "" + +#: engines/agi/detection.cpp:178 +msgid "Uses Hercules hires font, when font file is available." +msgstr "" + +#: engines/agi/detection.cpp:187 +msgid "Pause when entering commands" +msgstr "" + +#: engines/agi/detection.cpp:188 +msgid "" +"Shows a command prompt window and pauses the game (like in SCI) instead of a " +"real-time prompt." +msgstr "" + #: engines/agi/saveload.cpp:777 engines/avalanche/parser.cpp:1887 #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore game:" @@ -2376,13 +2447,13 @@ msgstr "Recupera la partida:" #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore" msgstr "Restaura" -#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2377 +#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2374 #, c-format msgid "" "Failed to load game state from file:\n" @@ -2393,7 +2464,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2370 +#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2367 #, c-format msgid "" "Failed to save game state to file:\n" @@ -2404,7 +2475,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2388 +#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2385 #, c-format msgid "" "Successfully saved game state in file:\n" @@ -2638,29 +2709,39 @@ msgid "" "\n" msgstr "" +#: engines/mohawk/detection.cpp:168 +msgid "Play the Myst fly by movie" +msgstr "" + +#: engines/mohawk/detection.cpp:169 +msgid "The Myst fly by movie was not played by the original engine." +msgstr "" + #. I18N: Option for fast scene switching -#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:167 +#: engines/mohawk/dialogs.cpp:96 engines/mohawk/dialogs.cpp:239 msgid "~Z~ip Mode Activated" msgstr "Mode ~Z~ip activat" -#: engines/mohawk/dialogs.cpp:93 +#: engines/mohawk/dialogs.cpp:97 msgid "~T~ransitions Enabled" msgstr "~T~ransicions activades" #. I18N: Drop book page -#: engines/mohawk/dialogs.cpp:95 +#: engines/mohawk/dialogs.cpp:99 msgid "~D~rop Page" msgstr "~D~escarta la pągina" -#: engines/mohawk/dialogs.cpp:99 -msgid "~S~how Map" +#: engines/mohawk/dialogs.cpp:103 +#, fuzzy +msgid "Show ~M~ap" msgstr "~M~ostra el mapa" -#: engines/mohawk/dialogs.cpp:105 -msgid "~M~ain Menu" +#: engines/mohawk/dialogs.cpp:109 +#, fuzzy +msgid "Main Men~u~" msgstr "~M~enś Principal" -#: engines/mohawk/dialogs.cpp:168 +#: engines/mohawk/dialogs.cpp:240 msgid "~W~ater Effect Enabled" msgstr "~E~fecte de l'aigua activat" @@ -2784,37 +2865,37 @@ msgstr "Introducció alternativa" msgid "Use an alternative game intro (CD version only)" msgstr "Utilitza una introducció del joc alternativa (només per la versió CD)" -#: engines/sci/detection.cpp:374 +#: engines/sci/detection.cpp:380 msgid "Skip EGA dithering pass (full color backgrounds)" msgstr "" -#: engines/sci/detection.cpp:375 +#: engines/sci/detection.cpp:381 msgid "Skip dithering pass in EGA games, graphics are shown with full colors" msgstr "" -#: engines/sci/detection.cpp:384 +#: engines/sci/detection.cpp:390 #, fuzzy msgid "Enable high resolution graphics" msgstr "Activa la barra grąfica dels punts d'impacte" -#: engines/sci/detection.cpp:385 +#: engines/sci/detection.cpp:391 #, fuzzy msgid "Enable high resolution graphics/content" msgstr "Activa la barra grąfica dels punts d'impacte" -#: engines/sci/detection.cpp:394 +#: engines/sci/detection.cpp:400 msgid "Prefer digital sound effects" msgstr "Prefereix efectes de so digitals" -#: engines/sci/detection.cpp:395 +#: engines/sci/detection.cpp:401 msgid "Prefer digital sound effects instead of synthesized ones" msgstr "Prefereix els efectes de so digitals en lloc dels sintetitzats" -#: engines/sci/detection.cpp:414 +#: engines/sci/detection.cpp:420 msgid "Use IMF/Yamaha FB-01 for MIDI output" msgstr "Utilitza IMF/Yamaha FB-01 per la sortida MIDI" -#: engines/sci/detection.cpp:415 +#: engines/sci/detection.cpp:421 msgid "" "Use an IBM Music Feature card or a Yamaha FB-01 FM synth module for MIDI " "output" @@ -2822,37 +2903,46 @@ msgstr "" "Utilitza una tarja IBM Music Feature o un mņdul sintetitzador Yamaha FB-01 " "FM per la sortida MIDI" -#: engines/sci/detection.cpp:425 +#: engines/sci/detection.cpp:431 msgid "Use CD audio" msgstr "Utilitza l'ąudio del CD" -#: engines/sci/detection.cpp:426 +#: engines/sci/detection.cpp:432 msgid "Use CD audio instead of in-game audio, if available" msgstr "" "Utilitza l'ąudio del CD en lloc de l'ąudio intern del joc, si estą disponible" -#: engines/sci/detection.cpp:436 +#: engines/sci/detection.cpp:442 msgid "Use Windows cursors" msgstr "Utilitza els cursors de Windows" -#: engines/sci/detection.cpp:437 +#: engines/sci/detection.cpp:443 msgid "" "Use the Windows cursors (smaller and monochrome) instead of the DOS ones" msgstr "" "Utilitza els cursors de Windows (més petits i en blanc i negre) en lloc dels " "de DOS" -#: engines/sci/detection.cpp:447 +#: engines/sci/detection.cpp:453 msgid "Use silver cursors" msgstr "Utilitza cursors platejats" -#: engines/sci/detection.cpp:448 +#: engines/sci/detection.cpp:454 msgid "" "Use the alternate set of silver cursors, instead of the normal golden ones" msgstr "" "Utilitza el conjunt alternatiu de cursors platejats, en lloc dels normals " "daurats" +#: engines/scumm/detection.cpp:1335 +#, fuzzy +msgid "Show Object Line" +msgstr "Mostra les etiquetes dels objectes" + +#: engines/scumm/detection.cpp:1336 +msgid "Show the names of objects at the bottom of the screen" +msgstr "" + #: engines/scumm/dialogs.cpp:176 #, c-format msgid "Insert Disk %c and Press Button to Continue." @@ -3524,7 +3614,7 @@ msgstr "Volum de mśsica:" msgid "Subtitle speed: " msgstr "Velocitat de subt.:" -#: engines/scumm/scumm.cpp:1832 +#: engines/scumm/scumm.cpp:1829 #, c-format msgid "" "Native MIDI support requires the Roland Upgrade from LucasArts,\n" @@ -3533,7 +3623,7 @@ msgstr "" "El suport de MIDI natiu requereix l'actualització Roland de LucasArts,\n" "perņ no s'ha trobat %s. S'utilitzarą AdLib." -#: engines/scumm/scumm.cpp:2644 +#: engines/scumm/scumm.cpp:2645 #, fuzzy msgid "" "Usually, Maniac Mansion would start now. But for that to work, the game " @@ -3713,6 +3803,15 @@ msgstr "Mostra les etiquetes dels objectes" msgid "Show labels for objects on mouse hover" msgstr "Mostra etiquetes al posar el ratolķ sobre els objectes" +#: engines/sword25/detection.cpp:46 +msgid "Use English speech" +msgstr "" + +#: engines/sword25/detection.cpp:47 +msgid "" +"Use English speech instead of German for every language other than German" +msgstr "" + #: engines/teenagent/resources.cpp:95 msgid "" "You're missing the 'teenagent.dat' file. Get it from the ScummVM website" diff --git a/po/cs_CZ.po b/po/cs_CZ.po index 3a308f977c..3a72b20898 100644 --- a/po/cs_CZ.po +++ b/po/cs_CZ.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ScummVM 1.7.0git\n" "Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n" -"POT-Creation-Date: 2016-02-20 21:22+0000\n" +"POT-Creation-Date: 2016-04-07 08:55+0100\n" "PO-Revision-Date: 2016-02-03 22:59+0100\n" "Last-Translator: Zbynģk Schwarz <zbynek.schwarz@gmail.com>\n" "Language-Team: \n" @@ -57,10 +57,11 @@ msgstr "Jķt nahoru" #: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editrecorddialog.cpp:67 #: gui/filebrowser-dialog.cpp:64 gui/fluidsynth-dialog.cpp:152 #: gui/KeysDialog.cpp:43 gui/launcher.cpp:351 gui/massadd.cpp:95 -#: gui/options.cpp:1237 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 +#: gui/options.cpp:1255 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 #: gui/recorderdialog.cpp:156 gui/saveload-dialog.cpp:216 #: gui/saveload-dialog.cpp:276 gui/saveload-dialog.cpp:547 -#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 engines/engine.cpp:546 +#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 +#: gui/updates-dialog.cpp:113 engines/engine.cpp:546 #: backends/events/default/default-events.cpp:196 #: backends/events/default/default-events.cpp:218 #: backends/platform/wii/options.cpp:48 engines/drascula/saveload.cpp:49 @@ -174,7 +175,7 @@ msgstr "Sinus" msgid "Triangle" msgstr "Trojśhrlnķk" -#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1168 +#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1170 msgid "Misc" msgstr "Rłzné" @@ -208,12 +209,12 @@ msgstr "Resetovat ve¹kerį nastavenķ FludSynth n ajejich vżchozķ hodnoty." #: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:352 #: gui/launcher.cpp:1050 gui/launcher.cpp:1054 gui/massadd.cpp:92 -#: gui/options.cpp:1238 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 +#: gui/options.cpp:1256 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 #: engines/engine.cpp:476 backends/platform/wii/options.cpp:47 #: backends/platform/wince/CELauncherDialog.cpp:54 #: engines/agos/animation.cpp:558 engines/drascula/saveload.cpp:49 #: engines/groovie/script.cpp:408 engines/parallaction/saveload.cpp:274 -#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1834 +#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1831 #: engines/scumm/players/player_v3m.cpp:130 #: engines/scumm/players/player_v5m.cpp:108 engines/sky/compact.cpp:131 #: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:524 @@ -243,15 +244,15 @@ msgstr "Zavųķt" msgid "Mouse click" msgstr "Kliknutķ my¹ķ" -#: gui/gui-manager.cpp:126 base/main.cpp:322 +#: gui/gui-manager.cpp:126 base/main.cpp:325 msgid "Display keyboard" msgstr "Zobrazit klįvesnici" -#: gui/gui-manager.cpp:130 base/main.cpp:326 +#: gui/gui-manager.cpp:130 base/main.cpp:329 msgid "Remap keys" msgstr "Pųemapovat klįvesy" -#: gui/gui-manager.cpp:133 base/main.cpp:329 engines/scumm/help.cpp:87 +#: gui/gui-manager.cpp:133 base/main.cpp:332 engines/scumm/help.cpp:87 msgid "Toggle fullscreen" msgstr "Pųepnout celou obrazovku" @@ -325,8 +326,8 @@ msgid "" "English" msgstr "Jazyk hry. Toto z va¹ķ ©panģlské verze neudģlį Anglickou" -#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:87 -#: gui/options.cpp:735 gui/options.cpp:748 gui/options.cpp:1208 +#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:89 +#: gui/options.cpp:737 gui/options.cpp:750 gui/options.cpp:1210 #: audio/null.cpp:41 msgid "<default>" msgstr "<vżchozķ>" @@ -348,11 +349,11 @@ msgstr "Platforma:" msgid "Engine" msgstr "Jįdro" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "Graphics" msgstr "Obraz" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "GFX" msgstr "GFX" @@ -365,7 +366,7 @@ msgctxt "lowres" msgid "Override global graphic settings" msgstr "Potlačit globįlnķ nastavenķ obrazu" -#: gui/launcher.cpp:257 gui/options.cpp:1094 +#: gui/launcher.cpp:257 gui/options.cpp:1096 msgid "Audio" msgstr "Zvuk" @@ -378,11 +379,11 @@ msgctxt "lowres" msgid "Override global audio settings" msgstr "Potlačit globįlnķ nastavenķ zvuku" -#: gui/launcher.cpp:271 gui/options.cpp:1099 +#: gui/launcher.cpp:271 gui/options.cpp:1101 msgid "Volume" msgstr "Hlasitost" -#: gui/launcher.cpp:273 gui/options.cpp:1101 +#: gui/launcher.cpp:273 gui/options.cpp:1103 msgctxt "lowres" msgid "Volume" msgstr "Hlasitost" @@ -396,7 +397,7 @@ msgctxt "lowres" msgid "Override global volume settings" msgstr "Potlačit globįlnķ nastavenķ hlasitosti" -#: gui/launcher.cpp:286 gui/options.cpp:1109 +#: gui/launcher.cpp:286 gui/options.cpp:1111 msgid "MIDI" msgstr "MIDI" @@ -409,7 +410,7 @@ msgctxt "lowres" msgid "Override global MIDI settings" msgstr "Potlačit globįlnķ nastavenķ MIDI" -#: gui/launcher.cpp:300 gui/options.cpp:1115 +#: gui/launcher.cpp:300 gui/options.cpp:1117 msgid "MT-32" msgstr "MT-32" @@ -422,11 +423,11 @@ msgctxt "lowres" msgid "Override global MT-32 settings" msgstr "Potlačit globįlnķ nastavenķ MT-32" -#: gui/launcher.cpp:314 gui/options.cpp:1122 +#: gui/launcher.cpp:314 gui/options.cpp:1124 msgid "Paths" msgstr "Cesty" -#: gui/launcher.cpp:316 gui/options.cpp:1124 +#: gui/launcher.cpp:316 gui/options.cpp:1126 msgctxt "lowres" msgid "Paths" msgstr "Cesty" @@ -440,7 +441,7 @@ msgctxt "lowres" msgid "Game Path:" msgstr "Cesta Hry:" -#: gui/launcher.cpp:330 gui/options.cpp:1148 +#: gui/launcher.cpp:330 gui/options.cpp:1150 msgid "Extra Path:" msgstr "Dodatečnį Cesta:" @@ -448,42 +449,42 @@ msgstr "Dodatečnį Cesta:" msgid "Specifies path to additional data used by the game" msgstr "Stanovķ cestu pro dodatečnį data pou¾itį ve hųe" -#: gui/launcher.cpp:332 gui/options.cpp:1150 +#: gui/launcher.cpp:332 gui/options.cpp:1152 msgctxt "lowres" msgid "Extra Path:" msgstr "Dodatečnį Cesta:" -#: gui/launcher.cpp:339 gui/options.cpp:1132 +#: gui/launcher.cpp:339 gui/options.cpp:1134 msgid "Save Path:" msgstr "Cesta pro ulo¾enķ:" #: gui/launcher.cpp:339 gui/launcher.cpp:341 gui/launcher.cpp:342 -#: gui/options.cpp:1132 gui/options.cpp:1134 gui/options.cpp:1135 +#: gui/options.cpp:1134 gui/options.cpp:1136 gui/options.cpp:1137 msgid "Specifies where your saved games are put" msgstr "Stanovuje, kam jsou umķstģny va¹e ulo¾ené hry" -#: gui/launcher.cpp:341 gui/options.cpp:1134 +#: gui/launcher.cpp:341 gui/options.cpp:1136 msgctxt "lowres" msgid "Save Path:" msgstr "Cesta pro ulo¾enķ:" #: gui/launcher.cpp:360 gui/launcher.cpp:459 gui/launcher.cpp:517 -#: gui/launcher.cpp:571 gui/options.cpp:1143 gui/options.cpp:1151 -#: gui/options.cpp:1160 gui/options.cpp:1275 gui/options.cpp:1281 -#: gui/options.cpp:1289 gui/options.cpp:1319 gui/options.cpp:1325 -#: gui/options.cpp:1332 gui/options.cpp:1425 gui/options.cpp:1428 -#: gui/options.cpp:1440 +#: gui/launcher.cpp:571 gui/options.cpp:1145 gui/options.cpp:1153 +#: gui/options.cpp:1162 gui/options.cpp:1293 gui/options.cpp:1299 +#: gui/options.cpp:1307 gui/options.cpp:1337 gui/options.cpp:1343 +#: gui/options.cpp:1350 gui/options.cpp:1456 gui/options.cpp:1459 +#: gui/options.cpp:1471 msgctxt "path" msgid "None" msgstr "®įdné" #: gui/launcher.cpp:365 gui/launcher.cpp:465 gui/launcher.cpp:575 -#: gui/options.cpp:1269 gui/options.cpp:1313 gui/options.cpp:1431 +#: gui/options.cpp:1287 gui/options.cpp:1331 gui/options.cpp:1462 #: backends/platform/wii/options.cpp:56 msgid "Default" msgstr "Vżchozķ" -#: gui/launcher.cpp:510 gui/options.cpp:1434 +#: gui/launcher.cpp:510 gui/options.cpp:1465 msgid "Select SoundFont" msgstr "Vybrat SoundFont" @@ -495,7 +496,7 @@ msgstr "Vyberte adresįų s daty hry" msgid "Select additional game directory" msgstr "Vyberte dodatečnż adresįų hry" -#: gui/launcher.cpp:559 gui/options.cpp:1377 +#: gui/launcher.cpp:559 gui/options.cpp:1408 msgid "Select directory for saved games" msgstr "Vyberte adresįų pro ulo¾ené hry" @@ -503,7 +504,7 @@ msgstr "Vyberte adresįų pro ulo¾ené hry" msgid "This game ID is already taken. Please choose another one." msgstr "Toto ID hry je u¾ zabrané. Vyberte si, prosķm, jiné." -#: gui/launcher.cpp:626 engines/dialogs.cpp:111 +#: gui/launcher.cpp:626 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:115 msgid "~Q~uit" msgstr "~U~končit" @@ -591,17 +592,18 @@ msgid "Search:" msgstr "Hledat:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214 -#: engines/mohawk/riven.cpp:718 engines/pegasus/pegasus.cpp:353 -#: engines/tsage/scenes.cpp:600 +#: engines/mohawk/dialogs.cpp:120 engines/mohawk/riven.cpp:718 +#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:600 msgid "Load game:" msgstr "Nahrįt hru:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 #: backends/platform/wince/CEActionsPocket.cpp:267 #: backends/platform/wince/CEActionsSmartphone.cpp:231 -#: engines/cruise/menu.cpp:214 engines/mohawk/riven.cpp:718 -#: engines/parallaction/saveload.cpp:197 engines/pegasus/pegasus.cpp:353 -#: engines/scumm/dialogs.cpp:189 engines/tsage/scenes.cpp:600 +#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:120 +#: engines/mohawk/riven.cpp:718 engines/parallaction/saveload.cpp:197 +#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:189 +#: engines/tsage/scenes.cpp:600 msgid "Load" msgstr "Nahrįt" @@ -688,132 +690,132 @@ msgstr "Pųepnout do hry" msgid "Fast replay" msgstr "Rychlé pųehrįvįnķ" -#: gui/options.cpp:85 +#: gui/options.cpp:87 common/updates.cpp:56 msgid "Never" msgstr "Nikdy" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 5 mins" msgstr "Ka¾dżch 5 min" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 10 mins" msgstr "Ka¾dżch 10 min" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 15 mins" msgstr "Ka¾dżch 15 min" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 30 mins" msgstr "Ka¾dżch 30 min" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "8 kHz" msgstr "8 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "11 kHz" msgstr "11 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "22 kHz" msgstr "22 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "44 kHz" msgstr "44 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "48 kHz" msgstr "48 kHz" -#: gui/options.cpp:255 gui/options.cpp:479 gui/options.cpp:580 -#: gui/options.cpp:649 gui/options.cpp:857 +#: gui/options.cpp:257 gui/options.cpp:481 gui/options.cpp:582 +#: gui/options.cpp:651 gui/options.cpp:859 msgctxt "soundfont" msgid "None" msgstr "®įdné" -#: gui/options.cpp:389 +#: gui/options.cpp:391 msgid "Failed to apply some of the graphic options changes:" msgstr "Nelze pou¾ķt nģkteré zmģny mo¾nostķ grafiky:" -#: gui/options.cpp:401 +#: gui/options.cpp:403 msgid "the video mode could not be changed." msgstr "re¾im obrazu nemohl bżt zmģnģn." -#: gui/options.cpp:407 +#: gui/options.cpp:409 msgid "the fullscreen setting could not be changed" msgstr "nastavenķ celé obrazovky nemohlo bżt zmģnģno" -#: gui/options.cpp:413 +#: gui/options.cpp:415 msgid "the aspect ratio setting could not be changed" msgstr "nastavenķ pomģru stran nemohlo bżt zmģnģno" -#: gui/options.cpp:732 +#: gui/options.cpp:734 msgid "Graphics mode:" msgstr "Re¾im obrazu:" -#: gui/options.cpp:746 +#: gui/options.cpp:748 msgid "Render mode:" msgstr "Re¾im vykreslenķ:" -#: gui/options.cpp:746 gui/options.cpp:747 +#: gui/options.cpp:748 gui/options.cpp:749 msgid "Special dithering modes supported by some games" msgstr "Speciįlnķ re¾imy chvģnķ podporované nģkterżmi hrami" -#: gui/options.cpp:758 +#: gui/options.cpp:760 #: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2316 msgid "Fullscreen mode" msgstr "Re¾im celé obrazovky" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Aspect ratio correction" msgstr "Korekce pomģru stran" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Correct aspect ratio for 320x200 games" msgstr "Korigovat pomģr stran pro hry 320x200" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Preferred Device:" msgstr "Prioritnķ Zaųķzenķ:" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Music Device:" msgstr "Hudebnķ zaųķzenķ" -#: gui/options.cpp:769 gui/options.cpp:771 +#: gui/options.cpp:771 gui/options.cpp:773 msgid "Specifies preferred sound device or sound card emulator" msgstr "Stanovķ prioritnķ zvukové zaųķzenķ nebo emulįtor zvukové karty" -#: gui/options.cpp:769 gui/options.cpp:771 gui/options.cpp:772 +#: gui/options.cpp:771 gui/options.cpp:773 gui/options.cpp:774 msgid "Specifies output sound device or sound card emulator" msgstr "Stanovķ vżstupnķ zvukové zaųķzenķ nebo emulįtor zvukové karty" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Preferred Dev.:" msgstr "Prioritnķ Zaų.:" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Music Device:" msgstr "Hudebnķ zaųķzenķ" -#: gui/options.cpp:798 +#: gui/options.cpp:800 msgid "AdLib emulator:" msgstr "AdLib emulįtor" -#: gui/options.cpp:798 gui/options.cpp:799 +#: gui/options.cpp:800 gui/options.cpp:801 msgid "AdLib is used for music in many games" msgstr "AdLib se pou¾ķvį pro hudbu v mnoha hrįch" -#: gui/options.cpp:809 +#: gui/options.cpp:811 msgid "Output rate:" msgstr "Vżstup. frekvence:" -#: gui/options.cpp:809 gui/options.cpp:810 +#: gui/options.cpp:811 gui/options.cpp:812 msgid "" "Higher value specifies better sound quality but may be not supported by your " "soundcard" @@ -821,66 +823,66 @@ msgstr "" "Vy¹¹ķ hodnota zpłsobķ lep¹ķ kvalitu zvuku, ale nemusķ bżt podporovįna Va¹i " "zvukovou kartou" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "GM Device:" msgstr "GM Zaųķzenķ:" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "Specifies default sound device for General MIDI output" msgstr "Stanovķ vżchozķ zvukové zaųķzenķ pro vżstup General MIDI" -#: gui/options.cpp:831 +#: gui/options.cpp:833 msgid "Don't use General MIDI music" msgstr "Nepou¾ķvat hudbu General MIDI" -#: gui/options.cpp:842 gui/options.cpp:908 +#: gui/options.cpp:844 gui/options.cpp:910 msgid "Use first available device" msgstr "Pou¾ķt prvnķ dostupné zaųķzenķ" -#: gui/options.cpp:854 +#: gui/options.cpp:856 msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:854 gui/options.cpp:856 gui/options.cpp:857 +#: 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 je podporovįn nģkterżmi zvukovżmi kartami, FluidSynth a Timidity" -#: gui/options.cpp:856 +#: gui/options.cpp:858 msgctxt "lowres" msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Mixed AdLib/MIDI mode" msgstr "Smķ¹enż re¾im AdLib/MIDI" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Use both MIDI and AdLib sound generation" msgstr "Pou¾ķt obģ zvukové generace MIDI a AdLib" -#: gui/options.cpp:865 +#: gui/options.cpp:867 msgid "MIDI gain:" msgstr "Zesķlenķ MIDI:" -#: gui/options.cpp:872 +#: gui/options.cpp:874 msgid "FluidSynth Settings" msgstr "Nastavenķ FluidSynth" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "MT-32 Device:" msgstr "Zaųķzenķ MT-32:" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output" msgstr "" "Stanovķ vżchozķ zvukové vżstupnķ zaųķzenķ pro Roland MT-32/LAPC1/CM32l/CM64" -#: gui/options.cpp:884 +#: gui/options.cpp:886 msgid "True Roland MT-32 (disable GM emulation)" msgstr "Opravdovż Roland MT-32 (vypne GM emulaci)" -#: gui/options.cpp:884 gui/options.cpp:886 +#: gui/options.cpp:886 gui/options.cpp:888 msgid "" "Check if you want to use your real hardware Roland-compatible sound device " "connected to your computer" @@ -888,16 +890,16 @@ msgstr "" "Za¹krtnģte, pokud chcete pou¾ķt pravé hardwarové zaųķzenķ kompatibilnķ s " "Roland, pųipojené k va¹emu počķtači" -#: gui/options.cpp:886 +#: gui/options.cpp:888 msgctxt "lowres" msgid "True Roland MT-32 (no GM emulation)" msgstr "Opravdovż Roland MT-32 (¾įdnį GM emulace)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "Roland GS Device (enable MT-32 mappings)" msgstr "Zaųķzenķ Roland GS (zapne mapovįnķ MT-32)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "" "Check if you want to enable patch mappings to emulate an MT-32 on a Roland " "GS device" @@ -905,169 +907,181 @@ msgstr "" "Za¹krtnģte, pokud chcete povolit zįplaty mapovįnķ umo¾ņujķcķ emulovat MT-32 " "na zaųķzenķ Roland GS" -#: gui/options.cpp:898 +#: gui/options.cpp:900 msgid "Don't use Roland MT-32 music" msgstr "Nepou¾ķvat hudbu Roland MT-32" -#: gui/options.cpp:925 +#: gui/options.cpp:927 msgid "Text and Speech:" msgstr "Text a Ųeč" -#: gui/options.cpp:929 gui/options.cpp:939 +#: gui/options.cpp:931 gui/options.cpp:941 msgid "Speech" msgstr "Ųeč" -#: gui/options.cpp:930 gui/options.cpp:940 +#: gui/options.cpp:932 gui/options.cpp:942 msgid "Subtitles" msgstr "Titulky" -#: gui/options.cpp:931 +#: gui/options.cpp:933 msgid "Both" msgstr "Oba" -#: gui/options.cpp:933 +#: gui/options.cpp:935 msgid "Subtitle speed:" msgstr "Rychlost titulkł:" -#: gui/options.cpp:935 +#: gui/options.cpp:937 msgctxt "lowres" msgid "Text and Speech:" msgstr "Text a Ųeč:" -#: gui/options.cpp:939 +#: gui/options.cpp:941 msgid "Spch" msgstr "Ųeč" -#: gui/options.cpp:940 +#: gui/options.cpp:942 msgid "Subs" msgstr "Titl" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgctxt "lowres" msgid "Both" msgstr "Oba" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgid "Show subtitles and play speech" msgstr "Zobrazit titulky a pųehrįvat ųeč" -#: gui/options.cpp:943 +#: gui/options.cpp:945 msgctxt "lowres" msgid "Subtitle speed:" msgstr "Rychlost titulkł" -#: gui/options.cpp:959 +#: gui/options.cpp:961 msgid "Music volume:" msgstr "Hlasitost hudby" -#: gui/options.cpp:961 +#: gui/options.cpp:963 msgctxt "lowres" msgid "Music volume:" msgstr "Hlasitost hudby" -#: gui/options.cpp:968 +#: gui/options.cpp:970 msgid "Mute All" msgstr "Ztlumit V¹e" -#: gui/options.cpp:971 +#: gui/options.cpp:973 msgid "SFX volume:" msgstr "Hlasitost zvukł" -#: gui/options.cpp:971 gui/options.cpp:973 gui/options.cpp:974 +#: gui/options.cpp:973 gui/options.cpp:975 gui/options.cpp:976 msgid "Special sound effects volume" msgstr "Hlasitost speciįlnķch zvukovżch efektł" -#: gui/options.cpp:973 +#: gui/options.cpp:975 msgctxt "lowres" msgid "SFX volume:" msgstr "Hlasitost zvukł" -#: gui/options.cpp:981 +#: gui/options.cpp:983 msgid "Speech volume:" msgstr "Hlasitost ųeči" -#: gui/options.cpp:983 +#: gui/options.cpp:985 msgctxt "lowres" msgid "Speech volume:" msgstr "Hlasitost ųeči" -#: gui/options.cpp:1140 +#: gui/options.cpp:1142 msgid "Theme Path:" msgstr "Cesta ke Vzhledu:" -#: gui/options.cpp:1142 +#: gui/options.cpp:1144 msgctxt "lowres" msgid "Theme Path:" msgstr "Cesta ke Vzhledu:" -#: gui/options.cpp:1148 gui/options.cpp:1150 gui/options.cpp:1151 +#: gui/options.cpp:1150 gui/options.cpp:1152 gui/options.cpp:1153 msgid "Specifies path to additional data used by all games or ScummVM" msgstr "Stanovķ cestu k dodatečnżm datłm pou¾ķvanį v¹emi hrami nebo ScummVM" -#: gui/options.cpp:1157 +#: gui/options.cpp:1159 msgid "Plugins Path:" msgstr "Cesta k Pluginłm:" -#: gui/options.cpp:1159 +#: gui/options.cpp:1161 msgctxt "lowres" msgid "Plugins Path:" msgstr "Cesta k Pluginłm:" -#: gui/options.cpp:1170 +#: gui/options.cpp:1172 msgctxt "lowres" msgid "Misc" msgstr "Rłzné" -#: gui/options.cpp:1172 +#: gui/options.cpp:1174 msgid "Theme:" msgstr "Vzhled:" -#: gui/options.cpp:1176 +#: gui/options.cpp:1178 msgid "GUI Renderer:" msgstr "GUI Vykreslovač:" -#: gui/options.cpp:1188 +#: gui/options.cpp:1190 msgid "Autosave:" msgstr "Autouklįdįnķ:" -#: gui/options.cpp:1190 +#: gui/options.cpp:1192 msgctxt "lowres" msgid "Autosave:" msgstr "Autouklįdįnķ:" -#: gui/options.cpp:1198 +#: gui/options.cpp:1200 msgid "Keys" msgstr "Klįvesy" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "GUI Language:" msgstr "Jazyk GUI" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "Language of ScummVM GUI" msgstr "Jazyk GUI ScummVM" -#: gui/options.cpp:1364 +#: gui/options.cpp:1235 +msgid "Update check:" +msgstr "" + +#: gui/options.cpp:1235 +msgid "How often to check ScummVM updates" +msgstr "" + +#: gui/options.cpp:1247 +msgid "Check now" +msgstr "" + +#: gui/options.cpp:1382 msgid "You have to restart ScummVM before your changes will take effect." msgstr "Pro pou¾itķ tģchto nastavenķ musķte restartovat ScummVM." -#: gui/options.cpp:1384 +#: gui/options.cpp:1415 msgid "The chosen directory cannot be written to. Please select another one." msgstr "Do zvoleného adresįųe nelze zapisovat. Vyberte, prosķm, jinż." -#: gui/options.cpp:1393 +#: gui/options.cpp:1424 msgid "Select directory for GUI themes" msgstr "Vyberte adresįų pro vhledy GUI" -#: gui/options.cpp:1403 +#: gui/options.cpp:1434 msgid "Select directory for extra files" msgstr "Vyberte adresįų pro dodatečné soubory" -#: gui/options.cpp:1414 +#: gui/options.cpp:1445 msgid "Select directory for plugins" msgstr "Vyberte adresįų pro zįsuvné moduly" -#: gui/options.cpp:1467 +#: gui/options.cpp:1498 msgid "" "The theme you selected does not support your current language. If you want " "to use this theme you need to switch to another language first." @@ -1240,39 +1254,60 @@ msgstr "Vykreslovač s vyhlazenżmi hranami" msgid "Antialiased" msgstr "S vyhlazenżmi hranami" -#: gui/widget.cpp:323 gui/widget.cpp:325 gui/widget.cpp:331 gui/widget.cpp:333 +#: gui/updates-dialog.cpp:51 +msgid "" +"ScummVM now supports automatic check for updates\n" +"which requires access to the Internet.\n" +"\n" +"Would you like to enable this feature?" +msgstr "" + +#: gui/updates-dialog.cpp:55 +msgid "(You can always enable it in the options dialog on the Misc tab)" +msgstr "" + +#: gui/updates-dialog.cpp:92 +#, fuzzy +msgid "Check for updates automatically" +msgstr "Zkontrolovat Aktualizace..." + +#: gui/updates-dialog.cpp:111 +msgid "Proceed" +msgstr "" + +#: gui/widget.cpp:327 gui/widget.cpp:329 gui/widget.cpp:335 gui/widget.cpp:337 msgid "Clear value" msgstr "Vyčistit hodnotu" -#: base/main.cpp:237 +#: base/main.cpp:240 #, c-format msgid "Engine does not support debug level '%s'" msgstr "Jįdro nepodporuje śroveņ ladģnķ '%s'" -#: base/main.cpp:309 +#: base/main.cpp:312 msgid "Menu" msgstr "Menu" -#: base/main.cpp:312 backends/platform/symbian/src/SymbianActions.cpp:45 +#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:45 #: backends/platform/wince/CEActionsPocket.cpp:45 #: backends/platform/wince/CEActionsSmartphone.cpp:46 msgid "Skip" msgstr "Pųeskočit" -#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:50 +#: base/main.cpp:318 backends/platform/symbian/src/SymbianActions.cpp:50 #: backends/platform/wince/CEActionsPocket.cpp:42 msgid "Pause" msgstr "Pauza" -#: base/main.cpp:318 +#: base/main.cpp:321 msgid "Skip line" msgstr "Pųeskočit ųįdek" -#: base/main.cpp:510 +#: base/main.cpp:520 msgid "Error running game:" msgstr "Chyba pųi spu¹tģnķ hry:" -#: base/main.cpp:557 +#: base/main.cpp:567 msgid "Could not find any engine capable of running the selected game" msgstr "Nelze nalézt ¾įdné jįdro schopné vybranou hru spustit" @@ -1367,16 +1402,33 @@ msgctxt "lowres" msgid "Hercules Amber" msgstr "Hercules Jantarovį" -#: engines/advancedDetector.cpp:317 +#: common/updates.cpp:58 +msgid "Daily" +msgstr "" + +#: common/updates.cpp:60 +msgid "Weekly" +msgstr "" + +#: common/updates.cpp:62 +msgid "Monthly" +msgstr "" + +#: common/updates.cpp:64 +#, fuzzy +msgid "<Bad value>" +msgstr "Vyčistit hodnotu" + +#: engines/advancedDetector.cpp:334 #, c-format msgid "The game in '%s' seems to be unknown." msgstr "Hra v '%s' se zdį bżt neznįmį." -#: engines/advancedDetector.cpp:318 +#: engines/advancedDetector.cpp:335 msgid "Please, report the following data to the ScummVM team along with name" msgstr "Prosķm nahlaste nįsledujķcķ data tżmu ScummVM spolu se jménem" -#: engines/advancedDetector.cpp:320 +#: engines/advancedDetector.cpp:337 msgid "of the game you tried to add and its version/language/etc.:" msgstr "hry, kterou jste se pokusili pųidat a jejķ verzi/jazyk/atd.:" @@ -1384,11 +1436,11 @@ msgstr "hry, kterou jste se pokusili pųidat a jejķ verzi/jazyk/atd.:" msgid "~R~esume" msgstr "~P~okračovat" -#: engines/dialogs.cpp:87 +#: engines/dialogs.cpp:87 engines/mohawk/dialogs.cpp:113 msgid "~L~oad" msgstr "~N~ahrįt" -#: engines/dialogs.cpp:91 +#: engines/dialogs.cpp:91 engines/mohawk/dialogs.cpp:114 msgid "~S~ave" msgstr "~U~lo¾it" @@ -1417,9 +1469,9 @@ msgstr "~N~įvrat do Spou¹tģče" #: engines/avalanche/parser.cpp:1899 engines/cge/events.cpp:74 #: engines/cge2/events.cpp:67 engines/cruise/menu.cpp:212 #: engines/drascula/saveload.cpp:336 engines/dreamweb/saveload.cpp:261 -#: engines/hugo/file.cpp:298 engines/neverhood/menumodule.cpp:877 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/hugo/file.cpp:298 engines/mohawk/dialogs.cpp:121 +#: engines/neverhood/menumodule.cpp:877 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save game:" @@ -1434,9 +1486,10 @@ msgstr "Ulo¾it hru:" #: engines/cge/events.cpp:74 engines/cge2/events.cpp:67 #: engines/cruise/menu.cpp:212 engines/drascula/saveload.cpp:336 #: engines/dreamweb/saveload.cpp:261 engines/hugo/file.cpp:298 -#: engines/neverhood/menumodule.cpp:877 engines/parallaction/saveload.cpp:212 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/scumm/dialogs.cpp:188 engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/mohawk/dialogs.cpp:121 engines/neverhood/menumodule.cpp:877 +#: engines/parallaction/saveload.cpp:212 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/scumm/dialogs.cpp:188 +#: engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save" @@ -1461,13 +1514,13 @@ msgstr "" "Ulo¾enķ stavu hry selhalo (%s)! Prosķm pųečtģte si dokumentaci pro zįkladnķ " "informace a pokyny k zķskįnķ dal¹ķ podpory." -#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:109 -#: engines/mohawk/dialogs.cpp:170 engines/tsage/dialogs.cpp:106 +#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:117 +#: engines/mohawk/dialogs.cpp:242 engines/tsage/dialogs.cpp:106 msgid "~O~K" msgstr "~O~K" -#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:110 -#: engines/mohawk/dialogs.cpp:171 engines/tsage/dialogs.cpp:107 +#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:118 +#: engines/mohawk/dialogs.cpp:243 engines/tsage/dialogs.cpp:107 msgid "~C~ancel" msgstr "~Z~ru¹it" @@ -1623,11 +1676,11 @@ msgstr "Zvuk FM-Towns" msgid "PC-98 Audio" msgstr "Zvuk PC-98" -#: audio/softsynth/mt32.cpp:200 +#: audio/softsynth/mt32.cpp:196 msgid "Initializing MT-32 Emulator" msgstr "Zavįdķm MT-32 Emulįtor" -#: audio/softsynth/mt32.cpp:426 +#: audio/softsynth/mt32.cpp:434 msgid "MT-32 Emulator" msgstr "MT-32 Emulįtor" @@ -1744,11 +1797,11 @@ msgstr "Re¾im automatického ta¾enķ je nynķ" msgid "Swipe three fingers to the right to toggle." msgstr "Pro zapnutķ pųejeļte tųemi prsty doprava." -#: backends/graphics/opengl/opengl-graphics.cpp:119 +#: backends/graphics/opengl/opengl-graphics.cpp:126 msgid "OpenGL" msgstr "OpenGL" -#: backends/graphics/opengl/opengl-graphics.cpp:120 +#: backends/graphics/opengl/opengl-graphics.cpp:127 msgid "OpenGL (No filtering)" msgstr "OpenGL (bez filtrovįnķ)" @@ -2302,20 +2355,20 @@ msgstr "" "Nezapomeņte namapovat klįvesu k činnosti 'Skrżt Panel Nįstrojł, abyste " "vidģli celż inventįų" -#: backends/updates/macosx/macosx-updates.mm:67 +#: backends/updates/macosx/macosx-updates.mm:68 msgid "Check for Updates..." msgstr "Zkontrolovat Aktualizace..." #: engines/agi/detection.cpp:147 engines/cine/detection.cpp:70 #: engines/drascula/detection.cpp:302 engines/dreamweb/detection.cpp:47 -#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:404 +#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:410 #: engines/toltecs/detection.cpp:200 engines/zvision/detection_tables.h:51 msgid "Use original save/load screens" msgstr "Pou¾ķt płvodnķ obrazovky načtenķ/ulo¾enķ" #: engines/agi/detection.cpp:148 engines/cine/detection.cpp:71 #: engines/drascula/detection.cpp:303 engines/dreamweb/detection.cpp:48 -#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:405 +#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:411 #: engines/toltecs/detection.cpp:201 msgid "Use the original save/load screens, instead of the ScummVM ones" msgstr "Pou¾ķt płvodnķ obrazovky načtenķ/ulo¾enķ mķsto ze ScummVM" @@ -2343,11 +2396,30 @@ msgstr "" "Povolķ podporu my¹i. Umo¾nķ pou¾ķt my¹ pro pohyb a pro ovlįdįnķ hernķch " "nabķdek." +#: engines/agi/detection.cpp:177 +#, fuzzy +msgid "Use Hercules hires font" +msgstr "Hercules Zelenį" + +#: engines/agi/detection.cpp:178 +msgid "Uses Hercules hires font, when font file is available." +msgstr "" + +#: engines/agi/detection.cpp:187 +msgid "Pause when entering commands" +msgstr "" + +#: engines/agi/detection.cpp:188 +msgid "" +"Shows a command prompt window and pauses the game (like in SCI) instead of a " +"real-time prompt." +msgstr "" + #: engines/agi/saveload.cpp:777 engines/avalanche/parser.cpp:1887 #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore game:" @@ -2357,13 +2429,13 @@ msgstr "Obnovit hru" #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore" msgstr "Obnovit" -#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2377 +#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2374 #, c-format msgid "" "Failed to load game state from file:\n" @@ -2374,7 +2446,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2370 +#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2367 #, c-format msgid "" "Failed to save game state to file:\n" @@ -2385,7 +2457,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2388 +#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2385 #, c-format msgid "" "Successfully saved game state in file:\n" @@ -2630,29 +2702,39 @@ msgstr "" "ladķcķ konzoli ScummVM a pou¾ķt pųķkaz 'import_savefile'.\n" "\n" +#: engines/mohawk/detection.cpp:168 +msgid "Play the Myst fly by movie" +msgstr "" + +#: engines/mohawk/detection.cpp:169 +msgid "The Myst fly by movie was not played by the original engine." +msgstr "" + #. I18N: Option for fast scene switching -#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:167 +#: engines/mohawk/dialogs.cpp:96 engines/mohawk/dialogs.cpp:239 msgid "~Z~ip Mode Activated" msgstr "~R~e¾im Svi¹tģnķ Aktivovįn" -#: engines/mohawk/dialogs.cpp:93 +#: engines/mohawk/dialogs.cpp:97 msgid "~T~ransitions Enabled" msgstr "~P~ųechody zapnuty" #. I18N: Drop book page -#: engines/mohawk/dialogs.cpp:95 +#: engines/mohawk/dialogs.cpp:99 msgid "~D~rop Page" msgstr "~Z~ahodit Strįnku" -#: engines/mohawk/dialogs.cpp:99 -msgid "~S~how Map" +#: engines/mohawk/dialogs.cpp:103 +#, fuzzy +msgid "Show ~M~ap" msgstr "~Z~obrazit Mapu" -#: engines/mohawk/dialogs.cpp:105 -msgid "~M~ain Menu" +#: engines/mohawk/dialogs.cpp:109 +#, fuzzy +msgid "Main Men~u~" msgstr "~H~lavnķ Menu" -#: engines/mohawk/dialogs.cpp:168 +#: engines/mohawk/dialogs.cpp:240 msgid "~W~ater Effect Enabled" msgstr "~E~fekt Vody Zapnut" @@ -2775,36 +2857,36 @@ msgstr "Alternativnķ śvod" msgid "Use an alternative game intro (CD version only)" msgstr "Pou¾ķt jinou verzi śvodu (Pouze verze CD)" -#: engines/sci/detection.cpp:374 +#: engines/sci/detection.cpp:380 msgid "Skip EGA dithering pass (full color backgrounds)" msgstr "Pųekočit prłchod rozkladu barev EGA (pozadķ v plnżch barvįch)" -#: engines/sci/detection.cpp:375 +#: engines/sci/detection.cpp:381 msgid "Skip dithering pass in EGA games, graphics are shown with full colors" msgstr "" "Pųeskočit prłchod rozkladu barev EGA, obraze je zobrazen v plnżch barvįch" -#: engines/sci/detection.cpp:384 +#: engines/sci/detection.cpp:390 msgid "Enable high resolution graphics" msgstr "Povolit grafiku ve vysokém rozli¹enķ" -#: engines/sci/detection.cpp:385 +#: engines/sci/detection.cpp:391 msgid "Enable high resolution graphics/content" msgstr "Povolit grafiku/obsah ve vysokém rozli¹enķ" -#: engines/sci/detection.cpp:394 +#: engines/sci/detection.cpp:400 msgid "Prefer digital sound effects" msgstr "Upųednostņovat digitįlnķ zvukové efekty" -#: engines/sci/detection.cpp:395 +#: engines/sci/detection.cpp:401 msgid "Prefer digital sound effects instead of synthesized ones" msgstr "Upųednostņovat digitįlnķ zvukové efekty pųed syntetizovanżmi" -#: engines/sci/detection.cpp:414 +#: engines/sci/detection.cpp:420 msgid "Use IMF/Yamaha FB-01 for MIDI output" msgstr "Pou¾ķt IMF/Yamaha FB-01 pro vżstup MIDI" -#: engines/sci/detection.cpp:415 +#: engines/sci/detection.cpp:421 msgid "" "Use an IBM Music Feature card or a Yamaha FB-01 FM synth module for MIDI " "output" @@ -2812,32 +2894,41 @@ msgstr "" "Pou¾ķt kartu IBM Music Feature nebo modul syntetizįtoru Yamaha FB-01 FM pro " "vżstup MIDI" -#: engines/sci/detection.cpp:425 +#: engines/sci/detection.cpp:431 msgid "Use CD audio" msgstr "Pou¾ķt zvuky na CD" -#: engines/sci/detection.cpp:426 +#: engines/sci/detection.cpp:432 msgid "Use CD audio instead of in-game audio, if available" msgstr "Pou¾ķt zvuky na CD mķsto ve hųe, pokud je dostupné" -#: engines/sci/detection.cpp:436 +#: engines/sci/detection.cpp:442 msgid "Use Windows cursors" msgstr "Pou¾ķt kurzory Windows" -#: engines/sci/detection.cpp:437 +#: engines/sci/detection.cpp:443 msgid "" "Use the Windows cursors (smaller and monochrome) instead of the DOS ones" msgstr "Pou¾ķt kurzory Windows (men¹ķ a černobķlé) mķsto kurzorł z DOS" -#: engines/sci/detection.cpp:447 +#: engines/sci/detection.cpp:453 msgid "Use silver cursors" msgstr "Pou¾ķt stųķbrné kurzory" -#: engines/sci/detection.cpp:448 +#: engines/sci/detection.cpp:454 msgid "" "Use the alternate set of silver cursors, instead of the normal golden ones" msgstr "Pou¾ķt alternativnķ sadu stųķbrnżch kurzorł mķsto standardnķch zlatżch" +#: engines/scumm/detection.cpp:1335 +#, fuzzy +msgid "Show Object Line" +msgstr "Zobrazit jmenovky objektł" + +#: engines/scumm/detection.cpp:1336 +msgid "Show the names of objects at the bottom of the screen" +msgstr "" + #: engines/scumm/dialogs.cpp:176 #, c-format msgid "Insert Disk %c and Press Button to Continue." @@ -3503,7 +3594,7 @@ msgstr "Hlasitost hudby:" msgid "Subtitle speed: " msgstr "Rychlost titulkł:" -#: engines/scumm/scumm.cpp:1832 +#: engines/scumm/scumm.cpp:1829 #, c-format msgid "" "Native MIDI support requires the Roland Upgrade from LucasArts,\n" @@ -3512,7 +3603,7 @@ msgstr "" "Pųirozenį podpora MIDI vy¾aduje Aktualizaci Roland od LucasArts,\n" "ale %s chybķ. Mķsto toho je pou¾it AdLib." -#: engines/scumm/scumm.cpp:2644 +#: engines/scumm/scumm.cpp:2645 msgid "" "Usually, Maniac Mansion would start now. But for that to work, the game " "files for Maniac Mansion have to be in the 'Maniac' directory inside the " @@ -3687,6 +3778,15 @@ msgstr "Zobrazit jmenovky objektł" msgid "Show labels for objects on mouse hover" msgstr "Zobrazit jmenovky objektł pųi najetķ my¹i" +#: engines/sword25/detection.cpp:46 +msgid "Use English speech" +msgstr "" + +#: engines/sword25/detection.cpp:47 +msgid "" +"Use English speech instead of German for every language other than German" +msgstr "" + #: engines/teenagent/resources.cpp:95 msgid "" "You're missing the 'teenagent.dat' file. Get it from the ScummVM website" diff --git a/po/da_DK.po b/po/da_DK.po index 934297bd80..69692f03bc 100644 --- a/po/da_DK.po +++ b/po/da_DK.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ScummVM 1.3.0svn\n" "Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n" -"POT-Creation-Date: 2016-02-20 21:22+0000\n" +"POT-Creation-Date: 2016-04-07 08:55+0100\n" "PO-Revision-Date: 2016-02-25 21:08+0100\n" "Last-Translator: Steffen Nyeland <steffen@nyeland.dk>\n" "Language-Team: Steffen Nyeland <steffen@nyeland.dk>\n" @@ -55,10 +55,11 @@ msgstr "Gå op" #: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editrecorddialog.cpp:67 #: gui/filebrowser-dialog.cpp:64 gui/fluidsynth-dialog.cpp:152 #: gui/KeysDialog.cpp:43 gui/launcher.cpp:351 gui/massadd.cpp:95 -#: gui/options.cpp:1237 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 +#: gui/options.cpp:1255 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 #: gui/recorderdialog.cpp:156 gui/saveload-dialog.cpp:216 #: gui/saveload-dialog.cpp:276 gui/saveload-dialog.cpp:547 -#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 engines/engine.cpp:546 +#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 +#: gui/updates-dialog.cpp:113 engines/engine.cpp:546 #: backends/events/default/default-events.cpp:196 #: backends/events/default/default-events.cpp:218 #: backends/platform/wii/options.cpp:48 engines/drascula/saveload.cpp:49 @@ -172,7 +173,7 @@ msgstr "Sinus" msgid "Triangle" msgstr "Triangulęr" -#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1168 +#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1170 msgid "Misc" msgstr "Andet" @@ -206,12 +207,12 @@ msgstr "Nulstil alle FluidSynth indstillinger til deres standard vęrdier." #: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:352 #: gui/launcher.cpp:1050 gui/launcher.cpp:1054 gui/massadd.cpp:92 -#: gui/options.cpp:1238 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 +#: gui/options.cpp:1256 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 #: engines/engine.cpp:476 backends/platform/wii/options.cpp:47 #: backends/platform/wince/CELauncherDialog.cpp:54 #: engines/agos/animation.cpp:558 engines/drascula/saveload.cpp:49 #: engines/groovie/script.cpp:408 engines/parallaction/saveload.cpp:274 -#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1834 +#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1831 #: engines/scumm/players/player_v3m.cpp:130 #: engines/scumm/players/player_v5m.cpp:108 engines/sky/compact.cpp:131 #: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:524 @@ -241,15 +242,15 @@ msgstr "Luk" msgid "Mouse click" msgstr "Muse klik" -#: gui/gui-manager.cpp:126 base/main.cpp:322 +#: gui/gui-manager.cpp:126 base/main.cpp:325 msgid "Display keyboard" msgstr "Vis tastatur" -#: gui/gui-manager.cpp:130 base/main.cpp:326 +#: gui/gui-manager.cpp:130 base/main.cpp:329 msgid "Remap keys" msgstr "Kortlęg taster" -#: gui/gui-manager.cpp:133 base/main.cpp:329 engines/scumm/help.cpp:87 +#: gui/gui-manager.cpp:133 base/main.cpp:332 engines/scumm/help.cpp:87 msgid "Toggle fullscreen" msgstr "Skift fuldskęrm" @@ -325,8 +326,8 @@ msgstr "" "Spillets sprog. Dette vil ikke ęndre din spanske version af spillet til " "engelsk" -#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:87 -#: gui/options.cpp:735 gui/options.cpp:748 gui/options.cpp:1208 +#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:89 +#: gui/options.cpp:737 gui/options.cpp:750 gui/options.cpp:1210 #: audio/null.cpp:41 msgid "<default>" msgstr "<standard>" @@ -348,11 +349,11 @@ msgstr "Platform:" msgid "Engine" msgstr "Motor" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "Graphics" msgstr "Grafik" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "GFX" msgstr "GFX" @@ -365,7 +366,7 @@ msgctxt "lowres" msgid "Override global graphic settings" msgstr "Overstyr globale grafik indstillinger" -#: gui/launcher.cpp:257 gui/options.cpp:1094 +#: gui/launcher.cpp:257 gui/options.cpp:1096 msgid "Audio" msgstr "Lyd" @@ -378,11 +379,11 @@ msgctxt "lowres" msgid "Override global audio settings" msgstr "Overstyr globale lyd indstillinger" -#: gui/launcher.cpp:271 gui/options.cpp:1099 +#: gui/launcher.cpp:271 gui/options.cpp:1101 msgid "Volume" msgstr "Lydstyrke" -#: gui/launcher.cpp:273 gui/options.cpp:1101 +#: gui/launcher.cpp:273 gui/options.cpp:1103 msgctxt "lowres" msgid "Volume" msgstr "Lydstyrke" @@ -396,7 +397,7 @@ msgctxt "lowres" msgid "Override global volume settings" msgstr "Overstyr globale lydstyrke indstillinger" -#: gui/launcher.cpp:286 gui/options.cpp:1109 +#: gui/launcher.cpp:286 gui/options.cpp:1111 msgid "MIDI" msgstr "MIDI" @@ -409,7 +410,7 @@ msgctxt "lowres" msgid "Override global MIDI settings" msgstr "Overstyr globale MIDI indstillinger" -#: gui/launcher.cpp:300 gui/options.cpp:1115 +#: gui/launcher.cpp:300 gui/options.cpp:1117 msgid "MT-32" msgstr "MT-32" @@ -422,11 +423,11 @@ msgctxt "lowres" msgid "Override global MT-32 settings" msgstr "Overstyr globale MT-32 indstillinger" -#: gui/launcher.cpp:314 gui/options.cpp:1122 +#: gui/launcher.cpp:314 gui/options.cpp:1124 msgid "Paths" msgstr "Stier" -#: gui/launcher.cpp:316 gui/options.cpp:1124 +#: gui/launcher.cpp:316 gui/options.cpp:1126 msgctxt "lowres" msgid "Paths" msgstr "Stier" @@ -440,7 +441,7 @@ msgctxt "lowres" msgid "Game Path:" msgstr "Spil sti:" -#: gui/launcher.cpp:330 gui/options.cpp:1148 +#: gui/launcher.cpp:330 gui/options.cpp:1150 msgid "Extra Path:" msgstr "Ekstra sti:" @@ -448,42 +449,42 @@ msgstr "Ekstra sti:" msgid "Specifies path to additional data used by the game" msgstr "Angiver sti til ekstra data der bruges i spillet" -#: gui/launcher.cpp:332 gui/options.cpp:1150 +#: gui/launcher.cpp:332 gui/options.cpp:1152 msgctxt "lowres" msgid "Extra Path:" msgstr "Ekstra sti:" -#: gui/launcher.cpp:339 gui/options.cpp:1132 +#: gui/launcher.cpp:339 gui/options.cpp:1134 msgid "Save Path:" msgstr "Gemme sti:" #: gui/launcher.cpp:339 gui/launcher.cpp:341 gui/launcher.cpp:342 -#: gui/options.cpp:1132 gui/options.cpp:1134 gui/options.cpp:1135 +#: gui/options.cpp:1134 gui/options.cpp:1136 gui/options.cpp:1137 msgid "Specifies where your saved games are put" msgstr "Angiver hvor dine gemmer bliver lagt" -#: gui/launcher.cpp:341 gui/options.cpp:1134 +#: gui/launcher.cpp:341 gui/options.cpp:1136 msgctxt "lowres" msgid "Save Path:" msgstr "Gemme sti:" #: gui/launcher.cpp:360 gui/launcher.cpp:459 gui/launcher.cpp:517 -#: gui/launcher.cpp:571 gui/options.cpp:1143 gui/options.cpp:1151 -#: gui/options.cpp:1160 gui/options.cpp:1275 gui/options.cpp:1281 -#: gui/options.cpp:1289 gui/options.cpp:1319 gui/options.cpp:1325 -#: gui/options.cpp:1332 gui/options.cpp:1425 gui/options.cpp:1428 -#: gui/options.cpp:1440 +#: gui/launcher.cpp:571 gui/options.cpp:1145 gui/options.cpp:1153 +#: gui/options.cpp:1162 gui/options.cpp:1293 gui/options.cpp:1299 +#: gui/options.cpp:1307 gui/options.cpp:1337 gui/options.cpp:1343 +#: gui/options.cpp:1350 gui/options.cpp:1456 gui/options.cpp:1459 +#: gui/options.cpp:1471 msgctxt "path" msgid "None" msgstr "Ingen" #: gui/launcher.cpp:365 gui/launcher.cpp:465 gui/launcher.cpp:575 -#: gui/options.cpp:1269 gui/options.cpp:1313 gui/options.cpp:1431 +#: gui/options.cpp:1287 gui/options.cpp:1331 gui/options.cpp:1462 #: backends/platform/wii/options.cpp:56 msgid "Default" msgstr "Standard" -#: gui/launcher.cpp:510 gui/options.cpp:1434 +#: gui/launcher.cpp:510 gui/options.cpp:1465 msgid "Select SoundFont" msgstr "Vęlg SoundFont" @@ -495,7 +496,7 @@ msgstr "Vęlg bibliotek med spil data" msgid "Select additional game directory" msgstr "Vęlg ekstra spil bibliotek" -#: gui/launcher.cpp:559 gui/options.cpp:1377 +#: gui/launcher.cpp:559 gui/options.cpp:1408 msgid "Select directory for saved games" msgstr "Vęlg bibliotek til spil gemmer" @@ -503,7 +504,7 @@ msgstr "Vęlg bibliotek til spil gemmer" msgid "This game ID is already taken. Please choose another one." msgstr "Dette spil ID er allerede i brug. Vęlg venligst et andet." -#: gui/launcher.cpp:626 engines/dialogs.cpp:111 +#: gui/launcher.cpp:626 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:115 msgid "~Q~uit" msgstr "~A~fslut" @@ -591,17 +592,18 @@ msgid "Search:" msgstr "Sųg:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214 -#: engines/mohawk/riven.cpp:718 engines/pegasus/pegasus.cpp:353 -#: engines/tsage/scenes.cpp:600 +#: engines/mohawk/dialogs.cpp:120 engines/mohawk/riven.cpp:718 +#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:600 msgid "Load game:" msgstr "Indlęs spil:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 #: backends/platform/wince/CEActionsPocket.cpp:267 #: backends/platform/wince/CEActionsSmartphone.cpp:231 -#: engines/cruise/menu.cpp:214 engines/mohawk/riven.cpp:718 -#: engines/parallaction/saveload.cpp:197 engines/pegasus/pegasus.cpp:353 -#: engines/scumm/dialogs.cpp:189 engines/tsage/scenes.cpp:600 +#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:120 +#: engines/mohawk/riven.cpp:718 engines/parallaction/saveload.cpp:197 +#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:189 +#: engines/tsage/scenes.cpp:600 msgid "Load" msgstr "Indlęs" @@ -689,132 +691,132 @@ msgstr "Skift til Spil" msgid "Fast replay" msgstr "Hurtig afspil" -#: gui/options.cpp:85 +#: gui/options.cpp:87 common/updates.cpp:56 msgid "Never" msgstr "Aldrig" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 5 mins" msgstr "hvert 5. minut" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 10 mins" msgstr "hvert 10. minut" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 15 mins" msgstr "hvert 15. minut" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 30 mins" msgstr "hvert 30. minut" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "8 kHz" msgstr "8 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "11 kHz" msgstr "11 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "22 kHz" msgstr "22 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "44 kHz" msgstr "44 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "48 kHz" msgstr "48 kHz" -#: gui/options.cpp:255 gui/options.cpp:479 gui/options.cpp:580 -#: gui/options.cpp:649 gui/options.cpp:857 +#: gui/options.cpp:257 gui/options.cpp:481 gui/options.cpp:582 +#: gui/options.cpp:651 gui/options.cpp:859 msgctxt "soundfont" msgid "None" msgstr "Ingen" -#: gui/options.cpp:389 +#: gui/options.cpp:391 msgid "Failed to apply some of the graphic options changes:" msgstr "Anvendelse af ęndringer for grafiske indstillinger fejlede:" -#: gui/options.cpp:401 +#: gui/options.cpp:403 msgid "the video mode could not be changed." msgstr "videotilstanden kunne ikke ęndres." -#: gui/options.cpp:407 +#: gui/options.cpp:409 msgid "the fullscreen setting could not be changed" msgstr "fuld skęrm indstillingen kunne ikke ęndres" -#: gui/options.cpp:413 +#: gui/options.cpp:415 msgid "the aspect ratio setting could not be changed" msgstr "billedformat indstillingen ikke kunne ęndres" -#: gui/options.cpp:732 +#: gui/options.cpp:734 msgid "Graphics mode:" msgstr "Grafik tilstand:" -#: gui/options.cpp:746 +#: gui/options.cpp:748 msgid "Render mode:" msgstr "Rendere tilstand:" -#: gui/options.cpp:746 gui/options.cpp:747 +#: gui/options.cpp:748 gui/options.cpp:749 msgid "Special dithering modes supported by some games" msgstr "Speciel farvereduceringstilstand understųttet a nogle spil" -#: gui/options.cpp:758 +#: gui/options.cpp:760 #: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2316 msgid "Fullscreen mode" msgstr "Fuldskęrms tilstand" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Aspect ratio correction" msgstr "Billedformat korrektion" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Correct aspect ratio for 320x200 games" msgstr "Korrekt billedformat til 320x200 spil" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Preferred Device:" msgstr "Foretruk. enhed:" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Music Device:" msgstr "Musik enhed:" -#: gui/options.cpp:769 gui/options.cpp:771 +#: gui/options.cpp:771 gui/options.cpp:773 msgid "Specifies preferred sound device or sound card emulator" msgstr "Angiver foretukket lyd enhed eller lydkort emulator" -#: gui/options.cpp:769 gui/options.cpp:771 gui/options.cpp:772 +#: gui/options.cpp:771 gui/options.cpp:773 gui/options.cpp:774 msgid "Specifies output sound device or sound card emulator" msgstr "Angiver lyd udgangsenhed eller lydkorts emulator" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Preferred Dev.:" msgstr "Foretruk. enh.:" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Music Device:" msgstr "Musik enhed:" -#: gui/options.cpp:798 +#: gui/options.cpp:800 msgid "AdLib emulator:" msgstr "AdLib emulator:" -#: gui/options.cpp:798 gui/options.cpp:799 +#: gui/options.cpp:800 gui/options.cpp:801 msgid "AdLib is used for music in many games" msgstr "AdLib bliver brugt til musik i mange spil" -#: gui/options.cpp:809 +#: gui/options.cpp:811 msgid "Output rate:" msgstr "Udgangsfrekvens:" -#: gui/options.cpp:809 gui/options.cpp:810 +#: gui/options.cpp:811 gui/options.cpp:812 msgid "" "Higher value specifies better sound quality but may be not supported by your " "soundcard" @@ -822,64 +824,64 @@ msgstr "" "Hųjere vęrdi angiver bedre lyd kvalitet, men understųttes måske ikke af dit " "lydkort" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "GM Device:" msgstr "GM enhed:" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "Specifies default sound device for General MIDI output" msgstr "Angiver standard lyd enhed for Generel MIDI-udgang" -#: gui/options.cpp:831 +#: gui/options.cpp:833 msgid "Don't use General MIDI music" msgstr "Brug ikke Generel MIDI musik" -#: gui/options.cpp:842 gui/options.cpp:908 +#: gui/options.cpp:844 gui/options.cpp:910 msgid "Use first available device" msgstr "Brug fųrste tilgęngelig enhed" -#: gui/options.cpp:854 +#: gui/options.cpp:856 msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:854 gui/options.cpp:856 gui/options.cpp:857 +#: 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 er understųttet af nogle lydkort, FluidSynth og Timidity" -#: gui/options.cpp:856 +#: gui/options.cpp:858 msgctxt "lowres" msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Mixed AdLib/MIDI mode" msgstr "Blandet AdLib/MIDI tilstand" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Use both MIDI and AdLib sound generation" msgstr "Brug både MIDI og AdLib lyd generering" -#: gui/options.cpp:865 +#: gui/options.cpp:867 msgid "MIDI gain:" msgstr "MIDI lydstyrke:" -#: gui/options.cpp:872 +#: gui/options.cpp:874 msgid "FluidSynth Settings" msgstr "FluidSynth indstillinger" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "MT-32 Device:" msgstr "MT-32 enhed:" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output" msgstr "Angiver standard lyd enhed for Roland MT-32/LAPC1/CM32I/CM64 udgang" -#: gui/options.cpp:884 +#: gui/options.cpp:886 msgid "True Roland MT-32 (disable GM emulation)" msgstr "Ęgte Roland MT-32 (undlad GM emulering)" -#: gui/options.cpp:884 gui/options.cpp:886 +#: gui/options.cpp:886 gui/options.cpp:888 msgid "" "Check if you want to use your real hardware Roland-compatible sound device " "connected to your computer" @@ -887,16 +889,16 @@ msgstr "" "Kryds af hvis du vil bruge din rigtige hardware Roland-kompatible lyd enhed " "tilsluttet til din computer" -#: gui/options.cpp:886 +#: gui/options.cpp:888 msgctxt "lowres" msgid "True Roland MT-32 (no GM emulation)" msgstr "Ęgte Roland MT-32 (ingen GM emulering)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "Roland GS Device (enable MT-32 mappings)" msgstr "Roland GS enhed (aktivér MT-32 tilknytninger)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "" "Check if you want to enable patch mappings to emulate an MT-32 on a Roland " "GS device" @@ -904,169 +906,181 @@ msgstr "" "Kryds af hvis du vil aktivere patch tilknytninger, for at emulere en MT-32 " "på en Roland GS enhed" -#: gui/options.cpp:898 +#: gui/options.cpp:900 msgid "Don't use Roland MT-32 music" msgstr "Brug ikke Roland MT-32 musik" -#: gui/options.cpp:925 +#: gui/options.cpp:927 msgid "Text and Speech:" msgstr "Tekst og tale:" -#: gui/options.cpp:929 gui/options.cpp:939 +#: gui/options.cpp:931 gui/options.cpp:941 msgid "Speech" msgstr "Tale" -#: gui/options.cpp:930 gui/options.cpp:940 +#: gui/options.cpp:932 gui/options.cpp:942 msgid "Subtitles" msgstr "Undertekster" -#: gui/options.cpp:931 +#: gui/options.cpp:933 msgid "Both" msgstr "Begge" -#: gui/options.cpp:933 +#: gui/options.cpp:935 msgid "Subtitle speed:" msgstr "Tekst hastighed:" -#: gui/options.cpp:935 +#: gui/options.cpp:937 msgctxt "lowres" msgid "Text and Speech:" msgstr "Tekst og tale:" -#: gui/options.cpp:939 +#: gui/options.cpp:941 msgid "Spch" msgstr "Tale" -#: gui/options.cpp:940 +#: gui/options.cpp:942 msgid "Subs" msgstr "Tekst" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgctxt "lowres" msgid "Both" msgstr "Begge" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgid "Show subtitles and play speech" msgstr "Vis undertekster og afspil tale" -#: gui/options.cpp:943 +#: gui/options.cpp:945 msgctxt "lowres" msgid "Subtitle speed:" msgstr "Tekst hastighed:" -#: gui/options.cpp:959 +#: gui/options.cpp:961 msgid "Music volume:" msgstr "Musik lydstyrke:" -#: gui/options.cpp:961 +#: gui/options.cpp:963 msgctxt "lowres" msgid "Music volume:" msgstr "Musik lydstyrke:" -#: gui/options.cpp:968 +#: gui/options.cpp:970 msgid "Mute All" msgstr "Mute alle" -#: gui/options.cpp:971 +#: gui/options.cpp:973 msgid "SFX volume:" msgstr "SFX lydstyrke:" -#: gui/options.cpp:971 gui/options.cpp:973 gui/options.cpp:974 +#: gui/options.cpp:973 gui/options.cpp:975 gui/options.cpp:976 msgid "Special sound effects volume" msgstr "Lydstyrke for specielle lydeffekter" -#: gui/options.cpp:973 +#: gui/options.cpp:975 msgctxt "lowres" msgid "SFX volume:" msgstr "SFX lydstyrke:" -#: gui/options.cpp:981 +#: gui/options.cpp:983 msgid "Speech volume:" msgstr "Tale lydstyrke:" -#: gui/options.cpp:983 +#: gui/options.cpp:985 msgctxt "lowres" msgid "Speech volume:" msgstr "Tale lydstyrke:" -#: gui/options.cpp:1140 +#: gui/options.cpp:1142 msgid "Theme Path:" msgstr "Tema sti:" -#: gui/options.cpp:1142 +#: gui/options.cpp:1144 msgctxt "lowres" msgid "Theme Path:" msgstr "Tema sti:" -#: gui/options.cpp:1148 gui/options.cpp:1150 gui/options.cpp:1151 +#: gui/options.cpp:1150 gui/options.cpp:1152 gui/options.cpp:1153 msgid "Specifies path to additional data used by all games or ScummVM" msgstr "Angiver sti til ekstra data brugt af alle spil eller ScummVM" -#: gui/options.cpp:1157 +#: gui/options.cpp:1159 msgid "Plugins Path:" msgstr "Plugin sti:" -#: gui/options.cpp:1159 +#: gui/options.cpp:1161 msgctxt "lowres" msgid "Plugins Path:" msgstr "Plugin sti:" -#: gui/options.cpp:1170 +#: gui/options.cpp:1172 msgctxt "lowres" msgid "Misc" msgstr "Andet" -#: gui/options.cpp:1172 +#: gui/options.cpp:1174 msgid "Theme:" msgstr "Tema:" -#: gui/options.cpp:1176 +#: gui/options.cpp:1178 msgid "GUI Renderer:" msgstr "GUI renderer:" -#: gui/options.cpp:1188 +#: gui/options.cpp:1190 msgid "Autosave:" msgstr "Auto gemme:" -#: gui/options.cpp:1190 +#: gui/options.cpp:1192 msgctxt "lowres" msgid "Autosave:" msgstr "Auto gemme:" -#: gui/options.cpp:1198 +#: gui/options.cpp:1200 msgid "Keys" msgstr "Taster" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "GUI Language:" msgstr "Sprog:" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "Language of ScummVM GUI" msgstr "Sprog for brugerfladen i ScummVM" -#: gui/options.cpp:1364 +#: gui/options.cpp:1235 +msgid "Update check:" +msgstr "" + +#: gui/options.cpp:1235 +msgid "How often to check ScummVM updates" +msgstr "" + +#: gui/options.cpp:1247 +msgid "Check now" +msgstr "" + +#: gui/options.cpp:1382 msgid "You have to restart ScummVM before your changes will take effect." msgstr "Du skal genstarte ScummVM fųr dine ęndringer har effekt." -#: gui/options.cpp:1384 +#: gui/options.cpp:1415 msgid "The chosen directory cannot be written to. Please select another one." msgstr "Der kan ikke skrives til det valgte bibliotek. Vęlg venligst et andet." -#: gui/options.cpp:1393 +#: gui/options.cpp:1424 msgid "Select directory for GUI themes" msgstr "Vęlg bibliotek for GUI temaer" -#: gui/options.cpp:1403 +#: gui/options.cpp:1434 msgid "Select directory for extra files" msgstr "Vęlg bibliotek for ekstra filer" -#: gui/options.cpp:1414 +#: gui/options.cpp:1445 msgid "Select directory for plugins" msgstr "Vęlg bibliotek for plugins" -#: gui/options.cpp:1467 +#: gui/options.cpp:1498 msgid "" "The theme you selected does not support your current language. If you want " "to use this theme you need to switch to another language first." @@ -1239,39 +1253,60 @@ msgstr "Antialias renderer" msgid "Antialiased" msgstr "Antialias" -#: gui/widget.cpp:323 gui/widget.cpp:325 gui/widget.cpp:331 gui/widget.cpp:333 +#: gui/updates-dialog.cpp:51 +msgid "" +"ScummVM now supports automatic check for updates\n" +"which requires access to the Internet.\n" +"\n" +"Would you like to enable this feature?" +msgstr "" + +#: gui/updates-dialog.cpp:55 +msgid "(You can always enable it in the options dialog on the Misc tab)" +msgstr "" + +#: gui/updates-dialog.cpp:92 +#, fuzzy +msgid "Check for updates automatically" +msgstr "Sųg efter opdateringer..." + +#: gui/updates-dialog.cpp:111 +msgid "Proceed" +msgstr "" + +#: gui/widget.cpp:327 gui/widget.cpp:329 gui/widget.cpp:335 gui/widget.cpp:337 msgid "Clear value" msgstr "Slet vęrdi" -#: base/main.cpp:237 +#: base/main.cpp:240 #, c-format msgid "Engine does not support debug level '%s'" msgstr "Motor understųtter ikke fejlfindingsniveau '%s'" -#: base/main.cpp:309 +#: base/main.cpp:312 msgid "Menu" msgstr "Menu" -#: base/main.cpp:312 backends/platform/symbian/src/SymbianActions.cpp:45 +#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:45 #: backends/platform/wince/CEActionsPocket.cpp:45 #: backends/platform/wince/CEActionsSmartphone.cpp:46 msgid "Skip" msgstr "Spring over" -#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:50 +#: base/main.cpp:318 backends/platform/symbian/src/SymbianActions.cpp:50 #: backends/platform/wince/CEActionsPocket.cpp:42 msgid "Pause" msgstr "Pause" -#: base/main.cpp:318 +#: base/main.cpp:321 msgid "Skip line" msgstr "Spring linje over" -#: base/main.cpp:510 +#: base/main.cpp:520 msgid "Error running game:" msgstr "Fejl ved kųrsel af spil:" -#: base/main.cpp:557 +#: base/main.cpp:567 msgid "Could not find any engine capable of running the selected game" msgstr "Kunne ikke finde nogen motor istand til at afvikle det valgte spil" @@ -1366,17 +1401,34 @@ msgctxt "lowres" msgid "Hercules Amber" msgstr "Hercules brun" -#: engines/advancedDetector.cpp:317 +#: common/updates.cpp:58 +msgid "Daily" +msgstr "" + +#: common/updates.cpp:60 +msgid "Weekly" +msgstr "" + +#: common/updates.cpp:62 +msgid "Monthly" +msgstr "" + +#: common/updates.cpp:64 +#, fuzzy +msgid "<Bad value>" +msgstr "Slet vęrdi" + +#: engines/advancedDetector.cpp:334 #, c-format msgid "The game in '%s' seems to be unknown." msgstr "Spillet i '%s' ser ud til at vęre ukendt." -#: engines/advancedDetector.cpp:318 +#: engines/advancedDetector.cpp:335 msgid "Please, report the following data to the ScummVM team along with name" msgstr "" "Venligst, rapportere fųlgende data til ScummVM holdet sammen med navnet" -#: engines/advancedDetector.cpp:320 +#: engines/advancedDetector.cpp:337 msgid "of the game you tried to add and its version/language/etc.:" msgstr "på det spil, du forsųgte at tilfųje og dets version/sprog/ etc.:" @@ -1384,11 +1436,11 @@ msgstr "på det spil, du forsųgte at tilfųje og dets version/sprog/ etc.:" msgid "~R~esume" msgstr "Gen~o~ptag" -#: engines/dialogs.cpp:87 +#: engines/dialogs.cpp:87 engines/mohawk/dialogs.cpp:113 msgid "~L~oad" msgstr "~H~ent" -#: engines/dialogs.cpp:91 +#: engines/dialogs.cpp:91 engines/mohawk/dialogs.cpp:114 msgid "~S~ave" msgstr "~G~em" @@ -1417,9 +1469,9 @@ msgstr "~R~etur til oversigt" #: engines/avalanche/parser.cpp:1899 engines/cge/events.cpp:74 #: engines/cge2/events.cpp:67 engines/cruise/menu.cpp:212 #: engines/drascula/saveload.cpp:336 engines/dreamweb/saveload.cpp:261 -#: engines/hugo/file.cpp:298 engines/neverhood/menumodule.cpp:877 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/hugo/file.cpp:298 engines/mohawk/dialogs.cpp:121 +#: engines/neverhood/menumodule.cpp:877 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save game:" @@ -1434,9 +1486,10 @@ msgstr "Gemmer:" #: engines/cge/events.cpp:74 engines/cge2/events.cpp:67 #: engines/cruise/menu.cpp:212 engines/drascula/saveload.cpp:336 #: engines/dreamweb/saveload.cpp:261 engines/hugo/file.cpp:298 -#: engines/neverhood/menumodule.cpp:877 engines/parallaction/saveload.cpp:212 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/scumm/dialogs.cpp:188 engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/mohawk/dialogs.cpp:121 engines/neverhood/menumodule.cpp:877 +#: engines/parallaction/saveload.cpp:212 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/scumm/dialogs.cpp:188 +#: engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save" @@ -1461,13 +1514,13 @@ msgstr "" "Gem af spiltilstand fejlede (%s)! Se venligst README for grundlęggende " "oplysninger, og for at få instruktioner om, hvordan man får yderligere hjęlp." -#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:109 -#: engines/mohawk/dialogs.cpp:170 engines/tsage/dialogs.cpp:106 +#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:117 +#: engines/mohawk/dialogs.cpp:242 engines/tsage/dialogs.cpp:106 msgid "~O~K" msgstr "~O~K" -#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:110 -#: engines/mohawk/dialogs.cpp:171 engines/tsage/dialogs.cpp:107 +#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:118 +#: engines/mohawk/dialogs.cpp:243 engines/tsage/dialogs.cpp:107 msgid "~C~ancel" msgstr "~F~ortryd" @@ -1623,11 +1676,11 @@ msgstr "FM Towns lyd" msgid "PC-98 Audio" msgstr "PC-98 lyd" -#: audio/softsynth/mt32.cpp:200 +#: audio/softsynth/mt32.cpp:196 msgid "Initializing MT-32 Emulator" msgstr "Initialisere MT-32 emulator" -#: audio/softsynth/mt32.cpp:426 +#: audio/softsynth/mt32.cpp:434 msgid "MT-32 Emulator" msgstr "MT-32 emulator" @@ -1744,11 +1797,11 @@ msgstr "Auto-tręk tilstand er nu" msgid "Swipe three fingers to the right to toggle." msgstr "Fųr tre fingre til hųjre for at skifte." -#: backends/graphics/opengl/opengl-graphics.cpp:119 +#: backends/graphics/opengl/opengl-graphics.cpp:126 msgid "OpenGL" msgstr "OpenGL" -#: backends/graphics/opengl/opengl-graphics.cpp:120 +#: backends/graphics/opengl/opengl-graphics.cpp:127 msgid "OpenGL (No filtering)" msgstr "OpenGL (Ingen filtrering)" @@ -2301,20 +2354,20 @@ msgstr "" "Glem ikke at tildele en tast til 'Skjul vęrktųjslinje' handling for at se " "hele oversigten" -#: backends/updates/macosx/macosx-updates.mm:67 +#: backends/updates/macosx/macosx-updates.mm:68 msgid "Check for Updates..." msgstr "Sųg efter opdateringer..." #: engines/agi/detection.cpp:147 engines/cine/detection.cpp:70 #: engines/drascula/detection.cpp:302 engines/dreamweb/detection.cpp:47 -#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:404 +#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:410 #: engines/toltecs/detection.cpp:200 engines/zvision/detection_tables.h:51 msgid "Use original save/load screens" msgstr "Brug original gem/indlęs skęrme" #: engines/agi/detection.cpp:148 engines/cine/detection.cpp:71 #: engines/drascula/detection.cpp:303 engines/dreamweb/detection.cpp:48 -#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:405 +#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:411 #: engines/toltecs/detection.cpp:201 msgid "Use the original save/load screens, instead of the ScummVM ones" msgstr "Brug de originale gem/indlęs skęrme, istedet for dem fra ScummVM" @@ -2342,11 +2395,30 @@ msgstr "" "Aktivér muse support. Gųr det muligt at bruge musen til bevęgelse og i spil " "menuer." +#: engines/agi/detection.cpp:177 +#, fuzzy +msgid "Use Hercules hires font" +msgstr "Hercules grųn" + +#: engines/agi/detection.cpp:178 +msgid "Uses Hercules hires font, when font file is available." +msgstr "" + +#: engines/agi/detection.cpp:187 +msgid "Pause when entering commands" +msgstr "" + +#: engines/agi/detection.cpp:188 +msgid "" +"Shows a command prompt window and pauses the game (like in SCI) instead of a " +"real-time prompt." +msgstr "" + #: engines/agi/saveload.cpp:777 engines/avalanche/parser.cpp:1887 #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore game:" @@ -2356,13 +2428,13 @@ msgstr "Gendan spil:" #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore" msgstr "Gendan" -#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2377 +#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2374 #, c-format msgid "" "Failed to load game state from file:\n" @@ -2373,7 +2445,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2370 +#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2367 #, c-format msgid "" "Failed to save game state to file:\n" @@ -2384,7 +2456,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2388 +#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2385 #, c-format msgid "" "Successfully saved game state in file:\n" @@ -2631,29 +2703,39 @@ msgstr "" "'import_savefile'.\n" "\n" +#: engines/mohawk/detection.cpp:168 +msgid "Play the Myst fly by movie" +msgstr "" + +#: engines/mohawk/detection.cpp:169 +msgid "The Myst fly by movie was not played by the original engine." +msgstr "" + #. I18N: Option for fast scene switching -#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:167 +#: engines/mohawk/dialogs.cpp:96 engines/mohawk/dialogs.cpp:239 msgid "~Z~ip Mode Activated" msgstr "~Z~ip tilstand aktiveret" -#: engines/mohawk/dialogs.cpp:93 +#: engines/mohawk/dialogs.cpp:97 msgid "~T~ransitions Enabled" msgstr "~O~vergange aktiveret" #. I18N: Drop book page -#: engines/mohawk/dialogs.cpp:95 +#: engines/mohawk/dialogs.cpp:99 msgid "~D~rop Page" msgstr "Smi~d~ side" -#: engines/mohawk/dialogs.cpp:99 -msgid "~S~how Map" +#: engines/mohawk/dialogs.cpp:103 +#, fuzzy +msgid "Show ~M~ap" msgstr "Vi~s~ kort" -#: engines/mohawk/dialogs.cpp:105 -msgid "~M~ain Menu" +#: engines/mohawk/dialogs.cpp:109 +#, fuzzy +msgid "Main Men~u~" msgstr "Hoved~m~enu" -#: engines/mohawk/dialogs.cpp:168 +#: engines/mohawk/dialogs.cpp:240 msgid "~W~ater Effect Enabled" msgstr "~V~andeffekter aktiveret" @@ -2776,37 +2858,37 @@ msgstr "Alternativ intro" msgid "Use an alternative game intro (CD version only)" msgstr "Brug en alternativ spil intro (kun CD version)" -#: engines/sci/detection.cpp:374 +#: engines/sci/detection.cpp:380 msgid "Skip EGA dithering pass (full color backgrounds)" msgstr "Skip EGA farvereducering (fuldfarvet baggrunde)" -#: engines/sci/detection.cpp:375 +#: engines/sci/detection.cpp:381 msgid "Skip dithering pass in EGA games, graphics are shown with full colors" msgstr "" "Spring farvereducering i EGA spil over, grafikken bliver vist med fulde " "farver" -#: engines/sci/detection.cpp:384 +#: engines/sci/detection.cpp:390 msgid "Enable high resolution graphics" msgstr "Aktivér grafik i hųj oplųsning" -#: engines/sci/detection.cpp:385 +#: engines/sci/detection.cpp:391 msgid "Enable high resolution graphics/content" msgstr "Aktivér hųj oplųsnings grafik/indhold" -#: engines/sci/detection.cpp:394 +#: engines/sci/detection.cpp:400 msgid "Prefer digital sound effects" msgstr "Foretręk digitale lydeffekter" -#: engines/sci/detection.cpp:395 +#: engines/sci/detection.cpp:401 msgid "Prefer digital sound effects instead of synthesized ones" msgstr "Foretręk digitale lydeffekter i stedet for syntetiserede" -#: engines/sci/detection.cpp:414 +#: engines/sci/detection.cpp:420 msgid "Use IMF/Yamaha FB-01 for MIDI output" msgstr "Brug IMF/Yamaha FB-01 til MIDI-udgang" -#: engines/sci/detection.cpp:415 +#: engines/sci/detection.cpp:421 msgid "" "Use an IBM Music Feature card or a Yamaha FB-01 FM synth module for MIDI " "output" @@ -2814,33 +2896,42 @@ msgstr "" "Bruge et IBM Musik Feature-kort eller et Yamaha FB-01 FM synth modul til " "MIDI-udgang" -#: engines/sci/detection.cpp:425 +#: engines/sci/detection.cpp:431 msgid "Use CD audio" msgstr "Brug CD lyd" -#: engines/sci/detection.cpp:426 +#: engines/sci/detection.cpp:432 msgid "Use CD audio instead of in-game audio, if available" msgstr "Brug cd-lyd i stedet for lyd fra spillet, hvis tilgęngelige" -#: engines/sci/detection.cpp:436 +#: engines/sci/detection.cpp:442 msgid "Use Windows cursors" msgstr "Brug Windows markųr" -#: engines/sci/detection.cpp:437 +#: engines/sci/detection.cpp:443 msgid "" "Use the Windows cursors (smaller and monochrome) instead of the DOS ones" msgstr "Brug Windows-markųrer (mindre og monokrome) i stedet for dem fra DOS" -#: engines/sci/detection.cpp:447 +#: engines/sci/detection.cpp:453 msgid "Use silver cursors" msgstr "Brug sųlv markųr" -#: engines/sci/detection.cpp:448 +#: engines/sci/detection.cpp:454 msgid "" "Use the alternate set of silver cursors, instead of the normal golden ones" msgstr "" "Brug det alternative sęt af sųlv markųrer, i stedet for de normale gyldne" +#: engines/scumm/detection.cpp:1335 +#, fuzzy +msgid "Show Object Line" +msgstr "Vis labels på genstande" + +#: engines/scumm/detection.cpp:1336 +msgid "Show the names of objects at the bottom of the screen" +msgstr "" + #: engines/scumm/dialogs.cpp:176 #, c-format msgid "Insert Disk %c and Press Button to Continue." @@ -3506,7 +3597,7 @@ msgstr "Musik lydstyrke: " msgid "Subtitle speed: " msgstr "Tekst hastighed: " -#: engines/scumm/scumm.cpp:1832 +#: engines/scumm/scumm.cpp:1829 #, c-format msgid "" "Native MIDI support requires the Roland Upgrade from LucasArts,\n" @@ -3515,7 +3606,7 @@ msgstr "" "Indbygget MIDI understųttelse kręver Roland opgradering fra LucasArts,\n" "men %s mangler. Bruger AdLib i stedet." -#: engines/scumm/scumm.cpp:2644 +#: engines/scumm/scumm.cpp:2645 msgid "" "Usually, Maniac Mansion would start now. But for that to work, the game " "files for Maniac Mansion have to be in the 'Maniac' directory inside the " @@ -3695,6 +3786,15 @@ msgstr "Vis labels på genstande" msgid "Show labels for objects on mouse hover" msgstr "Vis labels for genstande musen er henover" +#: engines/sword25/detection.cpp:46 +msgid "Use English speech" +msgstr "" + +#: engines/sword25/detection.cpp:47 +msgid "" +"Use English speech instead of German for every language other than German" +msgstr "" + #: engines/teenagent/resources.cpp:95 msgid "" "You're missing the 'teenagent.dat' file. Get it from the ScummVM website" diff --git a/po/de_DE.po b/po/de_DE.po index dbfeba57d5..65765ecca0 100644 --- a/po/de_DE.po +++ b/po/de_DE.po @@ -1,23 +1,22 @@ # German translation for ScummVM. # Copyright (C) 2010-2016 The ScummVM Team # This file is distributed under the same license as the ScummVM package. -# Simon Sawatzki <SimSaw@gmx.de>, Lothar Serra Mari <scummvm@rootfather.de>, 2016. +# Simon Sawatzki <SimSaw@gmx.de>, Lothar Serra Mari <rootfather@scummvm.org>, 2016. # msgid "" msgstr "" -"Project-Id-Version: ScummVM 1.8.0git\n" +"Project-Id-Version: ScummVM 1.9.0git\n" "Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n" -"POT-Creation-Date: 2016-02-20 21:22+0000\n" -"PO-Revision-Date: 2016-02-22 20:53+0100\n" -"Last-Translator: Simon Sawatzki <SimSaw@gmx.de>\n" +"POT-Creation-Date: 2016-04-07 08:55+0200\n" +"PO-Revision-Date: 2016-05-01 15:45+0200\n" +"Last-Translator: Lothar Serra Mari <rootfather@scummvm.org>\n" "Language-Team: Simon Sawatzki <SimSaw@gmx.de>, Lothar Serra Mari " -"<scummvm@rootfather.de>\n" +"<rootfather@scummvm.org>\n" "Language: Deutsch\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Poedit 1.8.5\n" #: gui/about.cpp:94 #, c-format @@ -57,10 +56,11 @@ msgstr "Pfad hoch" #: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editrecorddialog.cpp:67 #: gui/filebrowser-dialog.cpp:64 gui/fluidsynth-dialog.cpp:152 #: gui/KeysDialog.cpp:43 gui/launcher.cpp:351 gui/massadd.cpp:95 -#: gui/options.cpp:1237 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 +#: gui/options.cpp:1255 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 #: gui/recorderdialog.cpp:156 gui/saveload-dialog.cpp:216 #: gui/saveload-dialog.cpp:276 gui/saveload-dialog.cpp:547 -#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 engines/engine.cpp:546 +#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 +#: gui/updates-dialog.cpp:113 engines/engine.cpp:546 #: backends/events/default/default-events.cpp:196 #: backends/events/default/default-events.cpp:218 #: backends/platform/wii/options.cpp:48 engines/drascula/saveload.cpp:49 @@ -174,7 +174,7 @@ msgstr "Sinus" msgid "Triangle" msgstr "Dreieck" -#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1168 +#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1170 msgid "Misc" msgstr "Sonstiges" @@ -200,7 +200,7 @@ msgstr "Siebenstufig" #: gui/fluidsynth-dialog.cpp:150 msgid "Reset" -msgstr "Rücksetzen" +msgstr "Zurücksetzen" #: gui/fluidsynth-dialog.cpp:150 msgid "Reset all FluidSynth settings to their default values." @@ -208,12 +208,12 @@ msgstr "Setzt alle FluidSynth-Einstellungen auf ihre Standard-Werte zurück." #: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:352 #: gui/launcher.cpp:1050 gui/launcher.cpp:1054 gui/massadd.cpp:92 -#: gui/options.cpp:1238 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 +#: gui/options.cpp:1256 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 #: engines/engine.cpp:476 backends/platform/wii/options.cpp:47 #: backends/platform/wince/CELauncherDialog.cpp:54 #: engines/agos/animation.cpp:558 engines/drascula/saveload.cpp:49 #: engines/groovie/script.cpp:408 engines/parallaction/saveload.cpp:274 -#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1834 +#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1831 #: engines/scumm/players/player_v3m.cpp:130 #: engines/scumm/players/player_v5m.cpp:108 engines/sky/compact.cpp:131 #: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:524 @@ -243,15 +243,15 @@ msgstr "Schließen" msgid "Mouse click" msgstr "Mausklick" -#: gui/gui-manager.cpp:126 base/main.cpp:322 +#: gui/gui-manager.cpp:126 base/main.cpp:325 msgid "Display keyboard" msgstr "Tastatur anzeigen" -#: gui/gui-manager.cpp:130 base/main.cpp:326 +#: gui/gui-manager.cpp:130 base/main.cpp:329 msgid "Remap keys" msgstr "Tasten neu zuweisen" -#: gui/gui-manager.cpp:133 base/main.cpp:329 engines/scumm/help.cpp:87 +#: gui/gui-manager.cpp:133 base/main.cpp:332 engines/scumm/help.cpp:87 msgid "Toggle fullscreen" msgstr "Vollbild umschalten" @@ -327,8 +327,8 @@ msgstr "" "Sprache des Spiels. Diese Funktion wird nicht eine spanische Version des " "Spiels in eine deutsche verwandeln." -#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:87 -#: gui/options.cpp:735 gui/options.cpp:748 gui/options.cpp:1208 +#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:89 +#: gui/options.cpp:737 gui/options.cpp:750 gui/options.cpp:1210 #: audio/null.cpp:41 msgid "<default>" msgstr "<Standard>" @@ -350,11 +350,11 @@ msgstr "Plattform:" msgid "Engine" msgstr "Engine" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "Graphics" msgstr "Grafik" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "GFX" msgstr "GFX" @@ -367,7 +367,7 @@ msgctxt "lowres" msgid "Override global graphic settings" msgstr "Globale Grafik-Einstellungen übergehen" -#: gui/launcher.cpp:257 gui/options.cpp:1094 +#: gui/launcher.cpp:257 gui/options.cpp:1096 msgid "Audio" msgstr "Audio" @@ -380,11 +380,11 @@ msgctxt "lowres" msgid "Override global audio settings" msgstr "Globale Audio-Einstellungen übergehen" -#: gui/launcher.cpp:271 gui/options.cpp:1099 +#: gui/launcher.cpp:271 gui/options.cpp:1101 msgid "Volume" msgstr "Lautstärke" -#: gui/launcher.cpp:273 gui/options.cpp:1101 +#: gui/launcher.cpp:273 gui/options.cpp:1103 msgctxt "lowres" msgid "Volume" msgstr "Lautst." @@ -398,7 +398,7 @@ msgctxt "lowres" msgid "Override global volume settings" msgstr "Globale Lautstärke-Einstellungen übergehen" -#: gui/launcher.cpp:286 gui/options.cpp:1109 +#: gui/launcher.cpp:286 gui/options.cpp:1111 msgid "MIDI" msgstr "MIDI" @@ -411,7 +411,7 @@ msgctxt "lowres" msgid "Override global MIDI settings" msgstr "Globale MIDI-Einstellungen übergehen" -#: gui/launcher.cpp:300 gui/options.cpp:1115 +#: gui/launcher.cpp:300 gui/options.cpp:1117 msgid "MT-32" msgstr "MT-32" @@ -424,11 +424,11 @@ msgctxt "lowres" msgid "Override global MT-32 settings" msgstr "Globale MT-32-Einstellungen übergehen" -#: gui/launcher.cpp:314 gui/options.cpp:1122 +#: gui/launcher.cpp:314 gui/options.cpp:1124 msgid "Paths" msgstr "Pfade" -#: gui/launcher.cpp:316 gui/options.cpp:1124 +#: gui/launcher.cpp:316 gui/options.cpp:1126 msgctxt "lowres" msgid "Paths" msgstr "Pfade" @@ -442,7 +442,7 @@ msgctxt "lowres" msgid "Game Path:" msgstr "Spielpfad:" -#: gui/launcher.cpp:330 gui/options.cpp:1148 +#: gui/launcher.cpp:330 gui/options.cpp:1150 msgid "Extra Path:" msgstr "Extras:" @@ -450,42 +450,42 @@ msgstr "Extras:" msgid "Specifies path to additional data used by the game" msgstr "Legt das Verzeichnis für zusätzliche Spieldateien fest." -#: gui/launcher.cpp:332 gui/options.cpp:1150 +#: gui/launcher.cpp:332 gui/options.cpp:1152 msgctxt "lowres" msgid "Extra Path:" msgstr "Extras:" -#: gui/launcher.cpp:339 gui/options.cpp:1132 +#: gui/launcher.cpp:339 gui/options.cpp:1134 msgid "Save Path:" msgstr "Spielstände:" #: gui/launcher.cpp:339 gui/launcher.cpp:341 gui/launcher.cpp:342 -#: gui/options.cpp:1132 gui/options.cpp:1134 gui/options.cpp:1135 +#: gui/options.cpp:1134 gui/options.cpp:1136 gui/options.cpp:1137 msgid "Specifies where your saved games are put" msgstr "Legt fest, wo die Spielstände gespeichert werden." -#: gui/launcher.cpp:341 gui/options.cpp:1134 +#: gui/launcher.cpp:341 gui/options.cpp:1136 msgctxt "lowres" msgid "Save Path:" msgstr "Spielstände:" #: gui/launcher.cpp:360 gui/launcher.cpp:459 gui/launcher.cpp:517 -#: gui/launcher.cpp:571 gui/options.cpp:1143 gui/options.cpp:1151 -#: gui/options.cpp:1160 gui/options.cpp:1275 gui/options.cpp:1281 -#: gui/options.cpp:1289 gui/options.cpp:1319 gui/options.cpp:1325 -#: gui/options.cpp:1332 gui/options.cpp:1425 gui/options.cpp:1428 -#: gui/options.cpp:1440 +#: gui/launcher.cpp:571 gui/options.cpp:1145 gui/options.cpp:1153 +#: gui/options.cpp:1162 gui/options.cpp:1293 gui/options.cpp:1299 +#: gui/options.cpp:1307 gui/options.cpp:1337 gui/options.cpp:1343 +#: gui/options.cpp:1350 gui/options.cpp:1456 gui/options.cpp:1459 +#: gui/options.cpp:1471 msgctxt "path" msgid "None" msgstr "Keiner" #: gui/launcher.cpp:365 gui/launcher.cpp:465 gui/launcher.cpp:575 -#: gui/options.cpp:1269 gui/options.cpp:1313 gui/options.cpp:1431 +#: gui/options.cpp:1287 gui/options.cpp:1331 gui/options.cpp:1462 #: backends/platform/wii/options.cpp:56 msgid "Default" msgstr "Standard" -#: gui/launcher.cpp:510 gui/options.cpp:1434 +#: gui/launcher.cpp:510 gui/options.cpp:1465 msgid "Select SoundFont" msgstr "SoundFont auswählen" @@ -497,7 +497,7 @@ msgstr "Verzeichnis mit Spieldateien auswählen" msgid "Select additional game directory" msgstr "Verzeichnis mit zusätzlichen Dateien auswählen" -#: gui/launcher.cpp:559 gui/options.cpp:1377 +#: gui/launcher.cpp:559 gui/options.cpp:1408 msgid "Select directory for saved games" msgstr "Verzeichnis für Spielstände auswählen" @@ -505,7 +505,7 @@ msgstr "Verzeichnis für Spielstände auswählen" msgid "This game ID is already taken. Please choose another one." msgstr "Diese Spielkennung ist schon vergeben. Bitte eine andere wählen." -#: gui/launcher.cpp:626 engines/dialogs.cpp:111 +#: gui/launcher.cpp:626 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:115 msgid "~Q~uit" msgstr "~B~eenden" @@ -595,17 +595,18 @@ msgid "Search:" msgstr "Suchen:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214 -#: engines/mohawk/riven.cpp:718 engines/pegasus/pegasus.cpp:353 -#: engines/tsage/scenes.cpp:600 +#: engines/mohawk/dialogs.cpp:120 engines/mohawk/riven.cpp:718 +#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:600 msgid "Load game:" msgstr "Spiel laden:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 #: backends/platform/wince/CEActionsPocket.cpp:267 #: backends/platform/wince/CEActionsSmartphone.cpp:231 -#: engines/cruise/menu.cpp:214 engines/mohawk/riven.cpp:718 -#: engines/parallaction/saveload.cpp:197 engines/pegasus/pegasus.cpp:353 -#: engines/scumm/dialogs.cpp:189 engines/tsage/scenes.cpp:600 +#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:120 +#: engines/mohawk/riven.cpp:718 engines/parallaction/saveload.cpp:197 +#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:189 +#: engines/tsage/scenes.cpp:600 msgid "Load" msgstr "Laden" @@ -693,135 +694,135 @@ msgstr "Wechsle" msgid "Fast replay" msgstr "Schneller Modus" -#: gui/options.cpp:85 +#: gui/options.cpp:87 common/updates.cpp:56 msgid "Never" msgstr "Niemals" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 5 mins" msgstr "alle 5 Minuten" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 10 mins" msgstr "alle 10 Minuten" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 15 mins" msgstr "alle 15 Minuten" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 30 mins" msgstr "alle 30 Minuten" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "8 kHz" msgstr "8 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "11 kHz" msgstr "11 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "22 kHz" msgstr "22 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "44 kHz" msgstr "44 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "48 kHz" msgstr "48 kHz" -#: gui/options.cpp:255 gui/options.cpp:479 gui/options.cpp:580 -#: gui/options.cpp:649 gui/options.cpp:857 +#: gui/options.cpp:257 gui/options.cpp:481 gui/options.cpp:582 +#: gui/options.cpp:651 gui/options.cpp:859 msgctxt "soundfont" msgid "None" msgstr "Kein SoundFont" -#: gui/options.cpp:389 +#: gui/options.cpp:391 msgid "Failed to apply some of the graphic options changes:" msgstr "Folgende Grafikoptionen konnten nicht geändert werden:" -#: gui/options.cpp:401 +#: gui/options.cpp:403 msgid "the video mode could not be changed." msgstr "Grafikmodus konnte nicht geändert werden." -#: gui/options.cpp:407 +#: gui/options.cpp:409 msgid "the fullscreen setting could not be changed" msgstr "Vollbildeinstellung konnte nicht geändert werden." -#: gui/options.cpp:413 +#: gui/options.cpp:415 msgid "the aspect ratio setting could not be changed" msgstr "" "Einstellung für Seitenverhältniskorrektur konnte nicht geändert werden." -#: gui/options.cpp:732 +#: gui/options.cpp:734 msgid "Graphics mode:" msgstr "Grafikmodus:" -#: gui/options.cpp:746 +#: gui/options.cpp:748 msgid "Render mode:" msgstr "Render-Modus:" -#: gui/options.cpp:746 gui/options.cpp:747 +#: gui/options.cpp:748 gui/options.cpp:749 msgid "Special dithering modes supported by some games" msgstr "" "Spezielle Farbmischungsmethoden werden von manchen Spielen unterstützt." -#: gui/options.cpp:758 +#: gui/options.cpp:760 #: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2316 msgid "Fullscreen mode" msgstr "Vollbildmodus" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Aspect ratio correction" msgstr "Seitenverhältnis korrigieren" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Correct aspect ratio for 320x200 games" msgstr "Seitenverhältnis für Spiele mit der Auflösung 320x200 korrigieren" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Preferred Device:" msgstr "Bevorzugtes Gerät:" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Music Device:" msgstr "Musikgerät:" -#: gui/options.cpp:769 gui/options.cpp:771 +#: gui/options.cpp:771 gui/options.cpp:773 msgid "Specifies preferred sound device or sound card emulator" msgstr "" "Legt das bevorzugte Tonwiedergabe-Gerät oder den Soundkarten-Emulator fest." -#: gui/options.cpp:769 gui/options.cpp:771 gui/options.cpp:772 +#: gui/options.cpp:771 gui/options.cpp:773 gui/options.cpp:774 msgid "Specifies output sound device or sound card emulator" msgstr "Legt das Musikwiedergabe-Gerät oder den Soundkarten-Emulator fest." -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Preferred Dev.:" msgstr "Standard-Gerät:" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Music Device:" msgstr "Musikgerät:" -#: gui/options.cpp:798 +#: gui/options.cpp:800 msgid "AdLib emulator:" msgstr "AdLib-Emulator" -#: gui/options.cpp:798 gui/options.cpp:799 +#: gui/options.cpp:800 gui/options.cpp:801 msgid "AdLib is used for music in many games" msgstr "AdLib wird für die Musik in vielen Spielen verwendet." -#: gui/options.cpp:809 +#: gui/options.cpp:811 msgid "Output rate:" msgstr "Ausgabefrequenz:" -#: gui/options.cpp:809 gui/options.cpp:810 +#: gui/options.cpp:811 gui/options.cpp:812 msgid "" "Higher value specifies better sound quality but may be not supported by your " "soundcard" @@ -829,68 +830,68 @@ msgstr "" "Höhere Werte bewirken eine bessere Soundqualität, werden aber möglicherweise " "nicht von jeder Soundkarte unterstützt." -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "GM Device:" msgstr "GM-Gerät:" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "Specifies default sound device for General MIDI output" msgstr "" "Legt das standardmäßige Musikwiedergabe-Gerät für General-MIDI-Ausgabe fest." -#: gui/options.cpp:831 +#: gui/options.cpp:833 msgid "Don't use General MIDI music" msgstr "Keine General-MIDI-Musik" -#: gui/options.cpp:842 gui/options.cpp:908 +#: gui/options.cpp:844 gui/options.cpp:910 msgid "Use first available device" msgstr "Erstes verfügbares Gerät" -#: gui/options.cpp:854 +#: gui/options.cpp:856 msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:854 gui/options.cpp:856 gui/options.cpp:857 +#: 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 wird von einigen Soundkarten, FluidSynth und Timidity unterstützt." -#: gui/options.cpp:856 +#: gui/options.cpp:858 msgctxt "lowres" msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Mixed AdLib/MIDI mode" msgstr "Gemischter AdLib/MIDI-Modus" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Use both MIDI and AdLib sound generation" msgstr "Kombiniert MIDI-Musik mit AdLib-Soundeffekten" -#: gui/options.cpp:865 +#: gui/options.cpp:867 msgid "MIDI gain:" msgstr "MIDI-Lautstärke:" -#: gui/options.cpp:872 +#: gui/options.cpp:874 msgid "FluidSynth Settings" msgstr "FluidSynth-Einstellungen" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "MT-32 Device:" msgstr "MT-32-Gerät:" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output" msgstr "" "Legt das standardmäßige Tonwiedergabe-Gerät für die Ausgabe von Roland MT-32/" "LAPC1/CM32l/CM64 fest." -#: gui/options.cpp:884 +#: gui/options.cpp:886 msgid "True Roland MT-32 (disable GM emulation)" msgstr "Echte Roland MT-32 (GM-Emulation deaktiviert)" -#: gui/options.cpp:884 gui/options.cpp:886 +#: gui/options.cpp:886 gui/options.cpp:888 msgid "" "Check if you want to use your real hardware Roland-compatible sound device " "connected to your computer" @@ -898,16 +899,16 @@ msgstr "" "Wählen Sie dies aus, wenn Sie ein echtes Roland-kompatibles Soundgerät " "verwenden" -#: gui/options.cpp:886 +#: gui/options.cpp:888 msgctxt "lowres" msgid "True Roland MT-32 (no GM emulation)" msgstr "Echte Roland MT-32 (keine GM-Emulation)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "Roland GS Device (enable MT-32 mappings)" msgstr "Roland-GS-Gerät (MT-32-Zuweisungen aktivieren)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "" "Check if you want to enable patch mappings to emulate an MT-32 on a Roland " "GS device" @@ -915,174 +916,186 @@ 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:898 +#: gui/options.cpp:900 msgid "Don't use Roland MT-32 music" msgstr "Keine Roland-MT-32-Musik" -#: gui/options.cpp:925 +#: gui/options.cpp:927 msgid "Text and Speech:" msgstr "Sprache und Text:" -#: gui/options.cpp:929 gui/options.cpp:939 +#: gui/options.cpp:931 gui/options.cpp:941 msgid "Speech" msgstr "Sprache" -#: gui/options.cpp:930 gui/options.cpp:940 +#: gui/options.cpp:932 gui/options.cpp:942 msgid "Subtitles" msgstr "Untertitel" -#: gui/options.cpp:931 +#: gui/options.cpp:933 msgid "Both" msgstr "Beides" -#: gui/options.cpp:933 +#: gui/options.cpp:935 msgid "Subtitle speed:" msgstr "Untertitel-Tempo:" -#: gui/options.cpp:935 +#: gui/options.cpp:937 msgctxt "lowres" msgid "Text and Speech:" msgstr "Text u. Sprache:" -#: gui/options.cpp:939 +#: gui/options.cpp:941 msgid "Spch" msgstr "Spr." -#: gui/options.cpp:940 +#: gui/options.cpp:942 msgid "Subs" msgstr "Text" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgctxt "lowres" msgid "Both" msgstr "S+T" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgid "Show subtitles and play speech" msgstr "Untertitel anzeigen und Sprachausgabe aktivieren" -#: gui/options.cpp:943 +#: gui/options.cpp:945 msgctxt "lowres" msgid "Subtitle speed:" msgstr "Text-Tempo:" -#: gui/options.cpp:959 +#: gui/options.cpp:961 msgid "Music volume:" msgstr "Musiklautstärke:" -#: gui/options.cpp:961 +#: gui/options.cpp:963 msgctxt "lowres" msgid "Music volume:" msgstr "Musiklautstärke:" -#: gui/options.cpp:968 +#: gui/options.cpp:970 msgid "Mute All" -msgstr "Alles aus" +msgstr "Stumm" -#: gui/options.cpp:971 +#: gui/options.cpp:973 msgid "SFX volume:" msgstr "Effektlautstärke:" -#: gui/options.cpp:971 gui/options.cpp:973 gui/options.cpp:974 +#: gui/options.cpp:973 gui/options.cpp:975 gui/options.cpp:976 msgid "Special sound effects volume" msgstr "Lautstärke spezieller Geräusch-Effekte" -#: gui/options.cpp:973 +#: gui/options.cpp:975 msgctxt "lowres" msgid "SFX volume:" msgstr "Effektlautst.:" -#: gui/options.cpp:981 +#: gui/options.cpp:983 msgid "Speech volume:" msgstr "Sprachlautstärke:" -#: gui/options.cpp:983 +#: gui/options.cpp:985 msgctxt "lowres" msgid "Speech volume:" msgstr "Sprachlautst.:" -#: gui/options.cpp:1140 +#: gui/options.cpp:1142 msgid "Theme Path:" msgstr "Themen:" -#: gui/options.cpp:1142 +#: gui/options.cpp:1144 msgctxt "lowres" msgid "Theme Path:" msgstr "Themen:" -#: gui/options.cpp:1148 gui/options.cpp:1150 gui/options.cpp:1151 +#: gui/options.cpp:1150 gui/options.cpp:1152 gui/options.cpp:1153 msgid "Specifies path to additional data used by all games or ScummVM" msgstr "" "Legt das Verzeichnis für zusätzliche Spieldateien für alle Spiele in ScummVM " "fest." -#: gui/options.cpp:1157 +#: gui/options.cpp:1159 msgid "Plugins Path:" msgstr "Plugins:" -#: gui/options.cpp:1159 +#: gui/options.cpp:1161 msgctxt "lowres" msgid "Plugins Path:" msgstr "Plugins:" -#: gui/options.cpp:1170 +#: gui/options.cpp:1172 msgctxt "lowres" msgid "Misc" msgstr "Andere" -#: gui/options.cpp:1172 +#: gui/options.cpp:1174 msgid "Theme:" msgstr "Thema:" -#: gui/options.cpp:1176 +#: gui/options.cpp:1178 msgid "GUI Renderer:" msgstr "GUI-Renderer:" -#: gui/options.cpp:1188 +#: gui/options.cpp:1190 msgid "Autosave:" msgstr "Autom. Speichern:" -#: gui/options.cpp:1190 +#: gui/options.cpp:1192 msgctxt "lowres" msgid "Autosave:" msgstr "Autospeichern:" -#: gui/options.cpp:1198 +#: gui/options.cpp:1200 msgid "Keys" msgstr "Tasten" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "GUI Language:" msgstr "Sprache:" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "Language of ScummVM GUI" msgstr "Sprache der ScummVM-Oberfläche" -#: gui/options.cpp:1364 +#: gui/options.cpp:1235 +msgid "Update check:" +msgstr "Updates suchen:" + +#: gui/options.cpp:1235 +msgid "How often to check ScummVM updates" +msgstr "Wie oft nach Aktualisierungen von ScummVM suchen?" + +#: gui/options.cpp:1247 +msgid "Check now" +msgstr "Jetzt prüfen" + +#: gui/options.cpp:1382 msgid "You have to restart ScummVM before your changes will take effect." msgstr "Sie müssen ScummVM neu starten, damit die Änderungen wirksam werden." -#: gui/options.cpp:1384 +#: gui/options.cpp:1415 msgid "The chosen directory cannot be written to. Please select another one." msgstr "" "In das gewählte Verzeichnis kann nicht geschrieben werden. Bitte ein anderes " "auswählen." -#: gui/options.cpp:1393 +#: gui/options.cpp:1424 msgid "Select directory for GUI themes" msgstr "Verzeichnis für Oberflächen-Themen" -#: gui/options.cpp:1403 +#: gui/options.cpp:1434 msgid "Select directory for extra files" msgstr "Verzeichnis für zusätzliche Dateien auswählen" -#: gui/options.cpp:1414 +#: gui/options.cpp:1445 msgid "Select directory for plugins" msgstr "Verzeichnis für Erweiterungen auswählen" # Nicht übersetzen, da diese Nachricht nur für nicht-lateinische Sprachen relevant ist. -#: gui/options.cpp:1467 +#: gui/options.cpp:1498 msgid "" "The theme you selected does not support your current language. If you want " "to use this theme you need to switch to another language first." @@ -1256,39 +1269,63 @@ msgstr "Kantenglättung" msgid "Antialiased" msgstr "Kantenglättung" -#: gui/widget.cpp:323 gui/widget.cpp:325 gui/widget.cpp:331 gui/widget.cpp:333 +#: gui/updates-dialog.cpp:51 +msgid "" +"ScummVM now supports automatic check for updates\n" +"which requires access to the Internet.\n" +"\n" +"Would you like to enable this feature?" +msgstr "" +"ScummVM unterstützt die automatische Suche nach Aktualisierungen,\n" +"wozu ein Internetzugang erforderlich ist.\n" +"\n" +"Möchten Sie diese Funktion aktivieren?" + +#: gui/updates-dialog.cpp:55 +msgid "(You can always enable it in the options dialog on the Misc tab)" +msgstr "(Sie können diese auch jederzeit im Options-Dialog unter dem Reiter \"Sonstiges\" aktivieren)" + +#: gui/updates-dialog.cpp:92 +msgid "Check for updates automatically" +msgstr "Automatisch nach Aktualisierungen suchen" + +#: gui/updates-dialog.cpp:111 +msgid "Proceed" +msgstr "Fortfahren" + +#: gui/widget.cpp:327 gui/widget.cpp:329 gui/widget.cpp:335 gui/widget.cpp:337 msgid "Clear value" msgstr "Wert löschen" -#: base/main.cpp:237 +#: base/main.cpp:240 #, c-format msgid "Engine does not support debug level '%s'" msgstr "Engine unterstützt den Debug-Level \"%s\" nicht." -#: base/main.cpp:309 +#: base/main.cpp:312 msgid "Menu" msgstr "Menü" -#: base/main.cpp:312 backends/platform/symbian/src/SymbianActions.cpp:45 +#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:45 #: backends/platform/wince/CEActionsPocket.cpp:45 #: backends/platform/wince/CEActionsSmartphone.cpp:46 msgid "Skip" msgstr "Überspringen" -#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:50 +#: base/main.cpp:318 backends/platform/symbian/src/SymbianActions.cpp:50 #: backends/platform/wince/CEActionsPocket.cpp:42 msgid "Pause" msgstr "Pause" -#: base/main.cpp:318 +#: base/main.cpp:321 msgid "Skip line" msgstr "Zeile überspringen" -#: base/main.cpp:510 +#: base/main.cpp:520 msgid "Error running game:" msgstr "Fehler beim Ausführen des Spiels:" -#: base/main.cpp:557 +#: base/main.cpp:567 msgid "Could not find any engine capable of running the selected game" msgstr "Konnte keine Spiel-Engine finden, die dieses Spiel starten kann." @@ -1383,18 +1420,34 @@ msgctxt "lowres" msgid "Hercules Amber" msgstr "Hercules Bernst." -#: engines/advancedDetector.cpp:317 +#: common/updates.cpp:58 +msgid "Daily" +msgstr "täglich" + +#: common/updates.cpp:60 +msgid "Weekly" +msgstr "wöchentlich" + +#: common/updates.cpp:62 +msgid "Monthly" +msgstr "monatlich" + +#: common/updates.cpp:64 +msgid "<Bad value>" +msgstr "<Fehlerhafter Wert>" + +#: engines/advancedDetector.cpp:334 #, c-format msgid "The game in '%s' seems to be unknown." msgstr "Das Spiel im Verzeichnis \"%s\" scheint nicht bekannt zu sein." -#: engines/advancedDetector.cpp:318 +#: engines/advancedDetector.cpp:335 msgid "Please, report the following data to the ScummVM team along with name" msgstr "" "Bitte geben Sie die folgenden Daten auf Englisch an das ScummVM-Team weiter " "sowie" -#: engines/advancedDetector.cpp:320 +#: engines/advancedDetector.cpp:337 msgid "of the game you tried to add and its version/language/etc.:" msgstr "" "den Namen des Spiels, das Sie hinzufügen wollten, als auch die Version/" @@ -1404,11 +1457,11 @@ msgstr "" msgid "~R~esume" msgstr "~F~ortsetzen" -#: engines/dialogs.cpp:87 +#: engines/dialogs.cpp:87 engines/mohawk/dialogs.cpp:113 msgid "~L~oad" msgstr "~L~aden" -#: engines/dialogs.cpp:91 +#: engines/dialogs.cpp:91 engines/mohawk/dialogs.cpp:114 msgid "~S~ave" msgstr "~S~peichern" @@ -1437,9 +1490,9 @@ msgstr "Zur Spiele~l~iste" #: engines/avalanche/parser.cpp:1899 engines/cge/events.cpp:74 #: engines/cge2/events.cpp:67 engines/cruise/menu.cpp:212 #: engines/drascula/saveload.cpp:336 engines/dreamweb/saveload.cpp:261 -#: engines/hugo/file.cpp:298 engines/neverhood/menumodule.cpp:877 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/hugo/file.cpp:298 engines/mohawk/dialogs.cpp:121 +#: engines/neverhood/menumodule.cpp:877 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save game:" @@ -1454,9 +1507,10 @@ msgstr "Speichern:" #: engines/cge/events.cpp:74 engines/cge2/events.cpp:67 #: engines/cruise/menu.cpp:212 engines/drascula/saveload.cpp:336 #: engines/dreamweb/saveload.cpp:261 engines/hugo/file.cpp:298 -#: engines/neverhood/menumodule.cpp:877 engines/parallaction/saveload.cpp:212 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/scumm/dialogs.cpp:188 engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/mohawk/dialogs.cpp:121 engines/neverhood/menumodule.cpp:877 +#: engines/parallaction/saveload.cpp:212 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/scumm/dialogs.cpp:188 +#: engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save" @@ -1480,13 +1534,13 @@ msgstr "" "Speichern des Spielstands %s fehlgeschlagen! Bitte lesen Sie die Liesmich-" "Datei für grundlegende Informationen und Anweisungen zu weiterer Hilfe." -#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:109 -#: engines/mohawk/dialogs.cpp:170 engines/tsage/dialogs.cpp:106 +#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:117 +#: engines/mohawk/dialogs.cpp:242 engines/tsage/dialogs.cpp:106 msgid "~O~K" msgstr "~O~K" -#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:110 -#: engines/mohawk/dialogs.cpp:171 engines/tsage/dialogs.cpp:107 +#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:118 +#: engines/mohawk/dialogs.cpp:243 engines/tsage/dialogs.cpp:107 msgid "~C~ancel" msgstr "~A~bbrechen" @@ -1646,11 +1700,11 @@ msgstr "FM-Towns-Audio" msgid "PC-98 Audio" msgstr "PC-98-Audio" -#: audio/softsynth/mt32.cpp:200 +#: audio/softsynth/mt32.cpp:196 msgid "Initializing MT-32 Emulator" msgstr "MT-32-Emulator wird gestartet" -#: audio/softsynth/mt32.cpp:426 +#: audio/softsynth/mt32.cpp:434 msgid "MT-32 Emulator" msgstr "MT-32-Emulation" @@ -1767,11 +1821,11 @@ msgstr "Automatisches Ziehen ist jetzt " msgid "Swipe three fingers to the right to toggle." msgstr "Zum Umschalten mit drei Fingern nach rechts wischen." -#: backends/graphics/opengl/opengl-graphics.cpp:119 +#: backends/graphics/opengl/opengl-graphics.cpp:126 msgid "OpenGL" msgstr "OpenGL" -#: backends/graphics/opengl/opengl-graphics.cpp:120 +#: backends/graphics/opengl/opengl-graphics.cpp:127 msgid "OpenGL (No filtering)" msgstr "OpenGL (ohne Filter)" @@ -2325,20 +2379,20 @@ msgstr "" "Vergessen Sie nicht, der Aktion \"Werkzeugleiste verbergen\" eine Taste " "zuzuweisen, um das ganze Inventar sehen zu können." -#: backends/updates/macosx/macosx-updates.mm:67 +#: backends/updates/macosx/macosx-updates.mm:68 msgid "Check for Updates..." msgstr "Suche nach Aktualisierungen..." #: engines/agi/detection.cpp:147 engines/cine/detection.cpp:70 #: engines/drascula/detection.cpp:302 engines/dreamweb/detection.cpp:47 -#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:404 +#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:410 #: engines/toltecs/detection.cpp:200 engines/zvision/detection_tables.h:51 msgid "Use original save/load screens" msgstr "Originale Spielstand-Menüs" #: engines/agi/detection.cpp:148 engines/cine/detection.cpp:71 #: engines/drascula/detection.cpp:303 engines/dreamweb/detection.cpp:48 -#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:405 +#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:411 #: engines/toltecs/detection.cpp:201 msgid "Use the original save/load screens, instead of the ScummVM ones" msgstr "" @@ -2367,11 +2421,33 @@ msgstr "" "Aktiviere Maus-Unterstützung. Erlaubt die Verwendung der Maus zur Bewegung " "und in Menüs innerhalb des Spiels." +#: engines/agi/detection.cpp:177 +msgid "Use Hercules hires font" +msgstr "Verwende hochauflösende Hercules-Schrift" + +#: engines/agi/detection.cpp:178 +msgid "Uses Hercules hires font, when font file is available." +msgstr "" +"Verwende hochauflösende Hercules-Schriftart, wenn die Schriftarten-Datei " +"verfügbar ist." + +#: engines/agi/detection.cpp:187 +msgid "Pause when entering commands" +msgstr "Pausiere, wenn Befehle eingegeben werden" + +#: engines/agi/detection.cpp:188 +msgid "" +"Shows a command prompt window and pauses the game (like in SCI) instead of a " +"real-time prompt." +msgstr "" +"Zeige eine Fenster mit einer Kommandozeile und pausiere das Spiel (wie in " +"SCI) anstelle einer Eingabe in Echtzeit." + #: engines/agi/saveload.cpp:777 engines/avalanche/parser.cpp:1887 #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore game:" @@ -2381,13 +2457,13 @@ msgstr "Spiel laden:" #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore" msgstr "Laden" -#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2377 +#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2374 #, c-format msgid "" "Failed to load game state from file:\n" @@ -2398,7 +2474,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2370 +#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2367 #, c-format msgid "" "Failed to save game state to file:\n" @@ -2409,7 +2485,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2388 +#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2385 #, c-format msgid "" "Successfully saved game state in file:\n" @@ -2660,29 +2736,39 @@ msgstr "" "\"import_savefile\" verwenden.\n" "\n" +#: engines/mohawk/detection.cpp:168 +msgid "Play the Myst fly by movie" +msgstr "Video vom Anflug auf Myst abspielen" + +#: engines/mohawk/detection.cpp:169 +msgid "The Myst fly by movie was not played by the original engine." +msgstr "" +"Das Video, welches den Anflug auf Myst zeigt, wurde in der ursprünglichen " +"Engine nicht abgespielt." + #. I18N: Option for fast scene switching -#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:167 +#: engines/mohawk/dialogs.cpp:96 engines/mohawk/dialogs.cpp:239 msgid "~Z~ip Mode Activated" -msgstr "Schneller ~R~aumwechsel aktiviert" +msgstr "~Zip-Modus aktiviert" -#: engines/mohawk/dialogs.cpp:93 +#: engines/mohawk/dialogs.cpp:97 msgid "~T~ransitions Enabled" msgstr "Über~g~änge aktiviert" #. I18N: Drop book page -#: engines/mohawk/dialogs.cpp:95 +#: engines/mohawk/dialogs.cpp:99 msgid "~D~rop Page" -msgstr "Seite ~w~egwerfen" +msgstr "Seite ~a~blegen" -#: engines/mohawk/dialogs.cpp:99 -msgid "~S~how Map" +#: engines/mohawk/dialogs.cpp:103 +msgid "Show ~M~ap" msgstr "~K~arte anzeigen" -#: engines/mohawk/dialogs.cpp:105 -msgid "~M~ain Menu" +#: engines/mohawk/dialogs.cpp:109 +msgid "Main Men~u~" msgstr "Haupt~m~enü" -#: engines/mohawk/dialogs.cpp:168 +#: engines/mohawk/dialogs.cpp:240 msgid "~W~ater Effect Enabled" msgstr "~W~assereffekt aktiviert" @@ -2807,37 +2893,37 @@ msgstr "Alternativer Vorspann" msgid "Use an alternative game intro (CD version only)" msgstr "Verwendet einen alternativen Vorspann (nur bei CD-Version)." -#: engines/sci/detection.cpp:374 +#: engines/sci/detection.cpp:380 msgid "Skip EGA dithering pass (full color backgrounds)" msgstr "Überspringe EGA-Fehlerdiffusion (Vollfarbige Hintergründe)" -#: engines/sci/detection.cpp:375 +#: engines/sci/detection.cpp:381 msgid "Skip dithering pass in EGA games, graphics are shown with full colors" msgstr "" "Überspringe Fehlerdiffusion in EGA-Spielen, Grafik wird mit allen Farben " "gezeigt" -#: engines/sci/detection.cpp:384 +#: engines/sci/detection.cpp:390 msgid "Enable high resolution graphics" msgstr "Aktiviere hochauflösende Grafik." -#: engines/sci/detection.cpp:385 +#: engines/sci/detection.cpp:391 msgid "Enable high resolution graphics/content" msgstr "Aktiviere hochauflösende Grafik/Inhalte" -#: engines/sci/detection.cpp:394 +#: engines/sci/detection.cpp:400 msgid "Prefer digital sound effects" msgstr "Digitale Geräusch-Effekte bevorzugen" -#: engines/sci/detection.cpp:395 +#: engines/sci/detection.cpp:401 msgid "Prefer digital sound effects instead of synthesized ones" msgstr "Bevorzugt digitale Geräusch-Effekte statt synthethisierter." -#: engines/sci/detection.cpp:414 +#: engines/sci/detection.cpp:420 msgid "Use IMF/Yamaha FB-01 for MIDI output" msgstr "IMF/Yamaha FB-01 für MIDI-Ausgabe verwenden" -#: engines/sci/detection.cpp:415 +#: engines/sci/detection.cpp:421 msgid "" "Use an IBM Music Feature card or a Yamaha FB-01 FM synth module for MIDI " "output" @@ -2845,36 +2931,44 @@ msgstr "" "Verwendet eine Music-Feature-Karte von IBM oder ein Yamaha-FB-01-FM-" "Synthetisierungsmodul für die MIDI-Ausgabe." -#: engines/sci/detection.cpp:425 +#: engines/sci/detection.cpp:431 msgid "Use CD audio" msgstr "CD-Ton verwenden" -#: engines/sci/detection.cpp:426 +#: engines/sci/detection.cpp:432 msgid "Use CD audio instead of in-game audio, if available" msgstr "Verwendet CD-Ton anstatt des Tons im Spiel, sofern verfügbar." -#: engines/sci/detection.cpp:436 +#: engines/sci/detection.cpp:442 msgid "Use Windows cursors" msgstr "Windows-Mauszeiger verwenden" -#: engines/sci/detection.cpp:437 +#: engines/sci/detection.cpp:443 msgid "" "Use the Windows cursors (smaller and monochrome) instead of the DOS ones" msgstr "" "Verwendet die Windows-Mauszeiger (kleiner und schwarz-weiß) anstatt der von " "DOS." -#: engines/sci/detection.cpp:447 +#: engines/sci/detection.cpp:453 msgid "Use silver cursors" msgstr "Silberne Mauszeiger verwenden" -#: engines/sci/detection.cpp:448 +#: engines/sci/detection.cpp:454 msgid "" "Use the alternate set of silver cursors, instead of the normal golden ones" msgstr "" "Verwendet alternativen Satz silberner Mauszeiger anstatt der normalen " "goldenen." +#: engines/scumm/detection.cpp:1335 +msgid "Show Object Line" +msgstr "Objektzeile zeigen" + +#: engines/scumm/detection.cpp:1336 +msgid "Show the names of objects at the bottom of the screen" +msgstr "Objektnamen und Verben am unteren Bildrand anzeigen" + #: engines/scumm/dialogs.cpp:176 #, c-format msgid "Insert Disk %c and Press Button to Continue." @@ -3099,7 +3193,7 @@ msgstr "Zwischen Grafikfiltern wechseln" #: engines/scumm/help.cpp:102 msgid "Increase / Decrease scale factor" -msgstr "Größenverhätlnis höher/niedriger" +msgstr "Größenverhältnis höher/niedriger" #: engines/scumm/help.cpp:103 msgid "Toggle aspect-ratio correction" @@ -3540,7 +3634,7 @@ msgstr "Musiklautstärke:" msgid "Subtitle speed: " msgstr "Untertitel-Tempo:" -#: engines/scumm/scumm.cpp:1832 +#: engines/scumm/scumm.cpp:1829 #, c-format msgid "" "Native MIDI support requires the Roland Upgrade from LucasArts,\n" @@ -3550,7 +3644,7 @@ msgstr "" "Roland-Upgrade von LucasArts, aber %s\n" "fehlt. Stattdessen wird AdLib verwendet." -#: engines/scumm/scumm.cpp:2644 +#: engines/scumm/scumm.cpp:2645 msgid "" "Usually, Maniac Mansion would start now. But for that to work, the game " "files for Maniac Mansion have to be in the 'Maniac' directory inside the " @@ -3585,7 +3679,9 @@ msgstr "Originale Spielstand-Menüs verwenden" msgid "" "Files button in-game shows original savegame dialog rather than the ScummVM " "menu" -msgstr "Dateien-Schaltfläche im Spiel zeigt originales Spielstand-Menü statt dem von ScummVM." +msgstr "" +"Dateien-Schaltfläche im Spiel zeigt originales Spielstand-Menü statt dem von " +"ScummVM." #: engines/sherlock/detection.cpp:81 msgid "Pixellated scene transitions" @@ -3603,7 +3699,9 @@ msgstr "Bei Mausbewegung keine Klickpunkte anzeigen" msgid "" "Only show hotspot names after you actually click on a hotspot or action " "button" -msgstr "Zeigt Klickpunktnamen nur nach Klick auf selbigen oder auf einen Aktionspunkt." +msgstr "" +"Zeigt Klickpunktnamen nur nach Klick auf selbigen oder auf einen " +"Aktionspunkt." #: engines/sherlock/detection.cpp:101 msgid "Show character portraits" @@ -3619,7 +3717,8 @@ msgstr "Menüs in Blickfeld gleiten lassen" #: engines/sherlock/detection.cpp:112 msgid "Slide UI dialogs into view, rather than simply showing them immediately" -msgstr "Lässt Menüs in Blickfeld gleiten anstatt sie einfach sofort anzuzeigen." +msgstr "" +"Lässt Menüs in Blickfeld gleiten anstatt sie einfach sofort anzuzeigen." #: engines/sherlock/detection.cpp:121 msgid "Transparent windows" @@ -3733,6 +3832,17 @@ msgstr "Objektnamen zeigen" msgid "Show labels for objects on mouse hover" msgstr "Zeigt Objektbeschriftungen bei Mausberührung an." +#: engines/sword25/detection.cpp:46 +msgid "Use English speech" +msgstr "Verwende englische Sprachausgabe" + +#: engines/sword25/detection.cpp:47 +msgid "" +"Use English speech instead of German for every language other than German" +msgstr "" +"Verwende englische Sprachausgabe anstelle der deutschen, wenn eine andere " +"Sprache als Deutsch verwendet wird." + #: engines/teenagent/resources.cpp:95 msgid "" "You're missing the 'teenagent.dat' file. Get it from the ScummVM website" diff --git a/po/es_ES.po b/po/es_ES.po index 1593d4f815..784132da56 100644 --- a/po/es_ES.po +++ b/po/es_ES.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ScummVM 1.4.0svn\n" "Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n" -"POT-Creation-Date: 2016-02-20 21:22+0000\n" +"POT-Creation-Date: 2016-04-07 08:55+0100\n" "PO-Revision-Date: 2016-02-24 18:01+0100\n" "Last-Translator: \n" "Language-Team: \n" @@ -54,10 +54,11 @@ msgstr "Arriba" #: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editrecorddialog.cpp:67 #: gui/filebrowser-dialog.cpp:64 gui/fluidsynth-dialog.cpp:152 #: gui/KeysDialog.cpp:43 gui/launcher.cpp:351 gui/massadd.cpp:95 -#: gui/options.cpp:1237 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 +#: gui/options.cpp:1255 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 #: gui/recorderdialog.cpp:156 gui/saveload-dialog.cpp:216 #: gui/saveload-dialog.cpp:276 gui/saveload-dialog.cpp:547 -#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 engines/engine.cpp:546 +#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 +#: gui/updates-dialog.cpp:113 engines/engine.cpp:546 #: backends/events/default/default-events.cpp:196 #: backends/events/default/default-events.cpp:218 #: backends/platform/wii/options.cpp:48 engines/drascula/saveload.cpp:49 @@ -171,7 +172,7 @@ msgstr "Seno" msgid "Triangle" msgstr "Triįngulo" -#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1168 +#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1170 msgid "Misc" msgstr "Otras" @@ -205,12 +206,12 @@ msgstr "Volver a los valores por defecto de las opciones de FluidSynth" #: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:352 #: gui/launcher.cpp:1050 gui/launcher.cpp:1054 gui/massadd.cpp:92 -#: gui/options.cpp:1238 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 +#: gui/options.cpp:1256 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 #: engines/engine.cpp:476 backends/platform/wii/options.cpp:47 #: backends/platform/wince/CELauncherDialog.cpp:54 #: engines/agos/animation.cpp:558 engines/drascula/saveload.cpp:49 #: engines/groovie/script.cpp:408 engines/parallaction/saveload.cpp:274 -#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1834 +#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1831 #: engines/scumm/players/player_v3m.cpp:130 #: engines/scumm/players/player_v5m.cpp:108 engines/sky/compact.cpp:131 #: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:524 @@ -240,15 +241,15 @@ msgstr "Cerrar" msgid "Mouse click" msgstr "Clic de ratón" -#: gui/gui-manager.cpp:126 base/main.cpp:322 +#: gui/gui-manager.cpp:126 base/main.cpp:325 msgid "Display keyboard" msgstr "Mostrar el teclado" -#: gui/gui-manager.cpp:130 base/main.cpp:326 +#: gui/gui-manager.cpp:130 base/main.cpp:329 msgid "Remap keys" msgstr "Asignar teclas" -#: gui/gui-manager.cpp:133 base/main.cpp:329 engines/scumm/help.cpp:87 +#: gui/gui-manager.cpp:133 base/main.cpp:332 engines/scumm/help.cpp:87 msgid "Toggle fullscreen" msgstr "Activar/Desactivar pantalla completa" @@ -324,8 +325,8 @@ msgstr "" "Idioma del juego. No sirve para pasar al inglés la versión espańola de un " "juego" -#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:87 -#: gui/options.cpp:735 gui/options.cpp:748 gui/options.cpp:1208 +#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:89 +#: gui/options.cpp:737 gui/options.cpp:750 gui/options.cpp:1210 #: audio/null.cpp:41 msgid "<default>" msgstr "<por defecto>" @@ -347,11 +348,11 @@ msgstr "Plat.:" msgid "Engine" msgstr "Motor" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "Graphics" msgstr "Grįficos" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "GFX" msgstr "Grįf." @@ -364,7 +365,7 @@ msgctxt "lowres" msgid "Override global graphic settings" msgstr "Opciones grįficas especķficas" -#: gui/launcher.cpp:257 gui/options.cpp:1094 +#: gui/launcher.cpp:257 gui/options.cpp:1096 msgid "Audio" msgstr "Sonido" @@ -377,11 +378,11 @@ msgctxt "lowres" msgid "Override global audio settings" msgstr "Opciones de sonido especķficas" -#: gui/launcher.cpp:271 gui/options.cpp:1099 +#: gui/launcher.cpp:271 gui/options.cpp:1101 msgid "Volume" msgstr "Volumen" -#: gui/launcher.cpp:273 gui/options.cpp:1101 +#: gui/launcher.cpp:273 gui/options.cpp:1103 msgctxt "lowres" msgid "Volume" msgstr "Volumen" @@ -395,7 +396,7 @@ msgctxt "lowres" msgid "Override global volume settings" msgstr "Opciones de volumen especķficas" -#: gui/launcher.cpp:286 gui/options.cpp:1109 +#: gui/launcher.cpp:286 gui/options.cpp:1111 msgid "MIDI" msgstr "MIDI" @@ -408,7 +409,7 @@ msgctxt "lowres" msgid "Override global MIDI settings" msgstr "Opciones de MIDI especķficas" -#: gui/launcher.cpp:300 gui/options.cpp:1115 +#: gui/launcher.cpp:300 gui/options.cpp:1117 msgid "MT-32" msgstr "MT-32" @@ -421,11 +422,11 @@ msgctxt "lowres" msgid "Override global MT-32 settings" msgstr "Opciones de MT-32 especķficas" -#: gui/launcher.cpp:314 gui/options.cpp:1122 +#: gui/launcher.cpp:314 gui/options.cpp:1124 msgid "Paths" msgstr "Rutas" -#: gui/launcher.cpp:316 gui/options.cpp:1124 +#: gui/launcher.cpp:316 gui/options.cpp:1126 msgctxt "lowres" msgid "Paths" msgstr "Rutas" @@ -439,7 +440,7 @@ msgctxt "lowres" msgid "Game Path:" msgstr "Juego:" -#: gui/launcher.cpp:330 gui/options.cpp:1148 +#: gui/launcher.cpp:330 gui/options.cpp:1150 msgid "Extra Path:" msgstr "Adicional:" @@ -447,42 +448,42 @@ msgstr "Adicional:" msgid "Specifies path to additional data used by the game" msgstr "Especifica un directorio para datos adicionales del juego" -#: gui/launcher.cpp:332 gui/options.cpp:1150 +#: gui/launcher.cpp:332 gui/options.cpp:1152 msgctxt "lowres" msgid "Extra Path:" msgstr "Adicional:" -#: gui/launcher.cpp:339 gui/options.cpp:1132 +#: gui/launcher.cpp:339 gui/options.cpp:1134 msgid "Save Path:" msgstr "Partidas:" #: gui/launcher.cpp:339 gui/launcher.cpp:341 gui/launcher.cpp:342 -#: gui/options.cpp:1132 gui/options.cpp:1134 gui/options.cpp:1135 +#: gui/options.cpp:1134 gui/options.cpp:1136 gui/options.cpp:1137 msgid "Specifies where your saved games are put" msgstr "Especifica dónde guardar tus partidas" -#: gui/launcher.cpp:341 gui/options.cpp:1134 +#: gui/launcher.cpp:341 gui/options.cpp:1136 msgctxt "lowres" msgid "Save Path:" msgstr "Partidas:" #: gui/launcher.cpp:360 gui/launcher.cpp:459 gui/launcher.cpp:517 -#: gui/launcher.cpp:571 gui/options.cpp:1143 gui/options.cpp:1151 -#: gui/options.cpp:1160 gui/options.cpp:1275 gui/options.cpp:1281 -#: gui/options.cpp:1289 gui/options.cpp:1319 gui/options.cpp:1325 -#: gui/options.cpp:1332 gui/options.cpp:1425 gui/options.cpp:1428 -#: gui/options.cpp:1440 +#: gui/launcher.cpp:571 gui/options.cpp:1145 gui/options.cpp:1153 +#: gui/options.cpp:1162 gui/options.cpp:1293 gui/options.cpp:1299 +#: gui/options.cpp:1307 gui/options.cpp:1337 gui/options.cpp:1343 +#: gui/options.cpp:1350 gui/options.cpp:1456 gui/options.cpp:1459 +#: gui/options.cpp:1471 msgctxt "path" msgid "None" msgstr "Ninguna" #: gui/launcher.cpp:365 gui/launcher.cpp:465 gui/launcher.cpp:575 -#: gui/options.cpp:1269 gui/options.cpp:1313 gui/options.cpp:1431 +#: gui/options.cpp:1287 gui/options.cpp:1331 gui/options.cpp:1462 #: backends/platform/wii/options.cpp:56 msgid "Default" msgstr "Por defecto" -#: gui/launcher.cpp:510 gui/options.cpp:1434 +#: gui/launcher.cpp:510 gui/options.cpp:1465 msgid "Select SoundFont" msgstr "Selecciona un SoundFont" @@ -494,7 +495,7 @@ msgstr "Selecciona el directorio del juego" msgid "Select additional game directory" msgstr "Selecciona el directorio adicional" -#: gui/launcher.cpp:559 gui/options.cpp:1377 +#: gui/launcher.cpp:559 gui/options.cpp:1408 msgid "Select directory for saved games" msgstr "Selecciona el directorio para partidas guardadas" @@ -502,7 +503,7 @@ msgstr "Selecciona el directorio para partidas guardadas" msgid "This game ID is already taken. Please choose another one." msgstr "Esta ID ya estį siendo usada. Por favor, elige otra." -#: gui/launcher.cpp:626 engines/dialogs.cpp:111 +#: gui/launcher.cpp:626 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:115 msgid "~Q~uit" msgstr "~S~alir" @@ -590,17 +591,18 @@ msgid "Search:" msgstr "Buscar:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214 -#: engines/mohawk/riven.cpp:718 engines/pegasus/pegasus.cpp:353 -#: engines/tsage/scenes.cpp:600 +#: engines/mohawk/dialogs.cpp:120 engines/mohawk/riven.cpp:718 +#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:600 msgid "Load game:" msgstr "Cargar juego:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 #: backends/platform/wince/CEActionsPocket.cpp:267 #: backends/platform/wince/CEActionsSmartphone.cpp:231 -#: engines/cruise/menu.cpp:214 engines/mohawk/riven.cpp:718 -#: engines/parallaction/saveload.cpp:197 engines/pegasus/pegasus.cpp:353 -#: engines/scumm/dialogs.cpp:189 engines/tsage/scenes.cpp:600 +#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:120 +#: engines/mohawk/riven.cpp:718 engines/parallaction/saveload.cpp:197 +#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:189 +#: engines/tsage/scenes.cpp:600 msgid "Load" msgstr "Cargar" @@ -688,135 +690,135 @@ msgstr "Volver al juego" msgid "Fast replay" msgstr "Repetición rįpida" -#: gui/options.cpp:85 +#: gui/options.cpp:87 common/updates.cpp:56 msgid "Never" msgstr "Nunca" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 5 mins" msgstr "cada 5 minutos" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 10 mins" msgstr "cada 10 minutos" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 15 mins" msgstr "cada 15 minutos" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 30 mins" msgstr "cada 30 minutos" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "8 kHz" msgstr "8 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "11 kHz" msgstr "11 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "22 kHz" msgstr "22 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "44 kHz" msgstr "44 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "48 kHz" msgstr "48 kHz" -#: gui/options.cpp:255 gui/options.cpp:479 gui/options.cpp:580 -#: gui/options.cpp:649 gui/options.cpp:857 +#: gui/options.cpp:257 gui/options.cpp:481 gui/options.cpp:582 +#: gui/options.cpp:651 gui/options.cpp:859 msgctxt "soundfont" msgid "None" msgstr "Ninguno" -#: gui/options.cpp:389 +#: gui/options.cpp:391 msgid "Failed to apply some of the graphic options changes:" msgstr "Fallo al aplicar algunos cambios en las opciones grįficas:" -#: gui/options.cpp:401 +#: gui/options.cpp:403 msgid "the video mode could not be changed." msgstr "no se ha podido cambiar el modo de vķdeo." -#: gui/options.cpp:407 +#: gui/options.cpp:409 msgid "the fullscreen setting could not be changed" msgstr "no se ha podido cambiar el ajuste de pantalla completa" -#: gui/options.cpp:413 +#: gui/options.cpp:415 msgid "the aspect ratio setting could not be changed" msgstr "no se ha podido cambiar el ajuste de corrección de aspecto" -#: gui/options.cpp:732 +#: gui/options.cpp:734 msgid "Graphics mode:" msgstr "Modo grįfico:" -#: gui/options.cpp:746 +#: gui/options.cpp:748 msgid "Render mode:" msgstr "Renderizado:" -#: gui/options.cpp:746 gui/options.cpp:747 +#: gui/options.cpp:748 gui/options.cpp:749 msgid "Special dithering modes supported by some games" msgstr "Modos especiales de difuminado compatibles con algunos juegos" -#: gui/options.cpp:758 +#: gui/options.cpp:760 #: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2316 msgid "Fullscreen mode" msgstr "Pantalla completa" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Aspect ratio correction" msgstr "Corrección de aspecto" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Correct aspect ratio for 320x200 games" msgstr "Corregir relación de aspecto en juegos 320x200" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Preferred Device:" msgstr "Disp. preferido:" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Music Device:" msgstr "Disp. de mśsica:" -#: gui/options.cpp:769 gui/options.cpp:771 +#: gui/options.cpp:771 gui/options.cpp:773 msgid "Specifies preferred sound device or sound card emulator" msgstr "" "Especifica qué dispositivo de sonido o emulador de tarjeta de sonido " "prefieres" -#: gui/options.cpp:769 gui/options.cpp:771 gui/options.cpp:772 +#: gui/options.cpp:771 gui/options.cpp:773 gui/options.cpp:774 msgid "Specifies output sound device or sound card emulator" msgstr "" "Especifica el dispositivo de sonido o emulador de tarjeta de sonido de salida" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Preferred Dev.:" msgstr "Disp. preferido:" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Music Device:" msgstr "Disp. de mśsica:" -#: gui/options.cpp:798 +#: gui/options.cpp:800 msgid "AdLib emulator:" msgstr "Emul. de AdLib:" -#: gui/options.cpp:798 gui/options.cpp:799 +#: gui/options.cpp:800 gui/options.cpp:801 msgid "AdLib is used for music in many games" msgstr "AdLib se usa para la mśsica en muchos juegos" -#: gui/options.cpp:809 +#: gui/options.cpp:811 msgid "Output rate:" msgstr "Frec. de salida:" -#: gui/options.cpp:809 gui/options.cpp:810 +#: gui/options.cpp:811 gui/options.cpp:812 msgid "" "Higher value specifies better sound quality but may be not supported by your " "soundcard" @@ -824,68 +826,68 @@ msgstr "" "Los valores mįs altos ofrecen mayor calidad, pero puede que tu tarjeta de " "sonido no sea compatible" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "GM Device:" msgstr "Dispositivo GM:" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "Specifies default sound device for General MIDI output" msgstr "Especifica el dispositivo de salida General MIDI por defecto" -#: gui/options.cpp:831 +#: gui/options.cpp:833 msgid "Don't use General MIDI music" msgstr "No usar mśsica General MIDI" -#: gui/options.cpp:842 gui/options.cpp:908 +#: gui/options.cpp:844 gui/options.cpp:910 msgid "Use first available device" msgstr "Utilizar el primer dispositivo disponible" -#: gui/options.cpp:854 +#: gui/options.cpp:856 msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:854 gui/options.cpp:856 gui/options.cpp:857 +#: 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 es compatible con algunas tarjetas de sonido, con FluidSynth y con " "Timidity" -#: gui/options.cpp:856 +#: gui/options.cpp:858 msgctxt "lowres" msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Mixed AdLib/MIDI mode" msgstr "Modo AdLib/MIDI" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Use both MIDI and AdLib sound generation" msgstr "Usar tanto MIDI como AdLib en la generación de sonido" -#: gui/options.cpp:865 +#: gui/options.cpp:867 msgid "MIDI gain:" msgstr "Ganancia MIDI:" -#: gui/options.cpp:872 +#: gui/options.cpp:874 msgid "FluidSynth Settings" msgstr "Opciones de FluidSynth" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "MT-32 Device:" msgstr "Disp. MT-32:" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output" msgstr "" "Especifica el dispositivo de sonido para la salida Roland MT-32/LAPC1/CM32l/" "CM64 por defecto" -#: gui/options.cpp:884 +#: gui/options.cpp:886 msgid "True Roland MT-32 (disable GM emulation)" msgstr "Roland MT-32 auténtica (desactivar emulación GM)" -#: gui/options.cpp:884 gui/options.cpp:886 +#: gui/options.cpp:886 gui/options.cpp:888 msgid "" "Check if you want to use your real hardware Roland-compatible sound device " "connected to your computer" @@ -893,16 +895,16 @@ msgstr "" "Marcar si se quiere usar un dispositivo de sonido real conectado al " "ordenador y compatible con Roland" -#: gui/options.cpp:886 +#: gui/options.cpp:888 msgctxt "lowres" msgid "True Roland MT-32 (no GM emulation)" msgstr "Roland MT-32 real (sin emulación GM)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "Roland GS Device (enable MT-32 mappings)" msgstr "Dispositivo Roland GS (activar conversión MT-32)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "" "Check if you want to enable patch mappings to emulate an MT-32 on a Roland " "GS device" @@ -910,170 +912,182 @@ msgstr "" "Marca esta opción si quieres activar la conversión para emular una MT-32 en " "un dispositivo Roland GS" -#: gui/options.cpp:898 +#: gui/options.cpp:900 msgid "Don't use Roland MT-32 music" msgstr "No usar mśsica Roland MT-32" -#: gui/options.cpp:925 +#: gui/options.cpp:927 msgid "Text and Speech:" msgstr "Texto y voces:" -#: gui/options.cpp:929 gui/options.cpp:939 +#: gui/options.cpp:931 gui/options.cpp:941 msgid "Speech" msgstr "Voces" -#: gui/options.cpp:930 gui/options.cpp:940 +#: gui/options.cpp:932 gui/options.cpp:942 msgid "Subtitles" msgstr "Subtķtulos" -#: gui/options.cpp:931 +#: gui/options.cpp:933 msgid "Both" msgstr "Ambos" -#: gui/options.cpp:933 +#: gui/options.cpp:935 msgid "Subtitle speed:" msgstr "Vel. de subtķtulos:" -#: gui/options.cpp:935 +#: gui/options.cpp:937 msgctxt "lowres" msgid "Text and Speech:" msgstr "Texto y voces:" -#: gui/options.cpp:939 +#: gui/options.cpp:941 msgid "Spch" msgstr "Voz" -#: gui/options.cpp:940 +#: gui/options.cpp:942 msgid "Subs" msgstr "Subt" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgctxt "lowres" msgid "Both" msgstr "V&S" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgid "Show subtitles and play speech" msgstr "Reproducir voces y subtķtulos" -#: gui/options.cpp:943 +#: gui/options.cpp:945 msgctxt "lowres" msgid "Subtitle speed:" msgstr "Vel. de subt.:" -#: gui/options.cpp:959 +#: gui/options.cpp:961 msgid "Music volume:" msgstr "Mśsica:" -#: gui/options.cpp:961 +#: gui/options.cpp:963 msgctxt "lowres" msgid "Music volume:" msgstr "Mśsica:" -#: gui/options.cpp:968 +#: gui/options.cpp:970 msgid "Mute All" msgstr "Silenciar" -#: gui/options.cpp:971 +#: gui/options.cpp:973 msgid "SFX volume:" msgstr "Efectos:" -#: gui/options.cpp:971 gui/options.cpp:973 gui/options.cpp:974 +#: gui/options.cpp:973 gui/options.cpp:975 gui/options.cpp:976 msgid "Special sound effects volume" msgstr "Volumen de los efectos de sonido" -#: gui/options.cpp:973 +#: gui/options.cpp:975 msgctxt "lowres" msgid "SFX volume:" msgstr "Efectos:" -#: gui/options.cpp:981 +#: gui/options.cpp:983 msgid "Speech volume:" msgstr "Voces:" -#: gui/options.cpp:983 +#: gui/options.cpp:985 msgctxt "lowres" msgid "Speech volume:" msgstr "Voces:" -#: gui/options.cpp:1140 +#: gui/options.cpp:1142 msgid "Theme Path:" msgstr "Temas:" -#: gui/options.cpp:1142 +#: gui/options.cpp:1144 msgctxt "lowres" msgid "Theme Path:" msgstr "Temas:" -#: gui/options.cpp:1148 gui/options.cpp:1150 gui/options.cpp:1151 +#: gui/options.cpp:1150 gui/options.cpp:1152 gui/options.cpp:1153 msgid "Specifies path to additional data used by all games or ScummVM" msgstr "Especifica el directorio adicional usado por los juegos y ScummVM" -#: gui/options.cpp:1157 +#: gui/options.cpp:1159 msgid "Plugins Path:" msgstr "Plugins:" -#: gui/options.cpp:1159 +#: gui/options.cpp:1161 msgctxt "lowres" msgid "Plugins Path:" msgstr "Plugins:" -#: gui/options.cpp:1170 +#: gui/options.cpp:1172 msgctxt "lowres" msgid "Misc" msgstr "Otras" -#: gui/options.cpp:1172 +#: gui/options.cpp:1174 msgid "Theme:" msgstr "Tema:" -#: gui/options.cpp:1176 +#: gui/options.cpp:1178 msgid "GUI Renderer:" msgstr "Interfaz:" -#: gui/options.cpp:1188 +#: gui/options.cpp:1190 msgid "Autosave:" msgstr "Autoguardado:" -#: gui/options.cpp:1190 +#: gui/options.cpp:1192 msgctxt "lowres" msgid "Autosave:" msgstr "Autoguardado:" -#: gui/options.cpp:1198 +#: gui/options.cpp:1200 msgid "Keys" msgstr "Teclas" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "GUI Language:" msgstr "Idioma:" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "Language of ScummVM GUI" msgstr "Idioma de la interfaz de ScummVM" -#: gui/options.cpp:1364 +#: gui/options.cpp:1235 +msgid "Update check:" +msgstr "" + +#: gui/options.cpp:1235 +msgid "How often to check ScummVM updates" +msgstr "" + +#: gui/options.cpp:1247 +msgid "Check now" +msgstr "" + +#: gui/options.cpp:1382 msgid "You have to restart ScummVM before your changes will take effect." msgstr "Tienes que reiniciar ScummVM para aplicar los cambios." -#: gui/options.cpp:1384 +#: gui/options.cpp:1415 msgid "The chosen directory cannot be written to. Please select another one." msgstr "" "No se puede escribir en el directorio elegido. Por favor, selecciona otro." -#: gui/options.cpp:1393 +#: gui/options.cpp:1424 msgid "Select directory for GUI themes" msgstr "Selecciona el directorio de temas" -#: gui/options.cpp:1403 +#: gui/options.cpp:1434 msgid "Select directory for extra files" msgstr "Selecciona el directorio adicional" -#: gui/options.cpp:1414 +#: gui/options.cpp:1445 msgid "Select directory for plugins" msgstr "Selecciona el directorio de plugins" -#: gui/options.cpp:1467 +#: gui/options.cpp:1498 msgid "" "The theme you selected does not support your current language. If you want " "to use this theme you need to switch to another language first." @@ -1246,39 +1260,60 @@ msgstr "Suavizado" msgid "Antialiased" msgstr "Suavizado" -#: gui/widget.cpp:323 gui/widget.cpp:325 gui/widget.cpp:331 gui/widget.cpp:333 +#: gui/updates-dialog.cpp:51 +msgid "" +"ScummVM now supports automatic check for updates\n" +"which requires access to the Internet.\n" +"\n" +"Would you like to enable this feature?" +msgstr "" + +#: gui/updates-dialog.cpp:55 +msgid "(You can always enable it in the options dialog on the Misc tab)" +msgstr "" + +#: gui/updates-dialog.cpp:92 +#, fuzzy +msgid "Check for updates automatically" +msgstr "Buscar actualizaciones..." + +#: gui/updates-dialog.cpp:111 +msgid "Proceed" +msgstr "" + +#: gui/widget.cpp:327 gui/widget.cpp:329 gui/widget.cpp:335 gui/widget.cpp:337 msgid "Clear value" msgstr "Eliminar valor" -#: base/main.cpp:237 +#: base/main.cpp:240 #, c-format msgid "Engine does not support debug level '%s'" msgstr "El motor no es compatible con el nivel de debug '%s'" -#: base/main.cpp:309 +#: base/main.cpp:312 msgid "Menu" msgstr "Menś" -#: base/main.cpp:312 backends/platform/symbian/src/SymbianActions.cpp:45 +#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:45 #: backends/platform/wince/CEActionsPocket.cpp:45 #: backends/platform/wince/CEActionsSmartphone.cpp:46 msgid "Skip" msgstr "Saltar" -#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:50 +#: base/main.cpp:318 backends/platform/symbian/src/SymbianActions.cpp:50 #: backends/platform/wince/CEActionsPocket.cpp:42 msgid "Pause" msgstr "Pausar" -#: base/main.cpp:318 +#: base/main.cpp:321 msgid "Skip line" msgstr "Saltar frase" -#: base/main.cpp:510 +#: base/main.cpp:520 msgid "Error running game:" msgstr "Error al ejecutar el juego:" -#: base/main.cpp:557 +#: base/main.cpp:567 msgid "Could not find any engine capable of running the selected game" msgstr "No se ha podido encontrar ningśn motor capaz de ejecutar el juego" @@ -1373,16 +1408,33 @@ msgctxt "lowres" msgid "Hercules Amber" msgstr "Hercules įmbar" -#: engines/advancedDetector.cpp:317 +#: common/updates.cpp:58 +msgid "Daily" +msgstr "" + +#: common/updates.cpp:60 +msgid "Weekly" +msgstr "" + +#: common/updates.cpp:62 +msgid "Monthly" +msgstr "" + +#: common/updates.cpp:64 +#, fuzzy +msgid "<Bad value>" +msgstr "Eliminar valor" + +#: engines/advancedDetector.cpp:334 #, c-format msgid "The game in '%s' seems to be unknown." msgstr "El juego en '%s' parece ser desconocido." -#: engines/advancedDetector.cpp:318 +#: engines/advancedDetector.cpp:335 msgid "Please, report the following data to the ScummVM team along with name" msgstr "Por favor, envķa al equipo de ScummVM esta información junto al nombre" -#: engines/advancedDetector.cpp:320 +#: engines/advancedDetector.cpp:337 msgid "of the game you tried to add and its version/language/etc.:" msgstr "del juego que has intentado ańadir y su versión/idioma/etc.:" @@ -1390,11 +1442,11 @@ msgstr "del juego que has intentado ańadir y su versión/idioma/etc.:" msgid "~R~esume" msgstr "~R~eanudar" -#: engines/dialogs.cpp:87 +#: engines/dialogs.cpp:87 engines/mohawk/dialogs.cpp:113 msgid "~L~oad" msgstr "~C~argar" -#: engines/dialogs.cpp:91 +#: engines/dialogs.cpp:91 engines/mohawk/dialogs.cpp:114 msgid "~S~ave" msgstr "~G~uardar" @@ -1423,9 +1475,9 @@ msgstr "~V~olver al lanzador" #: engines/avalanche/parser.cpp:1899 engines/cge/events.cpp:74 #: engines/cge2/events.cpp:67 engines/cruise/menu.cpp:212 #: engines/drascula/saveload.cpp:336 engines/dreamweb/saveload.cpp:261 -#: engines/hugo/file.cpp:298 engines/neverhood/menumodule.cpp:877 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/hugo/file.cpp:298 engines/mohawk/dialogs.cpp:121 +#: engines/neverhood/menumodule.cpp:877 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save game:" @@ -1440,9 +1492,10 @@ msgstr "Guardar partida" #: engines/cge/events.cpp:74 engines/cge2/events.cpp:67 #: engines/cruise/menu.cpp:212 engines/drascula/saveload.cpp:336 #: engines/dreamweb/saveload.cpp:261 engines/hugo/file.cpp:298 -#: engines/neverhood/menumodule.cpp:877 engines/parallaction/saveload.cpp:212 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/scumm/dialogs.cpp:188 engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/mohawk/dialogs.cpp:121 engines/neverhood/menumodule.cpp:877 +#: engines/parallaction/saveload.cpp:212 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/scumm/dialogs.cpp:188 +#: engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save" @@ -1468,13 +1521,13 @@ msgstr "" "archivo README para encontrar información bįsica e instrucciones sobre cómo " "obtener mįs ayuda." -#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:109 -#: engines/mohawk/dialogs.cpp:170 engines/tsage/dialogs.cpp:106 +#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:117 +#: engines/mohawk/dialogs.cpp:242 engines/tsage/dialogs.cpp:106 msgid "~O~K" msgstr "~S~ķ" -#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:110 -#: engines/mohawk/dialogs.cpp:171 engines/tsage/dialogs.cpp:107 +#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:118 +#: engines/mohawk/dialogs.cpp:243 engines/tsage/dialogs.cpp:107 msgid "~C~ancel" msgstr "~C~ancelar" @@ -1631,11 +1684,11 @@ msgstr "FM-Towns Audio" msgid "PC-98 Audio" msgstr "PC-98 Audio" -#: audio/softsynth/mt32.cpp:200 +#: audio/softsynth/mt32.cpp:196 msgid "Initializing MT-32 Emulator" msgstr "Iniciando el emulador de MT-32" -#: audio/softsynth/mt32.cpp:426 +#: audio/softsynth/mt32.cpp:434 msgid "MT-32 Emulator" msgstr "Emulador de MT-32" @@ -1752,11 +1805,11 @@ msgstr "El modo de arrastre automįtico estį" msgid "Swipe three fingers to the right to toggle." msgstr "Desliza tres dedos hacia la derecha para cambiar de modo." -#: backends/graphics/opengl/opengl-graphics.cpp:119 +#: backends/graphics/opengl/opengl-graphics.cpp:126 msgid "OpenGL" msgstr "OpenGL" -#: backends/graphics/opengl/opengl-graphics.cpp:120 +#: backends/graphics/opengl/opengl-graphics.cpp:127 msgid "OpenGL (No filtering)" msgstr "OpenGL (sin filtros)" @@ -2309,20 +2362,20 @@ msgstr "" "No olvides asignar una tecla a la acción 'Ocultar barra de tareas' para ver " "todo el inventario" -#: backends/updates/macosx/macosx-updates.mm:67 +#: backends/updates/macosx/macosx-updates.mm:68 msgid "Check for Updates..." msgstr "Buscar actualizaciones..." #: engines/agi/detection.cpp:147 engines/cine/detection.cpp:70 #: engines/drascula/detection.cpp:302 engines/dreamweb/detection.cpp:47 -#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:404 +#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:410 #: engines/toltecs/detection.cpp:200 engines/zvision/detection_tables.h:51 msgid "Use original save/load screens" msgstr "Usar pantallas de guardar/cargar originales" #: engines/agi/detection.cpp:148 engines/cine/detection.cpp:71 #: engines/drascula/detection.cpp:303 engines/dreamweb/detection.cpp:48 -#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:405 +#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:411 #: engines/toltecs/detection.cpp:201 msgid "Use the original save/load screens, instead of the ScummVM ones" msgstr "" @@ -2351,11 +2404,30 @@ msgstr "" "Activa el ratón. Permite usar el ratón para moverse en el juego y en los " "menśs." +#: engines/agi/detection.cpp:177 +#, fuzzy +msgid "Use Hercules hires font" +msgstr "Hercules verde" + +#: engines/agi/detection.cpp:178 +msgid "Uses Hercules hires font, when font file is available." +msgstr "" + +#: engines/agi/detection.cpp:187 +msgid "Pause when entering commands" +msgstr "" + +#: engines/agi/detection.cpp:188 +msgid "" +"Shows a command prompt window and pauses the game (like in SCI) instead of a " +"real-time prompt." +msgstr "" + #: engines/agi/saveload.cpp:777 engines/avalanche/parser.cpp:1887 #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore game:" @@ -2365,13 +2437,13 @@ msgstr "Cargar partida:" #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore" msgstr "Cargar" -#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2377 +#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2374 #, c-format msgid "" "Failed to load game state from file:\n" @@ -2382,7 +2454,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2370 +#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2367 #, c-format msgid "" "Failed to save game state to file:\n" @@ -2393,7 +2465,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2388 +#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2385 #, c-format msgid "" "Successfully saved game state in file:\n" @@ -2639,29 +2711,39 @@ msgstr "" "'import_savefile'.\n" "\n" +#: engines/mohawk/detection.cpp:168 +msgid "Play the Myst fly by movie" +msgstr "" + +#: engines/mohawk/detection.cpp:169 +msgid "The Myst fly by movie was not played by the original engine." +msgstr "" + #. I18N: Option for fast scene switching -#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:167 +#: engines/mohawk/dialogs.cpp:96 engines/mohawk/dialogs.cpp:239 msgid "~Z~ip Mode Activated" msgstr "Modo ~Z~ip activado" -#: engines/mohawk/dialogs.cpp:93 +#: engines/mohawk/dialogs.cpp:97 msgid "~T~ransitions Enabled" msgstr "Tra~n~siciones activadas" #. I18N: Drop book page -#: engines/mohawk/dialogs.cpp:95 +#: engines/mohawk/dialogs.cpp:99 msgid "~D~rop Page" msgstr "~T~irar pįgina" -#: engines/mohawk/dialogs.cpp:99 -msgid "~S~how Map" +#: engines/mohawk/dialogs.cpp:103 +#, fuzzy +msgid "Show ~M~ap" msgstr "~M~ostrar el mapa" -#: engines/mohawk/dialogs.cpp:105 -msgid "~M~ain Menu" +#: engines/mohawk/dialogs.cpp:109 +#, fuzzy +msgid "Main Men~u~" msgstr "~M~enś principal" -#: engines/mohawk/dialogs.cpp:168 +#: engines/mohawk/dialogs.cpp:240 msgid "~W~ater Effect Enabled" msgstr "Efecto ag~u~a activado" @@ -2785,37 +2867,37 @@ msgid "Use an alternative game intro (CD version only)" msgstr "" "Usa una introducción alternativa para el juego (solo para la versión CD)" -#: engines/sci/detection.cpp:374 +#: engines/sci/detection.cpp:380 msgid "Skip EGA dithering pass (full color backgrounds)" msgstr "Omitir difuminado EGA (colores completos)" -#: engines/sci/detection.cpp:375 +#: engines/sci/detection.cpp:381 msgid "Skip dithering pass in EGA games, graphics are shown with full colors" msgstr "" "Omitir pasada de difuminado en los juegos EGA. Los grįficos se muestran con " "los colores completos" -#: engines/sci/detection.cpp:384 +#: engines/sci/detection.cpp:390 msgid "Enable high resolution graphics" msgstr "Activar grįficos de alta resolución" -#: engines/sci/detection.cpp:385 +#: engines/sci/detection.cpp:391 msgid "Enable high resolution graphics/content" msgstr "Activar grįficos/contenido de alta resolución" -#: engines/sci/detection.cpp:394 +#: engines/sci/detection.cpp:400 msgid "Prefer digital sound effects" msgstr "Preferir efectos de sonido digitales" -#: engines/sci/detection.cpp:395 +#: engines/sci/detection.cpp:401 msgid "Prefer digital sound effects instead of synthesized ones" msgstr "Preferir efectos de sonido digitales en vez de los sintetizados" -#: engines/sci/detection.cpp:414 +#: engines/sci/detection.cpp:420 msgid "Use IMF/Yamaha FB-01 for MIDI output" msgstr "Usar IMF/Yamaha FB-01 para la salida MIDI" -#: engines/sci/detection.cpp:415 +#: engines/sci/detection.cpp:421 msgid "" "Use an IBM Music Feature card or a Yamaha FB-01 FM synth module for MIDI " "output" @@ -2823,34 +2905,43 @@ msgstr "" "Usar una tarjeta IBM Music o un módulo sintetizador Yamaha FB-01 FM para la " "salida MIDI" -#: engines/sci/detection.cpp:425 +#: engines/sci/detection.cpp:431 msgid "Use CD audio" msgstr "Usar CD audio" -#: engines/sci/detection.cpp:426 +#: engines/sci/detection.cpp:432 msgid "Use CD audio instead of in-game audio, if available" msgstr "Usar CD audio en vez del sonido interno del juego, si estį disponible" -#: engines/sci/detection.cpp:436 +#: engines/sci/detection.cpp:442 msgid "Use Windows cursors" msgstr "Usar cursores de Windows" -#: engines/sci/detection.cpp:437 +#: engines/sci/detection.cpp:443 msgid "" "Use the Windows cursors (smaller and monochrome) instead of the DOS ones" msgstr "" "Usar los cursores de Windows (mįs pequeńos y monocromos) en vez de los de DOS" -#: engines/sci/detection.cpp:447 +#: engines/sci/detection.cpp:453 msgid "Use silver cursors" msgstr "Usar cursores plateados" -#: engines/sci/detection.cpp:448 +#: engines/sci/detection.cpp:454 msgid "" "Use the alternate set of silver cursors, instead of the normal golden ones" msgstr "" "Usar los cursores plateados alternativos, en vez de los dorados normales" +#: engines/scumm/detection.cpp:1335 +#, fuzzy +msgid "Show Object Line" +msgstr "Mostrar etiquetas de objetos" + +#: engines/scumm/detection.cpp:1336 +msgid "Show the names of objects at the bottom of the screen" +msgstr "" + #: engines/scumm/dialogs.cpp:176 #, c-format msgid "Insert Disk %c and Press Button to Continue." @@ -3516,7 +3607,7 @@ msgstr "Volumen de la mśsica:" msgid "Subtitle speed: " msgstr "Vel. de subtķtulos:" -#: engines/scumm/scumm.cpp:1832 +#: engines/scumm/scumm.cpp:1829 #, c-format msgid "" "Native MIDI support requires the Roland Upgrade from LucasArts,\n" @@ -3525,7 +3616,7 @@ msgstr "" "El soporte MIDI nativo requiere la actualización Roland de LucasArts,\n" "pero %s no estį disponible. Se usarį AdLib." -#: engines/scumm/scumm.cpp:2644 +#: engines/scumm/scumm.cpp:2645 msgid "" "Usually, Maniac Mansion would start now. But for that to work, the game " "files for Maniac Mansion have to be in the 'Maniac' directory inside the " @@ -3711,6 +3802,15 @@ msgstr "Mostrar etiquetas de objetos" msgid "Show labels for objects on mouse hover" msgstr "Muestra las etiquetas de los objetos al pasar el ratón" +#: engines/sword25/detection.cpp:46 +msgid "Use English speech" +msgstr "" + +#: engines/sword25/detection.cpp:47 +msgid "" +"Use English speech instead of German for every language other than German" +msgstr "" + #: engines/teenagent/resources.cpp:95 msgid "" "You're missing the 'teenagent.dat' file. Get it from the ScummVM website" @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ScummVM 1.5.0git\n" "Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n" -"POT-Creation-Date: 2016-02-20 21:22+0000\n" +"POT-Creation-Date: 2016-04-07 08:55+0100\n" "PO-Revision-Date: 2011-12-15 14:53+0100\n" "Last-Translator: Mikel Iturbe Urretxa <mikel@hamahiru.org>\n" "Language-Team: Librezale <librezale@librezale.org>\n" @@ -53,10 +53,11 @@ msgstr "Joan gora" #: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editrecorddialog.cpp:67 #: gui/filebrowser-dialog.cpp:64 gui/fluidsynth-dialog.cpp:152 #: gui/KeysDialog.cpp:43 gui/launcher.cpp:351 gui/massadd.cpp:95 -#: gui/options.cpp:1237 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 +#: gui/options.cpp:1255 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 #: gui/recorderdialog.cpp:156 gui/saveload-dialog.cpp:216 #: gui/saveload-dialog.cpp:276 gui/saveload-dialog.cpp:547 -#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 engines/engine.cpp:546 +#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 +#: gui/updates-dialog.cpp:113 engines/engine.cpp:546 #: backends/events/default/default-events.cpp:196 #: backends/events/default/default-events.cpp:218 #: backends/platform/wii/options.cpp:48 engines/drascula/saveload.cpp:49 @@ -170,7 +171,7 @@ msgstr "Sinua" msgid "Triangle" msgstr "Triangelua" -#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1168 +#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1170 msgid "Misc" msgstr "Beste" @@ -204,12 +205,12 @@ msgstr "Berrazarri FluidSynth-en ezarpen guztiak bere balio lehenetsietara" #: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:352 #: gui/launcher.cpp:1050 gui/launcher.cpp:1054 gui/massadd.cpp:92 -#: gui/options.cpp:1238 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 +#: gui/options.cpp:1256 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 #: engines/engine.cpp:476 backends/platform/wii/options.cpp:47 #: backends/platform/wince/CELauncherDialog.cpp:54 #: engines/agos/animation.cpp:558 engines/drascula/saveload.cpp:49 #: engines/groovie/script.cpp:408 engines/parallaction/saveload.cpp:274 -#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1834 +#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1831 #: engines/scumm/players/player_v3m.cpp:130 #: engines/scumm/players/player_v5m.cpp:108 engines/sky/compact.cpp:131 #: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:524 @@ -237,15 +238,15 @@ msgstr "Itxi" msgid "Mouse click" msgstr "Sagu-klika" -#: gui/gui-manager.cpp:126 base/main.cpp:322 +#: gui/gui-manager.cpp:126 base/main.cpp:325 msgid "Display keyboard" msgstr "Erakutsi teklatua" -#: gui/gui-manager.cpp:130 base/main.cpp:326 +#: gui/gui-manager.cpp:130 base/main.cpp:329 msgid "Remap keys" msgstr "Esleitu teklak" -#: gui/gui-manager.cpp:133 base/main.cpp:329 engines/scumm/help.cpp:87 +#: gui/gui-manager.cpp:133 base/main.cpp:332 engines/scumm/help.cpp:87 msgid "Toggle fullscreen" msgstr "Txandakatu pantaila osoa" @@ -320,8 +321,8 @@ msgid "" msgstr "" "Jokoaren hizkuntza. Honek ez du zure ingelesezko bertsioa frantsesera pasako" -#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:87 -#: gui/options.cpp:735 gui/options.cpp:748 gui/options.cpp:1208 +#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:89 +#: gui/options.cpp:737 gui/options.cpp:750 gui/options.cpp:1210 #: audio/null.cpp:41 msgid "<default>" msgstr "<lehenetsia>" @@ -343,11 +344,11 @@ msgstr "Plataforma:" msgid "Engine" msgstr "Motorea" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "Graphics" msgstr "Grafikoak" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "GFX" msgstr "GFX" @@ -360,7 +361,7 @@ msgctxt "lowres" msgid "Override global graphic settings" msgstr "Ezarpen grafiko globalak baliogabetu" -#: gui/launcher.cpp:257 gui/options.cpp:1094 +#: gui/launcher.cpp:257 gui/options.cpp:1096 msgid "Audio" msgstr "Soinua" @@ -373,11 +374,11 @@ msgctxt "lowres" msgid "Override global audio settings" msgstr "Soinu ezarpen globalak baliogabetu" -#: gui/launcher.cpp:271 gui/options.cpp:1099 +#: gui/launcher.cpp:271 gui/options.cpp:1101 msgid "Volume" msgstr "Bolumena" -#: gui/launcher.cpp:273 gui/options.cpp:1101 +#: gui/launcher.cpp:273 gui/options.cpp:1103 msgctxt "lowres" msgid "Volume" msgstr "Bolumena" @@ -391,7 +392,7 @@ msgctxt "lowres" msgid "Override global volume settings" msgstr "Bolumen ezarpen globalak baliogabetu" -#: gui/launcher.cpp:286 gui/options.cpp:1109 +#: gui/launcher.cpp:286 gui/options.cpp:1111 msgid "MIDI" msgstr "MIDI" @@ -404,7 +405,7 @@ msgctxt "lowres" msgid "Override global MIDI settings" msgstr "MIDI ezarpen globalak baliogabetu" -#: gui/launcher.cpp:300 gui/options.cpp:1115 +#: gui/launcher.cpp:300 gui/options.cpp:1117 msgid "MT-32" msgstr "MT-32" @@ -417,11 +418,11 @@ msgctxt "lowres" msgid "Override global MT-32 settings" msgstr "MT-32 ezarpen globalak baliogabetu" -#: gui/launcher.cpp:314 gui/options.cpp:1122 +#: gui/launcher.cpp:314 gui/options.cpp:1124 msgid "Paths" msgstr "Bide-izenak" -#: gui/launcher.cpp:316 gui/options.cpp:1124 +#: gui/launcher.cpp:316 gui/options.cpp:1126 msgctxt "lowres" msgid "Paths" msgstr "Bideak" @@ -435,7 +436,7 @@ msgctxt "lowres" msgid "Game Path:" msgstr "Jokoa:" -#: gui/launcher.cpp:330 gui/options.cpp:1148 +#: gui/launcher.cpp:330 gui/options.cpp:1150 msgid "Extra Path:" msgstr "Gehigarriak:" @@ -443,42 +444,42 @@ msgstr "Gehigarriak:" msgid "Specifies path to additional data used by the game" msgstr "Jokoak erabiltzen duen datu gehigarrien bide-izena" -#: gui/launcher.cpp:332 gui/options.cpp:1150 +#: gui/launcher.cpp:332 gui/options.cpp:1152 msgctxt "lowres" msgid "Extra Path:" msgstr "Gehigarria:" -#: gui/launcher.cpp:339 gui/options.cpp:1132 +#: gui/launcher.cpp:339 gui/options.cpp:1134 msgid "Save Path:" msgstr "Partida gordeak:" #: gui/launcher.cpp:339 gui/launcher.cpp:341 gui/launcher.cpp:342 -#: gui/options.cpp:1132 gui/options.cpp:1134 gui/options.cpp:1135 +#: gui/options.cpp:1134 gui/options.cpp:1136 gui/options.cpp:1137 msgid "Specifies where your saved games are put" msgstr "Zure gordetako partidak non gordeko diren zehazten du" -#: gui/launcher.cpp:341 gui/options.cpp:1134 +#: gui/launcher.cpp:341 gui/options.cpp:1136 msgctxt "lowres" msgid "Save Path:" msgstr "Partida gordeak:" #: gui/launcher.cpp:360 gui/launcher.cpp:459 gui/launcher.cpp:517 -#: gui/launcher.cpp:571 gui/options.cpp:1143 gui/options.cpp:1151 -#: gui/options.cpp:1160 gui/options.cpp:1275 gui/options.cpp:1281 -#: gui/options.cpp:1289 gui/options.cpp:1319 gui/options.cpp:1325 -#: gui/options.cpp:1332 gui/options.cpp:1425 gui/options.cpp:1428 -#: gui/options.cpp:1440 +#: gui/launcher.cpp:571 gui/options.cpp:1145 gui/options.cpp:1153 +#: gui/options.cpp:1162 gui/options.cpp:1293 gui/options.cpp:1299 +#: gui/options.cpp:1307 gui/options.cpp:1337 gui/options.cpp:1343 +#: gui/options.cpp:1350 gui/options.cpp:1456 gui/options.cpp:1459 +#: gui/options.cpp:1471 msgctxt "path" msgid "None" msgstr "Bat ere ez" #: gui/launcher.cpp:365 gui/launcher.cpp:465 gui/launcher.cpp:575 -#: gui/options.cpp:1269 gui/options.cpp:1313 gui/options.cpp:1431 +#: gui/options.cpp:1287 gui/options.cpp:1331 gui/options.cpp:1462 #: backends/platform/wii/options.cpp:56 msgid "Default" msgstr "Lehenetsia" -#: gui/launcher.cpp:510 gui/options.cpp:1434 +#: gui/launcher.cpp:510 gui/options.cpp:1465 msgid "Select SoundFont" msgstr "SoundFont-a aukeratu" @@ -490,7 +491,7 @@ msgstr "Jokoaren direktorioa aukeratu" msgid "Select additional game directory" msgstr "Direktorio gehigarria aukeratu" -#: gui/launcher.cpp:559 gui/options.cpp:1377 +#: gui/launcher.cpp:559 gui/options.cpp:1408 msgid "Select directory for saved games" msgstr "Partida gordeen direktorioa aukeratu" @@ -498,7 +499,7 @@ msgstr "Partida gordeen direktorioa aukeratu" msgid "This game ID is already taken. Please choose another one." msgstr "ID hau jada erabilia izaten ari da. Mesedez, aukeratu beste bat." -#: gui/launcher.cpp:626 engines/dialogs.cpp:111 +#: gui/launcher.cpp:626 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:115 msgid "~Q~uit" msgstr "~I~rten" @@ -586,17 +587,18 @@ msgid "Search:" msgstr "Bilatu:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214 -#: engines/mohawk/riven.cpp:718 engines/pegasus/pegasus.cpp:353 -#: engines/tsage/scenes.cpp:600 +#: engines/mohawk/dialogs.cpp:120 engines/mohawk/riven.cpp:718 +#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:600 msgid "Load game:" msgstr "Jokoa kargatu:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 #: backends/platform/wince/CEActionsPocket.cpp:267 #: backends/platform/wince/CEActionsSmartphone.cpp:231 -#: engines/cruise/menu.cpp:214 engines/mohawk/riven.cpp:718 -#: engines/parallaction/saveload.cpp:197 engines/pegasus/pegasus.cpp:353 -#: engines/scumm/dialogs.cpp:189 engines/tsage/scenes.cpp:600 +#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:120 +#: engines/mohawk/riven.cpp:718 engines/parallaction/saveload.cpp:197 +#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:189 +#: engines/tsage/scenes.cpp:600 msgid "Load" msgstr "Kargatu" @@ -687,132 +689,132 @@ msgstr "Aldatu jokora" msgid "Fast replay" msgstr "Errepikappen bizkorra" -#: gui/options.cpp:85 +#: gui/options.cpp:87 common/updates.cpp:56 msgid "Never" msgstr "Inoiz ez" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 5 mins" msgstr "5 minuturo" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 10 mins" msgstr "10 minuturo" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 15 mins" msgstr "15 minuturo" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 30 mins" msgstr "30 minuturo" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "8 kHz" msgstr "8 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "11 kHz" msgstr "11 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "22 kHz" msgstr "22 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "44 kHz" msgstr "44 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "48 kHz" msgstr "48 kHz" -#: gui/options.cpp:255 gui/options.cpp:479 gui/options.cpp:580 -#: gui/options.cpp:649 gui/options.cpp:857 +#: gui/options.cpp:257 gui/options.cpp:481 gui/options.cpp:582 +#: gui/options.cpp:651 gui/options.cpp:859 msgctxt "soundfont" msgid "None" msgstr "Bat ere ez" -#: gui/options.cpp:389 +#: gui/options.cpp:391 msgid "Failed to apply some of the graphic options changes:" msgstr "Ezin izan da grafikoen aukeretako batzuk aplikatu:" -#: gui/options.cpp:401 +#: gui/options.cpp:403 msgid "the video mode could not be changed." msgstr "ezin izan da bideo-modua aldatu." -#: gui/options.cpp:407 +#: gui/options.cpp:409 msgid "the fullscreen setting could not be changed" msgstr "ezin izan da pantaila-osoaren ezarpena aldatu" -#: gui/options.cpp:413 +#: gui/options.cpp:415 msgid "the aspect ratio setting could not be changed" msgstr "formatu-ratioaren ezarpena ezin izan da aldatu" -#: gui/options.cpp:732 +#: gui/options.cpp:734 msgid "Graphics mode:" msgstr "Modu grafikoa:" -#: gui/options.cpp:746 +#: gui/options.cpp:748 msgid "Render mode:" msgstr "Renderizazioa:" -#: gui/options.cpp:746 gui/options.cpp:747 +#: gui/options.cpp:748 gui/options.cpp:749 msgid "Special dithering modes supported by some games" msgstr "Joko batzuk onarturiko lausotze-modu bereziak" -#: gui/options.cpp:758 +#: gui/options.cpp:760 #: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2316 msgid "Fullscreen mode" msgstr "Pantaila osoa" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Aspect ratio correction" msgstr "Formatu-ratioaren zuzenketa" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Correct aspect ratio for 320x200 games" msgstr "320x200 jokoentzako formatu-ratioa zuzendu" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Preferred Device:" msgstr "Gogoko gailua:" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Music Device:" msgstr "Musika gailua:" -#: gui/options.cpp:769 gui/options.cpp:771 +#: gui/options.cpp:771 gui/options.cpp:773 msgid "Specifies preferred sound device or sound card emulator" msgstr "Gogoko soinu txartel edo emuladorea zein den ezartzen du" -#: gui/options.cpp:769 gui/options.cpp:771 gui/options.cpp:772 +#: gui/options.cpp:771 gui/options.cpp:773 gui/options.cpp:774 msgid "Specifies output sound device or sound card emulator" msgstr "Irteerako soinu txartel edo emuladorea ezartzen du" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Preferred Dev.:" msgstr "Gail. gogokoa:" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Music Device:" msgstr "Musika gailua:" -#: gui/options.cpp:798 +#: gui/options.cpp:800 msgid "AdLib emulator:" msgstr "AdLib emuladorea:" -#: gui/options.cpp:798 gui/options.cpp:799 +#: gui/options.cpp:800 gui/options.cpp:801 msgid "AdLib is used for music in many games" msgstr "AdLib musikarako hainbat jokotan erabiltzen da" -#: gui/options.cpp:809 +#: gui/options.cpp:811 msgid "Output rate:" msgstr "Irteera maizt.:" -#: gui/options.cpp:809 gui/options.cpp:810 +#: gui/options.cpp:811 gui/options.cpp:812 msgid "" "Higher value specifies better sound quality but may be not supported by your " "soundcard" @@ -820,68 +822,68 @@ msgstr "" "Balio altuagoek soinu kalitate hobea ezartzen dute, baina baliteke zure " "soinu-txartela bateragarria ez izatea" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "GM Device:" msgstr "GM gailua:" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "Specifies default sound device for General MIDI output" msgstr "Defektuzko soinu txartela ezartzen du General MIDI irteerarako" -#: gui/options.cpp:831 +#: gui/options.cpp:833 msgid "Don't use General MIDI music" msgstr "Ez erabili General MIDI musika" -#: gui/options.cpp:842 gui/options.cpp:908 +#: gui/options.cpp:844 gui/options.cpp:910 msgid "Use first available device" msgstr "Erabilgarri dagoen lehen gailua erabili" -#: gui/options.cpp:854 +#: gui/options.cpp:856 msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:854 gui/options.cpp:856 gui/options.cpp:857 +#: gui/options.cpp:856 gui/options.cpp:858 gui/options.cpp:859 msgid "SoundFont is supported by some audio cards, FluidSynth and Timidity" msgstr "" "Zenbait soinu txartel bateragarriak dira SoundFont-ekin, FluidSynth eta " "Timidity besteak beste" -#: gui/options.cpp:856 +#: gui/options.cpp:858 msgctxt "lowres" msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Mixed AdLib/MIDI mode" msgstr "AdLib/MIDI modua" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Use both MIDI and AdLib sound generation" msgstr "Soinua sortzerakoan MIDI eta AdLib erabili" -#: gui/options.cpp:865 +#: gui/options.cpp:867 msgid "MIDI gain:" msgstr "MIDI irabazia:" -#: gui/options.cpp:872 +#: gui/options.cpp:874 msgid "FluidSynth Settings" msgstr "FluidSynth Ezarpenak" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "MT-32 Device:" msgstr "MT-32 gailua:" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output" msgstr "" "Roland MT-32/LAPC1/CM32l/CM64 irteerarako defektuzko soinu txartela ezartzen " "du" -#: gui/options.cpp:884 +#: gui/options.cpp:886 msgid "True Roland MT-32 (disable GM emulation)" msgstr "Benetako Roland MT-32 (GM emulazio gabe)" -#: gui/options.cpp:884 gui/options.cpp:886 +#: gui/options.cpp:886 gui/options.cpp:888 msgid "" "Check if you want to use your real hardware Roland-compatible sound device " "connected to your computer" @@ -889,16 +891,16 @@ msgstr "" "Markatu ordenagailura konektaturiko Roland-ekin bateragarria den soinu-" "gailua erabiltzeko" -#: gui/options.cpp:886 +#: gui/options.cpp:888 msgctxt "lowres" msgid "True Roland MT-32 (no GM emulation)" msgstr "Benetako Roland MT-32 (GM emulazio gabe)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "Roland GS Device (enable MT-32 mappings)" msgstr "Roland GS Gailua (gaitu MT-32 bihurketak)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "" "Check if you want to enable patch mappings to emulate an MT-32 on a Roland " "GS device" @@ -906,170 +908,182 @@ msgstr "" "Markatu Roland GS gailu batean MT-32 bat emulatzea ahalbidetzen " "dutenbihurketak gaitzeko" -#: gui/options.cpp:898 +#: gui/options.cpp:900 msgid "Don't use Roland MT-32 music" msgstr "Ez erabili Roland MT-32 musika" -#: gui/options.cpp:925 +#: gui/options.cpp:927 msgid "Text and Speech:" msgstr "Testu eta ahotsa:" -#: gui/options.cpp:929 gui/options.cpp:939 +#: gui/options.cpp:931 gui/options.cpp:941 msgid "Speech" msgstr "Ahotsa" -#: gui/options.cpp:930 gui/options.cpp:940 +#: gui/options.cpp:932 gui/options.cpp:942 msgid "Subtitles" msgstr "Azpitituluak" -#: gui/options.cpp:931 +#: gui/options.cpp:933 msgid "Both" msgstr "Biak" -#: gui/options.cpp:933 +#: gui/options.cpp:935 msgid "Subtitle speed:" msgstr "Azpitit. abiadura:" -#: gui/options.cpp:935 +#: gui/options.cpp:937 msgctxt "lowres" msgid "Text and Speech:" msgstr "Testu eta ahotsa:" -#: gui/options.cpp:939 +#: gui/options.cpp:941 msgid "Spch" msgstr "Ahots." -#: gui/options.cpp:940 +#: gui/options.cpp:942 msgid "Subs" msgstr "Azp." -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgctxt "lowres" msgid "Both" msgstr "Biak" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgid "Show subtitles and play speech" msgstr "Ahotsak erreproduzitu eta azpitituluak erakutsi" -#: gui/options.cpp:943 +#: gui/options.cpp:945 msgctxt "lowres" msgid "Subtitle speed:" msgstr "Azpit. abiadura:" -#: gui/options.cpp:959 +#: gui/options.cpp:961 msgid "Music volume:" msgstr "Musika:" -#: gui/options.cpp:961 +#: gui/options.cpp:963 msgctxt "lowres" msgid "Music volume:" msgstr "Musika:" -#: gui/options.cpp:968 +#: gui/options.cpp:970 msgid "Mute All" msgstr "Mututu dena" -#: gui/options.cpp:971 +#: gui/options.cpp:973 msgid "SFX volume:" msgstr "Efektuak:" -#: gui/options.cpp:971 gui/options.cpp:973 gui/options.cpp:974 +#: gui/options.cpp:973 gui/options.cpp:975 gui/options.cpp:976 msgid "Special sound effects volume" msgstr "Soinu efektu berezien bolumena" -#: gui/options.cpp:973 +#: gui/options.cpp:975 msgctxt "lowres" msgid "SFX volume:" msgstr "Efektuak:" -#: gui/options.cpp:981 +#: gui/options.cpp:983 msgid "Speech volume:" msgstr "Ahotsak:" -#: gui/options.cpp:983 +#: gui/options.cpp:985 msgctxt "lowres" msgid "Speech volume:" msgstr "Ahotsak:" -#: gui/options.cpp:1140 +#: gui/options.cpp:1142 msgid "Theme Path:" msgstr "Gaiak:" -#: gui/options.cpp:1142 +#: gui/options.cpp:1144 msgctxt "lowres" msgid "Theme Path:" msgstr "Gaiak:" -#: gui/options.cpp:1148 gui/options.cpp:1150 gui/options.cpp:1151 +#: gui/options.cpp:1150 gui/options.cpp:1152 gui/options.cpp:1153 msgid "Specifies path to additional data used by all games or ScummVM" msgstr "" "Joko guztiek edo ScummVM-k darabilten datu gehigarrien bide-izena ezartzen du" -#: gui/options.cpp:1157 +#: gui/options.cpp:1159 msgid "Plugins Path:" msgstr "Pluginak:" -#: gui/options.cpp:1159 +#: gui/options.cpp:1161 msgctxt "lowres" msgid "Plugins Path:" msgstr "Pluginak:" -#: gui/options.cpp:1170 +#: gui/options.cpp:1172 msgctxt "lowres" msgid "Misc" msgstr "Beste" -#: gui/options.cpp:1172 +#: gui/options.cpp:1174 msgid "Theme:" msgstr "Gaia:" -#: gui/options.cpp:1176 +#: gui/options.cpp:1178 msgid "GUI Renderer:" msgstr "Interfazea:" -#: gui/options.cpp:1188 +#: gui/options.cpp:1190 msgid "Autosave:" msgstr "Autogordetzea:" -#: gui/options.cpp:1190 +#: gui/options.cpp:1192 msgctxt "lowres" msgid "Autosave:" msgstr "Autogordetzea:" -#: gui/options.cpp:1198 +#: gui/options.cpp:1200 msgid "Keys" msgstr "Teklak" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "GUI Language:" msgstr "Hizkuntza" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "Language of ScummVM GUI" msgstr "ScummVM interfazearen hizkuntza" -#: gui/options.cpp:1364 +#: gui/options.cpp:1235 +msgid "Update check:" +msgstr "" + +#: gui/options.cpp:1235 +msgid "How often to check ScummVM updates" +msgstr "" + +#: gui/options.cpp:1247 +msgid "Check now" +msgstr "" + +#: gui/options.cpp:1382 msgid "You have to restart ScummVM before your changes will take effect." msgstr "ScummVM berrabiarazi behar duzu aldaketak indarrean jartzeko" -#: gui/options.cpp:1384 +#: gui/options.cpp:1415 msgid "The chosen directory cannot be written to. Please select another one." msgstr "Aukeraturiko direktorioan ezin da idatzi. Mesedez, aukeratu beste bat." -#: gui/options.cpp:1393 +#: gui/options.cpp:1424 msgid "Select directory for GUI themes" msgstr "Gaien direktorioa aukeratu" -#: gui/options.cpp:1403 +#: gui/options.cpp:1434 msgid "Select directory for extra files" msgstr "Fitxategi gehigarrien direktorioa aukeratu" -#: gui/options.cpp:1414 +#: gui/options.cpp:1445 msgid "Select directory for plugins" msgstr "Pluginen direktorioa aukeratu" -#: gui/options.cpp:1467 +#: gui/options.cpp:1498 msgid "" "The theme you selected does not support your current language. If you want " "to use this theme you need to switch to another language first." @@ -1242,39 +1256,60 @@ msgstr "Errendatzaile lausotua" msgid "Antialiased" msgstr "Lausotua" -#: gui/widget.cpp:323 gui/widget.cpp:325 gui/widget.cpp:331 gui/widget.cpp:333 +#: gui/updates-dialog.cpp:51 +msgid "" +"ScummVM now supports automatic check for updates\n" +"which requires access to the Internet.\n" +"\n" +"Would you like to enable this feature?" +msgstr "" + +#: gui/updates-dialog.cpp:55 +msgid "(You can always enable it in the options dialog on the Misc tab)" +msgstr "" + +#: gui/updates-dialog.cpp:92 +#, fuzzy +msgid "Check for updates automatically" +msgstr "Eguneraketak bilatzen..." + +#: gui/updates-dialog.cpp:111 +msgid "Proceed" +msgstr "" + +#: gui/widget.cpp:327 gui/widget.cpp:329 gui/widget.cpp:335 gui/widget.cpp:337 msgid "Clear value" msgstr "Balioa kendu:" -#: base/main.cpp:237 +#: base/main.cpp:240 #, c-format msgid "Engine does not support debug level '%s'" msgstr "Motoreak ez da '%s' debug mailarekin bateragarria" -#: base/main.cpp:309 +#: base/main.cpp:312 msgid "Menu" msgstr "Menua" -#: base/main.cpp:312 backends/platform/symbian/src/SymbianActions.cpp:45 +#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:45 #: backends/platform/wince/CEActionsPocket.cpp:45 #: backends/platform/wince/CEActionsSmartphone.cpp:46 msgid "Skip" msgstr "Saltatu" -#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:50 +#: base/main.cpp:318 backends/platform/symbian/src/SymbianActions.cpp:50 #: backends/platform/wince/CEActionsPocket.cpp:42 msgid "Pause" msgstr "Gelditu" -#: base/main.cpp:318 +#: base/main.cpp:321 msgid "Skip line" msgstr "Lerroa saltatu" -#: base/main.cpp:510 +#: base/main.cpp:520 msgid "Error running game:" msgstr "Jokoa exekutatzean errorea:" -#: base/main.cpp:557 +#: base/main.cpp:567 msgid "Could not find any engine capable of running the selected game" msgstr "Ezin izan da aukeraturiko jokoa exekutatzeko gai den motorerik aurkitu" @@ -1369,16 +1404,33 @@ msgctxt "lowres" msgid "Hercules Amber" msgstr "Herkules anbar-kolorekoa" -#: engines/advancedDetector.cpp:317 +#: common/updates.cpp:58 +msgid "Daily" +msgstr "" + +#: common/updates.cpp:60 +msgid "Weekly" +msgstr "" + +#: common/updates.cpp:62 +msgid "Monthly" +msgstr "" + +#: common/updates.cpp:64 +#, fuzzy +msgid "<Bad value>" +msgstr "Balioa kendu:" + +#: engines/advancedDetector.cpp:334 #, c-format msgid "The game in '%s' seems to be unknown." msgstr "'%s'-(e)ko jokoa ezezaguna dela dirudi" -#: engines/advancedDetector.cpp:318 +#: engines/advancedDetector.cpp:335 msgid "Please, report the following data to the ScummVM team along with name" msgstr "Mesedez, bidali hurrengo datuak ScummVM taldeari gehitzen saiatu zaren" -#: engines/advancedDetector.cpp:320 +#: engines/advancedDetector.cpp:337 msgid "of the game you tried to add and its version/language/etc.:" msgstr "jokoaren izen, bertsio/hizkuntza/e.a.-ekin batera:" @@ -1386,11 +1438,11 @@ msgstr "jokoaren izen, bertsio/hizkuntza/e.a.-ekin batera:" msgid "~R~esume" msgstr "~J~arraitu" -#: engines/dialogs.cpp:87 +#: engines/dialogs.cpp:87 engines/mohawk/dialogs.cpp:113 msgid "~L~oad" msgstr "Ka~r~gatu" -#: engines/dialogs.cpp:91 +#: engines/dialogs.cpp:91 engines/mohawk/dialogs.cpp:114 msgid "~S~ave" msgstr "~G~orde" @@ -1419,9 +1471,9 @@ msgstr "It~z~uli abiarazlera" #: engines/avalanche/parser.cpp:1899 engines/cge/events.cpp:74 #: engines/cge2/events.cpp:67 engines/cruise/menu.cpp:212 #: engines/drascula/saveload.cpp:336 engines/dreamweb/saveload.cpp:261 -#: engines/hugo/file.cpp:298 engines/neverhood/menumodule.cpp:877 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/hugo/file.cpp:298 engines/mohawk/dialogs.cpp:121 +#: engines/neverhood/menumodule.cpp:877 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save game:" @@ -1436,9 +1488,10 @@ msgstr "Gorde jokoa:" #: engines/cge/events.cpp:74 engines/cge2/events.cpp:67 #: engines/cruise/menu.cpp:212 engines/drascula/saveload.cpp:336 #: engines/dreamweb/saveload.cpp:261 engines/hugo/file.cpp:298 -#: engines/neverhood/menumodule.cpp:877 engines/parallaction/saveload.cpp:212 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/scumm/dialogs.cpp:188 engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/mohawk/dialogs.cpp:121 engines/neverhood/menumodule.cpp:877 +#: engines/parallaction/saveload.cpp:212 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/scumm/dialogs.cpp:188 +#: engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save" @@ -1462,13 +1515,13 @@ msgstr "" "Jokoaren egoera gordetzeak huts egin du (%s)! Jo ezazu README-ra oinarrizko " "informaziorako eta laguntza gehiago nola jaso jakiteko." -#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:109 -#: engines/mohawk/dialogs.cpp:170 engines/tsage/dialogs.cpp:106 +#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:117 +#: engines/mohawk/dialogs.cpp:242 engines/tsage/dialogs.cpp:106 msgid "~O~K" msgstr "~A~dos" -#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:110 -#: engines/mohawk/dialogs.cpp:171 engines/tsage/dialogs.cpp:107 +#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:118 +#: engines/mohawk/dialogs.cpp:243 engines/tsage/dialogs.cpp:107 msgid "~C~ancel" msgstr "~U~tzi" @@ -1624,11 +1677,11 @@ msgstr "FM-Towns soinua" msgid "PC-98 Audio" msgstr "PC-98 Soinua" -#: audio/softsynth/mt32.cpp:200 +#: audio/softsynth/mt32.cpp:196 msgid "Initializing MT-32 Emulator" msgstr "MT-32 emuladorea hasieratzen" -#: audio/softsynth/mt32.cpp:426 +#: audio/softsynth/mt32.cpp:434 msgid "MT-32 Emulator" msgstr "MT-32 emuladorea" @@ -1745,11 +1798,11 @@ msgstr "Auto-arrastatzea orain:" msgid "Swipe three fingers to the right to toggle." msgstr "Pasatu hiru atzamar eskuinean gaitu/desgaitzeko." -#: backends/graphics/opengl/opengl-graphics.cpp:119 +#: backends/graphics/opengl/opengl-graphics.cpp:126 msgid "OpenGL" msgstr "OpenGL" -#: backends/graphics/opengl/opengl-graphics.cpp:120 +#: backends/graphics/opengl/opengl-graphics.cpp:127 msgid "OpenGL (No filtering)" msgstr "OpenGL (Iragazi gabe)" @@ -2302,20 +2355,20 @@ msgstr "" "Ez ahaztu 'tresna-barra ezkutatu' ekintza tekla bati esleitzea inbentario " "osoa ikusteko" -#: backends/updates/macosx/macosx-updates.mm:67 +#: backends/updates/macosx/macosx-updates.mm:68 msgid "Check for Updates..." msgstr "Eguneraketak bilatzen..." #: engines/agi/detection.cpp:147 engines/cine/detection.cpp:70 #: engines/drascula/detection.cpp:302 engines/dreamweb/detection.cpp:47 -#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:404 +#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:410 #: engines/toltecs/detection.cpp:200 engines/zvision/detection_tables.h:51 msgid "Use original save/load screens" msgstr "Erabili jatorrizko gorde/kargatu pantailak" #: engines/agi/detection.cpp:148 engines/cine/detection.cpp:71 #: engines/drascula/detection.cpp:303 engines/dreamweb/detection.cpp:48 -#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:405 +#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:411 #: engines/toltecs/detection.cpp:201 msgid "Use the original save/load screens, instead of the ScummVM ones" msgstr "" @@ -2344,11 +2397,30 @@ msgstr "" "Saguaren euskarria giatzen du. Sagua mugitzeko eta jokoko menuetan " "erabiltzea ahalbidetzen du" +#: engines/agi/detection.cpp:177 +#, fuzzy +msgid "Use Hercules hires font" +msgstr "Herkules berdea" + +#: engines/agi/detection.cpp:178 +msgid "Uses Hercules hires font, when font file is available." +msgstr "" + +#: engines/agi/detection.cpp:187 +msgid "Pause when entering commands" +msgstr "" + +#: engines/agi/detection.cpp:188 +msgid "" +"Shows a command prompt window and pauses the game (like in SCI) instead of a " +"real-time prompt." +msgstr "" + #: engines/agi/saveload.cpp:777 engines/avalanche/parser.cpp:1887 #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore game:" @@ -2358,13 +2430,13 @@ msgstr "Jokoa kargatu:" #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore" msgstr "Kargatu" -#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2377 +#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2374 #, c-format msgid "" "Failed to load game state from file:\n" @@ -2375,7 +2447,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2370 +#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2367 #, c-format msgid "" "Failed to save game state to file:\n" @@ -2386,7 +2458,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2388 +#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2385 #, c-format msgid "" "Successfully saved game state in file:\n" @@ -2632,29 +2704,39 @@ msgstr "" "nahi izanez gero ScummVM debug konsola ireki eta 'import_savefile'\n" "agindau erabili.\n" +#: engines/mohawk/detection.cpp:168 +msgid "Play the Myst fly by movie" +msgstr "" + +#: engines/mohawk/detection.cpp:169 +msgid "The Myst fly by movie was not played by the original engine." +msgstr "" + #. I18N: Option for fast scene switching -#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:167 +#: engines/mohawk/dialogs.cpp:96 engines/mohawk/dialogs.cpp:239 msgid "~Z~ip Mode Activated" msgstr "~Z~ip modua aktibaturik" -#: engines/mohawk/dialogs.cpp:93 +#: engines/mohawk/dialogs.cpp:97 msgid "~T~ransitions Enabled" msgstr "~T~rantsizioak gaituta" #. I18N: Drop book page -#: engines/mohawk/dialogs.cpp:95 +#: engines/mohawk/dialogs.cpp:99 msgid "~D~rop Page" msgstr "Orria ~b~ota" -#: engines/mohawk/dialogs.cpp:99 -msgid "~S~how Map" +#: engines/mohawk/dialogs.cpp:103 +#, fuzzy +msgid "Show ~M~ap" msgstr "~M~apa erakutsi" -#: engines/mohawk/dialogs.cpp:105 -msgid "~M~ain Menu" +#: engines/mohawk/dialogs.cpp:109 +#, fuzzy +msgid "Main Men~u~" msgstr "Menu ~n~agusia" -#: engines/mohawk/dialogs.cpp:168 +#: engines/mohawk/dialogs.cpp:240 msgid "~W~ater Effect Enabled" msgstr "~U~r-efektua gaituta" @@ -2777,36 +2859,36 @@ msgstr "Sarrera alternatiboa" msgid "Use an alternative game intro (CD version only)" msgstr "Erabili sarrera alternatiboa (CD bertsioa soilik)" -#: engines/sci/detection.cpp:374 +#: engines/sci/detection.cpp:380 msgid "Skip EGA dithering pass (full color backgrounds)" msgstr "Saihestu EGA leuntze pausua (koloretako hondoak)" -#: engines/sci/detection.cpp:375 +#: engines/sci/detection.cpp:381 msgid "Skip dithering pass in EGA games, graphics are shown with full colors" msgstr "" "Saihestu leuntzea EGA jokoetan, grafikoak kolore guztiekin erakustendira" -#: engines/sci/detection.cpp:384 +#: engines/sci/detection.cpp:390 msgid "Enable high resolution graphics" msgstr "Gaitu erresoluzio altuko grafikoak" -#: engines/sci/detection.cpp:385 +#: engines/sci/detection.cpp:391 msgid "Enable high resolution graphics/content" msgstr "Gaitu erresoluzio altuko grafikoak/edukiak" -#: engines/sci/detection.cpp:394 +#: engines/sci/detection.cpp:400 msgid "Prefer digital sound effects" msgstr "Lehenetsi soinu efektu digitalak" -#: engines/sci/detection.cpp:395 +#: engines/sci/detection.cpp:401 msgid "Prefer digital sound effects instead of synthesized ones" msgstr "Lehenetsi soinu efektu digitalak sintetizatuen ordez" -#: engines/sci/detection.cpp:414 +#: engines/sci/detection.cpp:420 msgid "Use IMF/Yamaha FB-01 for MIDI output" msgstr "Erabili IMF/Yamaha FB-01 MIDI irteerarako" -#: engines/sci/detection.cpp:415 +#: engines/sci/detection.cpp:421 msgid "" "Use an IBM Music Feature card or a Yamaha FB-01 FM synth module for MIDI " "output" @@ -2814,36 +2896,45 @@ msgstr "" "Erabili IBM Music Feature txartela edo Yamaha FB-01 FM " "sintetizatzailemodulua MIDI irteerarako" -#: engines/sci/detection.cpp:425 +#: engines/sci/detection.cpp:431 msgid "Use CD audio" msgstr "Erabili audio CDa" -#: engines/sci/detection.cpp:426 +#: engines/sci/detection.cpp:432 msgid "Use CD audio instead of in-game audio, if available" msgstr "Erabili CD-ko audioa jokokoa beharrean, eskurarri badago" -#: engines/sci/detection.cpp:436 +#: engines/sci/detection.cpp:442 msgid "Use Windows cursors" msgstr "Erabili Windows-eko kurtsoreak" -#: engines/sci/detection.cpp:437 +#: engines/sci/detection.cpp:443 msgid "" "Use the Windows cursors (smaller and monochrome) instead of the DOS ones" msgstr "" "Erabili Windows-eko kurtsoreak (txikiagoak eta monokromoak) DOS-ekoak " "erabilibeharrean" -#: engines/sci/detection.cpp:447 +#: engines/sci/detection.cpp:453 msgid "Use silver cursors" msgstr "Erabili zilarrezko kurtsoreak" -#: engines/sci/detection.cpp:448 +#: engines/sci/detection.cpp:454 msgid "" "Use the alternate set of silver cursors, instead of the normal golden ones" msgstr "" "Erabili zilar kolorezko kurtsore multzo alternatiboa, urre-koloreko " "kursorenormalak erabili beharrean" +#: engines/scumm/detection.cpp:1335 +#, fuzzy +msgid "Show Object Line" +msgstr "Erakutsi objektuen etiketak" + +#: engines/scumm/detection.cpp:1336 +msgid "Show the names of objects at the bottom of the screen" +msgstr "" + #: engines/scumm/dialogs.cpp:176 #, c-format msgid "Insert Disk %c and Press Button to Continue." @@ -3509,7 +3600,7 @@ msgstr "Musika: " msgid "Subtitle speed: " msgstr "Azpitit. abiadura:" -#: engines/scumm/scumm.cpp:1832 +#: engines/scumm/scumm.cpp:1829 #, c-format msgid "" "Native MIDI support requires the Roland Upgrade from LucasArts,\n" @@ -3518,7 +3609,7 @@ msgstr "" "MIDI euskarri natiboak LucasArts-en Roland eguneraketa behar du,\n" "baina %s ez dago eskuragarri. AdLib erabiliko da." -#: engines/scumm/scumm.cpp:2644 +#: engines/scumm/scumm.cpp:2645 msgid "" "Usually, Maniac Mansion would start now. But for that to work, the game " "files for Maniac Mansion have to be in the 'Maniac' directory inside the " @@ -3553,8 +3644,8 @@ msgid "" "Files button in-game shows original savegame dialog rather than the ScummVM " "menu" msgstr "" -"Jokoko Fitxategiak botoiak jatorrizko jokoa gordetzeko elkarrizketak erakusten " -"ditu, ScummVM-ren elkarrizketak erakutsi beharrean" +"Jokoko Fitxategiak botoiak jatorrizko jokoa gordetzeko elkarrizketak " +"erakusten ditu, ScummVM-ren elkarrizketak erakutsi beharrean" #: engines/sherlock/detection.cpp:81 msgid "Pixellated scene transitions" @@ -3590,8 +3681,8 @@ msgstr "Irristatu elkarrizketak" #: engines/sherlock/detection.cpp:112 msgid "Slide UI dialogs into view, rather than simply showing them immediately" -msgstr "Irristatu UI elkarrizketak pantailara, osorik bat-batean erakutsi " -"beharrean" +msgstr "" +"Irristatu UI elkarrizketak pantailara, osorik bat-batean erakutsi beharrean" #: engines/sherlock/detection.cpp:121 msgid "Transparent windows" @@ -3700,6 +3791,15 @@ msgstr "Erakutsi objektuen etiketak" msgid "Show labels for objects on mouse hover" msgstr "Erakutsi objektuen etiketak sagua pasatzean" +#: engines/sword25/detection.cpp:46 +msgid "Use English speech" +msgstr "" + +#: engines/sword25/detection.cpp:47 +msgid "" +"Use English speech instead of German for every language other than German" +msgstr "" + #: engines/teenagent/resources.cpp:95 msgid "" "You're missing the 'teenagent.dat' file. Get it from the ScummVM website" diff --git a/po/fi_FI.po b/po/fi_FI.po index a306d8e537..bc0e1a269b 100644 --- a/po/fi_FI.po +++ b/po/fi_FI.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ScummVM 1.6.0git\n" "Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n" -"POT-Creation-Date: 2016-02-20 21:22+0000\n" +"POT-Creation-Date: 2016-04-07 08:55+0100\n" "PO-Revision-Date: 2012-12-01 19:37+0200\n" "Last-Translator: Toni Saarela <saarela@gmail.com>\n" "Language-Team: Finnish\n" @@ -55,10 +55,11 @@ msgstr "Siirry ylös" #: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editrecorddialog.cpp:67 #: gui/filebrowser-dialog.cpp:64 gui/fluidsynth-dialog.cpp:152 #: gui/KeysDialog.cpp:43 gui/launcher.cpp:351 gui/massadd.cpp:95 -#: gui/options.cpp:1237 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 +#: gui/options.cpp:1255 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 #: gui/recorderdialog.cpp:156 gui/saveload-dialog.cpp:216 #: gui/saveload-dialog.cpp:276 gui/saveload-dialog.cpp:547 -#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 engines/engine.cpp:546 +#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 +#: gui/updates-dialog.cpp:113 engines/engine.cpp:546 #: backends/events/default/default-events.cpp:196 #: backends/events/default/default-events.cpp:218 #: backends/platform/wii/options.cpp:48 engines/drascula/saveload.cpp:49 @@ -176,7 +177,7 @@ msgstr "" msgid "Triangle" msgstr "" -#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1168 +#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1170 msgid "Misc" msgstr "Muut" @@ -210,12 +211,12 @@ msgstr "" #: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:352 #: gui/launcher.cpp:1050 gui/launcher.cpp:1054 gui/massadd.cpp:92 -#: gui/options.cpp:1238 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 +#: gui/options.cpp:1256 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 #: engines/engine.cpp:476 backends/platform/wii/options.cpp:47 #: backends/platform/wince/CELauncherDialog.cpp:54 #: engines/agos/animation.cpp:558 engines/drascula/saveload.cpp:49 #: engines/groovie/script.cpp:408 engines/parallaction/saveload.cpp:274 -#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1834 +#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1831 #: engines/scumm/players/player_v3m.cpp:130 #: engines/scumm/players/player_v5m.cpp:108 engines/sky/compact.cpp:131 #: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:524 @@ -244,15 +245,15 @@ msgstr "Sulje" msgid "Mouse click" msgstr "Hiiren klikkaus" -#: gui/gui-manager.cpp:126 base/main.cpp:322 +#: gui/gui-manager.cpp:126 base/main.cpp:325 msgid "Display keyboard" msgstr "Näytä näppäimistö" -#: gui/gui-manager.cpp:130 base/main.cpp:326 +#: gui/gui-manager.cpp:130 base/main.cpp:329 msgid "Remap keys" msgstr "Määritä näppäimet uudelleen" -#: gui/gui-manager.cpp:133 base/main.cpp:329 engines/scumm/help.cpp:87 +#: gui/gui-manager.cpp:133 base/main.cpp:332 engines/scumm/help.cpp:87 msgid "Toggle fullscreen" msgstr "Kokoruututilan vaihto" @@ -328,8 +329,8 @@ msgstr "" "Pelin kieli. Tämä ei muuta esimerkiksi espanjankielistä versiota pelistä " "englanninkieliseksi." -#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:87 -#: gui/options.cpp:735 gui/options.cpp:748 gui/options.cpp:1208 +#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:89 +#: gui/options.cpp:737 gui/options.cpp:750 gui/options.cpp:1210 #: audio/null.cpp:41 msgid "<default>" msgstr "<oletus>" @@ -351,11 +352,11 @@ msgstr "Alusta:" msgid "Engine" msgstr "Moottori" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "Graphics" msgstr "Grafiikka" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "GFX" msgstr "GFX" @@ -368,7 +369,7 @@ msgctxt "lowres" msgid "Override global graphic settings" msgstr "Ohita globaalit grafiikka-asetukset" -#: gui/launcher.cpp:257 gui/options.cpp:1094 +#: gui/launcher.cpp:257 gui/options.cpp:1096 msgid "Audio" msgstr "Ääni" @@ -381,11 +382,11 @@ msgctxt "lowres" msgid "Override global audio settings" msgstr "Ohita globaalit ääniasetukset" -#: gui/launcher.cpp:271 gui/options.cpp:1099 +#: gui/launcher.cpp:271 gui/options.cpp:1101 msgid "Volume" msgstr "Voimakkuus" -#: gui/launcher.cpp:273 gui/options.cpp:1101 +#: gui/launcher.cpp:273 gui/options.cpp:1103 msgctxt "lowres" msgid "Volume" msgstr "Voimakkuus" @@ -399,7 +400,7 @@ msgctxt "lowres" msgid "Override global volume settings" msgstr "Ohita globaalit äänenvoimakkuusasetukset" -#: gui/launcher.cpp:286 gui/options.cpp:1109 +#: gui/launcher.cpp:286 gui/options.cpp:1111 msgid "MIDI" msgstr "MIDI" @@ -412,7 +413,7 @@ msgctxt "lowres" msgid "Override global MIDI settings" msgstr "Ohita globaalit MIDI-asetukset" -#: gui/launcher.cpp:300 gui/options.cpp:1115 +#: gui/launcher.cpp:300 gui/options.cpp:1117 msgid "MT-32" msgstr "MT-32" @@ -425,11 +426,11 @@ msgctxt "lowres" msgid "Override global MT-32 settings" msgstr "Ohita globaalit MT-32 asetukset" -#: gui/launcher.cpp:314 gui/options.cpp:1122 +#: gui/launcher.cpp:314 gui/options.cpp:1124 msgid "Paths" msgstr "Polut" -#: gui/launcher.cpp:316 gui/options.cpp:1124 +#: gui/launcher.cpp:316 gui/options.cpp:1126 msgctxt "lowres" msgid "Paths" msgstr "Polut" @@ -443,7 +444,7 @@ msgctxt "lowres" msgid "Game Path:" msgstr "Pelin polku:" -#: gui/launcher.cpp:330 gui/options.cpp:1148 +#: gui/launcher.cpp:330 gui/options.cpp:1150 msgid "Extra Path:" msgstr "Lisäkansio:" @@ -451,42 +452,42 @@ msgstr "Lisäkansio:" msgid "Specifies path to additional data used by the game" msgstr "Määrittää polun lisätiedostoihin joita peli mahdollisesti käyttää" -#: gui/launcher.cpp:332 gui/options.cpp:1150 +#: gui/launcher.cpp:332 gui/options.cpp:1152 msgctxt "lowres" msgid "Extra Path:" msgstr "Lisäkansio:" -#: gui/launcher.cpp:339 gui/options.cpp:1132 +#: gui/launcher.cpp:339 gui/options.cpp:1134 msgid "Save Path:" msgstr "Tallennuskansio:" #: gui/launcher.cpp:339 gui/launcher.cpp:341 gui/launcher.cpp:342 -#: gui/options.cpp:1132 gui/options.cpp:1134 gui/options.cpp:1135 +#: gui/options.cpp:1134 gui/options.cpp:1136 gui/options.cpp:1137 msgid "Specifies where your saved games are put" msgstr "Määrittää polun pelitallennuksille" -#: gui/launcher.cpp:341 gui/options.cpp:1134 +#: gui/launcher.cpp:341 gui/options.cpp:1136 msgctxt "lowres" msgid "Save Path:" msgstr "Tallennuskansio:" #: gui/launcher.cpp:360 gui/launcher.cpp:459 gui/launcher.cpp:517 -#: gui/launcher.cpp:571 gui/options.cpp:1143 gui/options.cpp:1151 -#: gui/options.cpp:1160 gui/options.cpp:1275 gui/options.cpp:1281 -#: gui/options.cpp:1289 gui/options.cpp:1319 gui/options.cpp:1325 -#: gui/options.cpp:1332 gui/options.cpp:1425 gui/options.cpp:1428 -#: gui/options.cpp:1440 +#: gui/launcher.cpp:571 gui/options.cpp:1145 gui/options.cpp:1153 +#: gui/options.cpp:1162 gui/options.cpp:1293 gui/options.cpp:1299 +#: gui/options.cpp:1307 gui/options.cpp:1337 gui/options.cpp:1343 +#: gui/options.cpp:1350 gui/options.cpp:1456 gui/options.cpp:1459 +#: gui/options.cpp:1471 msgctxt "path" msgid "None" msgstr "Ei määritelty" #: gui/launcher.cpp:365 gui/launcher.cpp:465 gui/launcher.cpp:575 -#: gui/options.cpp:1269 gui/options.cpp:1313 gui/options.cpp:1431 +#: gui/options.cpp:1287 gui/options.cpp:1331 gui/options.cpp:1462 #: backends/platform/wii/options.cpp:56 msgid "Default" msgstr "Oletus" -#: gui/launcher.cpp:510 gui/options.cpp:1434 +#: gui/launcher.cpp:510 gui/options.cpp:1465 msgid "Select SoundFont" msgstr "Valitse äänifontti" @@ -498,7 +499,7 @@ msgstr "Valitse pelin kansio" msgid "Select additional game directory" msgstr "Valitse lisäkansio pelille" -#: gui/launcher.cpp:559 gui/options.cpp:1377 +#: gui/launcher.cpp:559 gui/options.cpp:1408 msgid "Select directory for saved games" msgstr "Valitse kansio pelitallennuksille" @@ -506,7 +507,7 @@ msgstr "Valitse kansio pelitallennuksille" msgid "This game ID is already taken. Please choose another one." msgstr "Pelin tunnus on jo käytössä. Valitse jokin muu." -#: gui/launcher.cpp:626 engines/dialogs.cpp:111 +#: gui/launcher.cpp:626 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:115 msgid "~Q~uit" msgstr "~L~opeta" @@ -594,17 +595,18 @@ msgid "Search:" msgstr "Etsi:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214 -#: engines/mohawk/riven.cpp:718 engines/pegasus/pegasus.cpp:353 -#: engines/tsage/scenes.cpp:600 +#: engines/mohawk/dialogs.cpp:120 engines/mohawk/riven.cpp:718 +#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:600 msgid "Load game:" msgstr "Lataa peli:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 #: backends/platform/wince/CEActionsPocket.cpp:267 #: backends/platform/wince/CEActionsSmartphone.cpp:231 -#: engines/cruise/menu.cpp:214 engines/mohawk/riven.cpp:718 -#: engines/parallaction/saveload.cpp:197 engines/pegasus/pegasus.cpp:353 -#: engines/scumm/dialogs.cpp:189 engines/tsage/scenes.cpp:600 +#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:120 +#: engines/mohawk/riven.cpp:718 engines/parallaction/saveload.cpp:197 +#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:189 +#: engines/tsage/scenes.cpp:600 msgid "Load" msgstr "Lataa" @@ -698,134 +700,134 @@ msgstr "Vaihda" msgid "Fast replay" msgstr "Nopea moodi" -#: gui/options.cpp:85 +#: gui/options.cpp:87 common/updates.cpp:56 msgid "Never" msgstr "Ei koskaan" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 5 mins" msgstr "5 minuutin välein" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 10 mins" msgstr "10 minuutin välein" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 15 mins" msgstr "15 minuutin välein" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 30 mins" msgstr "30 minuutin välein" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "8 kHz" msgstr "8 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "11 kHz" msgstr "11 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "22 kHz" msgstr "22 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "44 kHz" msgstr "44 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "48 kHz" msgstr "48 kHz" -#: gui/options.cpp:255 gui/options.cpp:479 gui/options.cpp:580 -#: gui/options.cpp:649 gui/options.cpp:857 +#: gui/options.cpp:257 gui/options.cpp:481 gui/options.cpp:582 +#: gui/options.cpp:651 gui/options.cpp:859 msgctxt "soundfont" msgid "None" msgstr "Ei käytössä" -#: gui/options.cpp:389 +#: gui/options.cpp:391 msgid "Failed to apply some of the graphic options changes:" msgstr "Joitain grafiikka-asetuksia ei saatu asetettua:" -#: gui/options.cpp:401 +#: gui/options.cpp:403 msgid "the video mode could not be changed." msgstr "videotilaa ei voitu vaihtaa." -#: gui/options.cpp:407 +#: gui/options.cpp:409 msgid "the fullscreen setting could not be changed" msgstr "kokoruututilaa ei voitu muuttaa" -#: gui/options.cpp:413 +#: gui/options.cpp:415 msgid "the aspect ratio setting could not be changed" msgstr "kuvasuhdekorjausasetusta ei voitu muuttaa" -#: gui/options.cpp:732 +#: gui/options.cpp:734 msgid "Graphics mode:" msgstr "Grafiikkatila:" -#: gui/options.cpp:746 +#: gui/options.cpp:748 msgid "Render mode:" msgstr "Renderöintitila:" -#: gui/options.cpp:746 gui/options.cpp:747 +#: gui/options.cpp:748 gui/options.cpp:749 msgid "Special dithering modes supported by some games" msgstr "Erityiset dithering asetukset joita jotkut pelit tukevat" -#: gui/options.cpp:758 +#: gui/options.cpp:760 #: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2316 msgid "Fullscreen mode" msgstr "Kokoruututila" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Aspect ratio correction" msgstr "Kuvasuhteen korjaus" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Correct aspect ratio for 320x200 games" msgstr "Oikea kuvasuhde 320x200 peleille" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Preferred Device:" msgstr "Ensisijainen laite:" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Music Device:" msgstr "Musiikkilaite:" -#: gui/options.cpp:769 gui/options.cpp:771 +#: gui/options.cpp:771 gui/options.cpp:773 msgid "Specifies preferred sound device or sound card emulator" msgstr "" "Määrittää äänilaitteen tai äänikorttiemulaattorin jota ensisijaisesti tulisi " "käyttää" -#: gui/options.cpp:769 gui/options.cpp:771 gui/options.cpp:772 +#: gui/options.cpp:771 gui/options.cpp:773 gui/options.cpp:774 msgid "Specifies output sound device or sound card emulator" msgstr "Määrittää äänikortin tai äänikorttia emuloivan ohjelmiston" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Preferred Dev.:" msgstr "Ensisijainen:" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Music Device:" msgstr "Musiikkilaite:" -#: gui/options.cpp:798 +#: gui/options.cpp:800 msgid "AdLib emulator:" msgstr "AdLib emulaattori:" -#: gui/options.cpp:798 gui/options.cpp:799 +#: gui/options.cpp:800 gui/options.cpp:801 msgid "AdLib is used for music in many games" msgstr "AdLibiä käytetään monien pelien musiikeissa" -#: gui/options.cpp:809 +#: gui/options.cpp:811 msgid "Output rate:" msgstr "Taajuus:" -#: gui/options.cpp:809 gui/options.cpp:810 +#: gui/options.cpp:811 gui/options.cpp:812 msgid "" "Higher value specifies better sound quality but may be not supported by your " "soundcard" @@ -833,65 +835,65 @@ msgstr "" "Isommat taajuudet merkitsevät parempaa äänenlaatua, mutta äänikorttisi ei " "ehkä tue niitä." -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "GM Device:" msgstr "GM laite:" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "Specifies default sound device for General MIDI output" msgstr "Määrittää oletuksena käytettävän äänilaitteen General MIDIlle" -#: gui/options.cpp:831 +#: gui/options.cpp:833 msgid "Don't use General MIDI music" msgstr "Älä käytä General MIDIä musiikissa" -#: gui/options.cpp:842 gui/options.cpp:908 +#: gui/options.cpp:844 gui/options.cpp:910 msgid "Use first available device" msgstr "Käytä ensimmäistä laitetta" -#: gui/options.cpp:854 +#: gui/options.cpp:856 msgid "SoundFont:" msgstr "Äänifontti:" -#: gui/options.cpp:854 gui/options.cpp:856 gui/options.cpp:857 +#: gui/options.cpp:856 gui/options.cpp:858 gui/options.cpp:859 msgid "SoundFont is supported by some audio cards, FluidSynth and Timidity" msgstr "" "Jotkut äänikortit tukevat äänifonttia (SoundFont), FluidSynth ja Timidity" -#: gui/options.cpp:856 +#: gui/options.cpp:858 msgctxt "lowres" msgid "SoundFont:" msgstr "Äänifontti:" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Mixed AdLib/MIDI mode" msgstr "Yhdistetty AdLib/MIDI tila" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Use both MIDI and AdLib sound generation" msgstr "Käytä sekä MIDIä että Adlibiä äänentuotantoon" -#: gui/options.cpp:865 +#: gui/options.cpp:867 msgid "MIDI gain:" msgstr "MIDIn äänilisäys:" -#: gui/options.cpp:872 +#: gui/options.cpp:874 msgid "FluidSynth Settings" msgstr "" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "MT-32 Device:" msgstr "MT-32 laite:" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output" msgstr "Määrittää oletusäänilaitteen Roland MT-32/LAPC1/CM32l/CM64:n käyttöön" -#: gui/options.cpp:884 +#: gui/options.cpp:886 msgid "True Roland MT-32 (disable GM emulation)" msgstr "Aito Roland MT-32 (ei GM emulointia)" -#: gui/options.cpp:884 gui/options.cpp:886 +#: gui/options.cpp:886 gui/options.cpp:888 msgid "" "Check if you want to use your real hardware Roland-compatible sound device " "connected to your computer" @@ -899,187 +901,199 @@ msgstr "" "Valitse jos haluat käyttää aitoa Roland-yhteensopivaa laittetta joka on " "kytketty tietokoneeseesi" -#: gui/options.cpp:886 +#: gui/options.cpp:888 msgctxt "lowres" msgid "True Roland MT-32 (no GM emulation)" msgstr "Aito Roland MT-32 (ei GM emulointia)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 #, fuzzy msgid "Roland GS Device (enable MT-32 mappings)" msgstr "Aito Roland MT-32 (ei GM emulointia)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "" "Check if you want to enable patch mappings to emulate an MT-32 on a Roland " "GS device" msgstr "" -#: gui/options.cpp:898 +#: gui/options.cpp:900 msgid "Don't use Roland MT-32 music" msgstr "Älä käytä Roland MT-32 musiikkia" -#: gui/options.cpp:925 +#: gui/options.cpp:927 msgid "Text and Speech:" msgstr "Tekstitys ja puhe:" -#: gui/options.cpp:929 gui/options.cpp:939 +#: gui/options.cpp:931 gui/options.cpp:941 msgid "Speech" msgstr "Puhe" -#: gui/options.cpp:930 gui/options.cpp:940 +#: gui/options.cpp:932 gui/options.cpp:942 msgid "Subtitles" msgstr "Tekstitys" -#: gui/options.cpp:931 +#: gui/options.cpp:933 msgid "Both" msgstr "Molemmat" -#: gui/options.cpp:933 +#: gui/options.cpp:935 msgid "Subtitle speed:" msgstr "Tekstin nopeus:" -#: gui/options.cpp:935 +#: gui/options.cpp:937 msgctxt "lowres" msgid "Text and Speech:" msgstr "Tekstitys ja puhe:" -#: gui/options.cpp:939 +#: gui/options.cpp:941 msgid "Spch" msgstr "Puhe" -#: gui/options.cpp:940 +#: gui/options.cpp:942 msgid "Subs" msgstr "Tekstit" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgctxt "lowres" msgid "Both" msgstr "Molemmat" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgid "Show subtitles and play speech" msgstr "Näytä tekstitys ja käytä puhetta" -#: gui/options.cpp:943 +#: gui/options.cpp:945 msgctxt "lowres" msgid "Subtitle speed:" msgstr "Tekstin nopeus:" -#: gui/options.cpp:959 +#: gui/options.cpp:961 msgid "Music volume:" msgstr "Musiikki:" -#: gui/options.cpp:961 +#: gui/options.cpp:963 msgctxt "lowres" msgid "Music volume:" msgstr "Musiikki:" -#: gui/options.cpp:968 +#: gui/options.cpp:970 msgid "Mute All" msgstr "Vaimenna" -#: gui/options.cpp:971 +#: gui/options.cpp:973 msgid "SFX volume:" msgstr "Ääniefektit:" -#: gui/options.cpp:971 gui/options.cpp:973 gui/options.cpp:974 +#: gui/options.cpp:973 gui/options.cpp:975 gui/options.cpp:976 msgid "Special sound effects volume" msgstr "Erikoisefektit" -#: gui/options.cpp:973 +#: gui/options.cpp:975 msgctxt "lowres" msgid "SFX volume:" msgstr "Ääniefektit:" -#: gui/options.cpp:981 +#: gui/options.cpp:983 msgid "Speech volume:" msgstr "Puhe:" -#: gui/options.cpp:983 +#: gui/options.cpp:985 msgctxt "lowres" msgid "Speech volume:" msgstr "Puhe:" -#: gui/options.cpp:1140 +#: gui/options.cpp:1142 msgid "Theme Path:" msgstr "Teemojen polku:" -#: gui/options.cpp:1142 +#: gui/options.cpp:1144 msgctxt "lowres" msgid "Theme Path:" msgstr "Teemojen polku:" -#: gui/options.cpp:1148 gui/options.cpp:1150 gui/options.cpp:1151 +#: gui/options.cpp:1150 gui/options.cpp:1152 gui/options.cpp:1153 msgid "Specifies path to additional data used by all games or ScummVM" msgstr "" "Määrittää polun, jossa on lisätiedostoja joita ScummVM tai kaikki pelit " "käyttävät" -#: gui/options.cpp:1157 +#: gui/options.cpp:1159 msgid "Plugins Path:" msgstr "Pluginien sijainti:" -#: gui/options.cpp:1159 +#: gui/options.cpp:1161 msgctxt "lowres" msgid "Plugins Path:" msgstr "Pluginien sijainti:" -#: gui/options.cpp:1170 +#: gui/options.cpp:1172 msgctxt "lowres" msgid "Misc" msgstr "Muut" -#: gui/options.cpp:1172 +#: gui/options.cpp:1174 msgid "Theme:" msgstr "Teema" -#: gui/options.cpp:1176 +#: gui/options.cpp:1178 msgid "GUI Renderer:" msgstr "GUI renderöijä:" -#: gui/options.cpp:1188 +#: gui/options.cpp:1190 msgid "Autosave:" msgstr "Autom. tallennus:" -#: gui/options.cpp:1190 +#: gui/options.cpp:1192 msgctxt "lowres" msgid "Autosave:" msgstr "Autom. tallennus:" -#: gui/options.cpp:1198 +#: gui/options.cpp:1200 msgid "Keys" msgstr "Näppäimet" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "GUI Language:" msgstr "ScummVM:n kieli:" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "Language of ScummVM GUI" msgstr "ScummVM käyttöliittymän kieli" -#: gui/options.cpp:1364 +#: gui/options.cpp:1235 +msgid "Update check:" +msgstr "" + +#: gui/options.cpp:1235 +msgid "How often to check ScummVM updates" +msgstr "" + +#: gui/options.cpp:1247 +msgid "Check now" +msgstr "" + +#: gui/options.cpp:1382 msgid "You have to restart ScummVM before your changes will take effect." msgstr "ScummVM pitää käynnistää uudelleen jotta muutokset tulevat voimaan." -#: gui/options.cpp:1384 +#: gui/options.cpp:1415 msgid "The chosen directory cannot be written to. Please select another one." msgstr "Valittuun hakemistoon ei voi kirjoittaa. Valitse toinen hakemisto." -#: gui/options.cpp:1393 +#: gui/options.cpp:1424 msgid "Select directory for GUI themes" msgstr "Valitse hakemisto käyttöliittymän teemoille" -#: gui/options.cpp:1403 +#: gui/options.cpp:1434 msgid "Select directory for extra files" msgstr "Valitse hakemisto lisätiedostoille" -#: gui/options.cpp:1414 +#: gui/options.cpp:1445 msgid "Select directory for plugins" msgstr "Valitse hakemisto plugineille" -#: gui/options.cpp:1467 +#: gui/options.cpp:1498 msgid "" "The theme you selected does not support your current language. If you want " "to use this theme you need to switch to another language first." @@ -1259,39 +1273,60 @@ msgstr "Antialiasoitu renderöijä (16 bpp)" msgid "Antialiased" msgstr "Antialiasoitu (16 bpp)" -#: gui/widget.cpp:323 gui/widget.cpp:325 gui/widget.cpp:331 gui/widget.cpp:333 +#: gui/updates-dialog.cpp:51 +msgid "" +"ScummVM now supports automatic check for updates\n" +"which requires access to the Internet.\n" +"\n" +"Would you like to enable this feature?" +msgstr "" + +#: gui/updates-dialog.cpp:55 +msgid "(You can always enable it in the options dialog on the Misc tab)" +msgstr "" + +#: gui/updates-dialog.cpp:92 +#, fuzzy +msgid "Check for updates automatically" +msgstr "Tarkista päivitykset..." + +#: gui/updates-dialog.cpp:111 +msgid "Proceed" +msgstr "" + +#: gui/widget.cpp:327 gui/widget.cpp:329 gui/widget.cpp:335 gui/widget.cpp:337 msgid "Clear value" msgstr "Tyhjennä arvo" -#: base/main.cpp:237 +#: base/main.cpp:240 #, c-format msgid "Engine does not support debug level '%s'" msgstr "Pelimoottori ei tue debug tasoa '%s'" -#: base/main.cpp:309 +#: base/main.cpp:312 msgid "Menu" msgstr "Valikko" -#: base/main.cpp:312 backends/platform/symbian/src/SymbianActions.cpp:45 +#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:45 #: backends/platform/wince/CEActionsPocket.cpp:45 #: backends/platform/wince/CEActionsSmartphone.cpp:46 msgid "Skip" msgstr "Ohita" -#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:50 +#: base/main.cpp:318 backends/platform/symbian/src/SymbianActions.cpp:50 #: backends/platform/wince/CEActionsPocket.cpp:42 msgid "Pause" msgstr "Tauko" -#: base/main.cpp:318 +#: base/main.cpp:321 msgid "Skip line" msgstr "Ohita rivi" -#: base/main.cpp:510 +#: base/main.cpp:520 msgid "Error running game:" msgstr "Virhe ajettaessa peliä:" -#: base/main.cpp:557 +#: base/main.cpp:567 msgid "Could not find any engine capable of running the selected game" msgstr "Pelimoottoria joka tukisi valittua peliä ei löytynyt" @@ -1386,17 +1421,34 @@ msgctxt "lowres" msgid "Hercules Amber" msgstr "" -#: engines/advancedDetector.cpp:317 +#: common/updates.cpp:58 +msgid "Daily" +msgstr "" + +#: common/updates.cpp:60 +msgid "Weekly" +msgstr "" + +#: common/updates.cpp:62 +msgid "Monthly" +msgstr "" + +#: common/updates.cpp:64 +#, fuzzy +msgid "<Bad value>" +msgstr "Tyhjennä arvo" + +#: engines/advancedDetector.cpp:334 #, c-format msgid "The game in '%s' seems to be unknown." msgstr "Peli hakemistossa '%s' näyttäisi olevan tuntematon." -#: engines/advancedDetector.cpp:318 +#: engines/advancedDetector.cpp:335 msgid "Please, report the following data to the ScummVM team along with name" msgstr "" "Ole hyvä ja ilmoita ScummVM:n kehittäjille seuraavat tiedot, lisäksi kerro" -#: engines/advancedDetector.cpp:320 +#: engines/advancedDetector.cpp:337 msgid "of the game you tried to add and its version/language/etc.:" msgstr "" "mikä peli oli kyseessä, ja sen versio, kieli, ja muut vastaavat tiedot." @@ -1405,11 +1457,11 @@ msgstr "" msgid "~R~esume" msgstr "~J~atka" -#: engines/dialogs.cpp:87 +#: engines/dialogs.cpp:87 engines/mohawk/dialogs.cpp:113 msgid "~L~oad" msgstr "~L~ataa" -#: engines/dialogs.cpp:91 +#: engines/dialogs.cpp:91 engines/mohawk/dialogs.cpp:114 msgid "~S~ave" msgstr "~T~allenna" @@ -1438,9 +1490,9 @@ msgstr "Palaa p~e~livalitsimeen" #: engines/avalanche/parser.cpp:1899 engines/cge/events.cpp:74 #: engines/cge2/events.cpp:67 engines/cruise/menu.cpp:212 #: engines/drascula/saveload.cpp:336 engines/dreamweb/saveload.cpp:261 -#: engines/hugo/file.cpp:298 engines/neverhood/menumodule.cpp:877 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/hugo/file.cpp:298 engines/mohawk/dialogs.cpp:121 +#: engines/neverhood/menumodule.cpp:877 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save game:" @@ -1455,9 +1507,10 @@ msgstr "Tallenna peli:" #: engines/cge/events.cpp:74 engines/cge2/events.cpp:67 #: engines/cruise/menu.cpp:212 engines/drascula/saveload.cpp:336 #: engines/dreamweb/saveload.cpp:261 engines/hugo/file.cpp:298 -#: engines/neverhood/menumodule.cpp:877 engines/parallaction/saveload.cpp:212 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/scumm/dialogs.cpp:188 engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/mohawk/dialogs.cpp:121 engines/neverhood/menumodule.cpp:877 +#: engines/parallaction/saveload.cpp:212 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/scumm/dialogs.cpp:188 +#: engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save" @@ -1481,13 +1534,13 @@ msgstr "" "Pelitilan tallennus epäonnistui (%s)! Avaa LUEMINUT tiedosto saadaksesi " "lisätietoa." -#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:109 -#: engines/mohawk/dialogs.cpp:170 engines/tsage/dialogs.cpp:106 +#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:117 +#: engines/mohawk/dialogs.cpp:242 engines/tsage/dialogs.cpp:106 msgid "~O~K" msgstr "~H~yväksy" -#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:110 -#: engines/mohawk/dialogs.cpp:171 engines/tsage/dialogs.cpp:107 +#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:118 +#: engines/mohawk/dialogs.cpp:243 engines/tsage/dialogs.cpp:107 msgid "~C~ancel" msgstr "~P~eruuta" @@ -1642,11 +1695,11 @@ msgstr "" msgid "PC-98 Audio" msgstr "Ääni" -#: audio/softsynth/mt32.cpp:200 +#: audio/softsynth/mt32.cpp:196 msgid "Initializing MT-32 Emulator" msgstr "Alustetaan MT-32 emulaattoria" -#: audio/softsynth/mt32.cpp:426 +#: audio/softsynth/mt32.cpp:434 msgid "MT-32 Emulator" msgstr "MT-32 emulaattori" @@ -1765,12 +1818,12 @@ msgstr "" msgid "Swipe three fingers to the right to toggle." msgstr "" -#: backends/graphics/opengl/opengl-graphics.cpp:119 +#: backends/graphics/opengl/opengl-graphics.cpp:126 #, fuzzy msgid "OpenGL" msgstr "Avaa" -#: backends/graphics/opengl/opengl-graphics.cpp:120 +#: backends/graphics/opengl/opengl-graphics.cpp:127 msgid "OpenGL (No filtering)" msgstr "" @@ -2327,20 +2380,20 @@ msgstr "" "Muista määritellä näppäin työkalupalkin piilottamiselle, jotta voit nähdä " "koko tavaraluettelon" -#: backends/updates/macosx/macosx-updates.mm:67 +#: backends/updates/macosx/macosx-updates.mm:68 msgid "Check for Updates..." msgstr "Tarkista päivitykset..." #: engines/agi/detection.cpp:147 engines/cine/detection.cpp:70 #: engines/drascula/detection.cpp:302 engines/dreamweb/detection.cpp:47 -#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:404 +#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:410 #: engines/toltecs/detection.cpp:200 engines/zvision/detection_tables.h:51 msgid "Use original save/load screens" msgstr "Käytä alkuperäisiä tallenna/lataa valikkoja" #: engines/agi/detection.cpp:148 engines/cine/detection.cpp:71 #: engines/drascula/detection.cpp:303 engines/dreamweb/detection.cpp:48 -#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:405 +#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:411 #: engines/toltecs/detection.cpp:201 msgid "Use the original save/load screens, instead of the ScummVM ones" msgstr "Käytä alkuperäisiä tallenna/lataa valikkoja, ScummVM valikoiden sijaan" @@ -2366,11 +2419,29 @@ msgid "" "Enables mouse support. Allows to use mouse for movement and in game menus." msgstr "" +#: engines/agi/detection.cpp:177 +msgid "Use Hercules hires font" +msgstr "" + +#: engines/agi/detection.cpp:178 +msgid "Uses Hercules hires font, when font file is available." +msgstr "" + +#: engines/agi/detection.cpp:187 +msgid "Pause when entering commands" +msgstr "" + +#: engines/agi/detection.cpp:188 +msgid "" +"Shows a command prompt window and pauses the game (like in SCI) instead of a " +"real-time prompt." +msgstr "" + #: engines/agi/saveload.cpp:777 engines/avalanche/parser.cpp:1887 #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore game:" @@ -2380,13 +2451,13 @@ msgstr "Lataa pelitallenne:" #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore" msgstr "Lataa tallenne" -#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2377 +#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2374 #, c-format msgid "" "Failed to load game state from file:\n" @@ -2397,7 +2468,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2370 +#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2367 #, c-format msgid "" "Failed to save game state to file:\n" @@ -2408,7 +2479,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2388 +#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2385 #, c-format msgid "" "Successfully saved game state in file:\n" @@ -2640,29 +2711,39 @@ msgid "" "\n" msgstr "" +#: engines/mohawk/detection.cpp:168 +msgid "Play the Myst fly by movie" +msgstr "" + +#: engines/mohawk/detection.cpp:169 +msgid "The Myst fly by movie was not played by the original engine." +msgstr "" + #. I18N: Option for fast scene switching -#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:167 +#: engines/mohawk/dialogs.cpp:96 engines/mohawk/dialogs.cpp:239 msgid "~Z~ip Mode Activated" msgstr "~Z~ip moodi valittu" -#: engines/mohawk/dialogs.cpp:93 +#: engines/mohawk/dialogs.cpp:97 msgid "~T~ransitions Enabled" msgstr "Siirtymät päällä" #. I18N: Drop book page -#: engines/mohawk/dialogs.cpp:95 +#: engines/mohawk/dialogs.cpp:99 msgid "~D~rop Page" msgstr "Pudota sivu" -#: engines/mohawk/dialogs.cpp:99 -msgid "~S~how Map" +#: engines/mohawk/dialogs.cpp:103 +#, fuzzy +msgid "Show ~M~ap" msgstr "Näytä kartta" -#: engines/mohawk/dialogs.cpp:105 -msgid "~M~ain Menu" +#: engines/mohawk/dialogs.cpp:109 +#, fuzzy +msgid "Main Men~u~" msgstr "Päävalikko" -#: engines/mohawk/dialogs.cpp:168 +#: engines/mohawk/dialogs.cpp:240 msgid "~W~ater Effect Enabled" msgstr "Vesiefekti päällä" @@ -2785,71 +2866,80 @@ msgstr "Vaihtoehtoinen intro" msgid "Use an alternative game intro (CD version only)" msgstr "Käytä vaihtoehtoista pelin introa (vain CD versiossa)" -#: engines/sci/detection.cpp:374 +#: engines/sci/detection.cpp:380 msgid "Skip EGA dithering pass (full color backgrounds)" msgstr "" -#: engines/sci/detection.cpp:375 +#: engines/sci/detection.cpp:381 msgid "Skip dithering pass in EGA games, graphics are shown with full colors" msgstr "" -#: engines/sci/detection.cpp:384 +#: engines/sci/detection.cpp:390 #, fuzzy msgid "Enable high resolution graphics" msgstr "Käytä kestopisteissä värillisiä grafiikkapalkkeja numeroiden sijaan" -#: engines/sci/detection.cpp:385 +#: engines/sci/detection.cpp:391 #, fuzzy msgid "Enable high resolution graphics/content" msgstr "Käytä kestopisteissä värillisiä grafiikkapalkkeja numeroiden sijaan" -#: engines/sci/detection.cpp:394 +#: engines/sci/detection.cpp:400 msgid "Prefer digital sound effects" msgstr "Käytä mieluiten digitaalisia äänitehosteita." -#: engines/sci/detection.cpp:395 +#: engines/sci/detection.cpp:401 msgid "Prefer digital sound effects instead of synthesized ones" msgstr "" "Käytä mieluiten digitaalisia äänitehosteita synteettisten tehosteiden sijaan." -#: engines/sci/detection.cpp:414 +#: engines/sci/detection.cpp:420 msgid "Use IMF/Yamaha FB-01 for MIDI output" msgstr "Käytä IMF/Yamaha FB-01:stä MIDI-musiikille" -#: engines/sci/detection.cpp:415 +#: engines/sci/detection.cpp:421 msgid "" "Use an IBM Music Feature card or a Yamaha FB-01 FM synth module for MIDI " "output" msgstr "" "Käytä IBM:n Music Feature korttia, tai Yamaha FB-01 FM moduulia MIDIlle" -#: engines/sci/detection.cpp:425 +#: engines/sci/detection.cpp:431 msgid "Use CD audio" msgstr "Käytä CD:n ääntä" -#: engines/sci/detection.cpp:426 +#: engines/sci/detection.cpp:432 msgid "Use CD audio instead of in-game audio, if available" msgstr "Käytä CD:n audiota pelin audion sijaan, jos mahdollista." -#: engines/sci/detection.cpp:436 +#: engines/sci/detection.cpp:442 msgid "Use Windows cursors" msgstr "Käytä Windowsin kursoreita" -#: engines/sci/detection.cpp:437 +#: engines/sci/detection.cpp:443 msgid "" "Use the Windows cursors (smaller and monochrome) instead of the DOS ones" msgstr "" "Käytä Windowsin kursoreita (pienempiä ja harmaasävyisiä) DOS kursorien sijaan" -#: engines/sci/detection.cpp:447 +#: engines/sci/detection.cpp:453 msgid "Use silver cursors" msgstr "Käytä hopeisia kursoreita" -#: engines/sci/detection.cpp:448 +#: engines/sci/detection.cpp:454 msgid "" "Use the alternate set of silver cursors, instead of the normal golden ones" msgstr "Käytä vaihtoehtoisia hopeisia kursoreita normaalien kultaisten sijaan" +#: engines/scumm/detection.cpp:1335 +#, fuzzy +msgid "Show Object Line" +msgstr "Näytä esineiden tiedot" + +#: engines/scumm/detection.cpp:1336 +msgid "Show the names of objects at the bottom of the screen" +msgstr "" + #: engines/scumm/dialogs.cpp:176 #, c-format msgid "Insert Disk %c and Press Button to Continue." @@ -3520,7 +3610,7 @@ msgstr "Musiikki:" msgid "Subtitle speed: " msgstr "Tekstin nopeus:" -#: engines/scumm/scumm.cpp:1832 +#: engines/scumm/scumm.cpp:1829 #, c-format msgid "" "Native MIDI support requires the Roland Upgrade from LucasArts,\n" @@ -3529,7 +3619,7 @@ msgstr "" "Suora MIDI tuki vaatii Roland päivityksen LucasArtsilta, mutta\n" "%s puuttuu. Käytetään AdLibia sen sijaan." -#: engines/scumm/scumm.cpp:2644 +#: engines/scumm/scumm.cpp:2645 #, fuzzy msgid "" "Usually, Maniac Mansion would start now. But for that to work, the game " @@ -3702,6 +3792,15 @@ msgstr "Näytä esineiden tiedot" msgid "Show labels for objects on mouse hover" msgstr "Näytä esineiden kuvaus kohdistaessasi kursorin esineen ylle" +#: engines/sword25/detection.cpp:46 +msgid "Use English speech" +msgstr "" + +#: engines/sword25/detection.cpp:47 +msgid "" +"Use English speech instead of German for every language other than German" +msgstr "" + #: engines/teenagent/resources.cpp:95 msgid "" "You're missing the 'teenagent.dat' file. Get it from the ScummVM website" diff --git a/po/fr_FR.po b/po/fr_FR.po index e223a96a54..05ac39d23d 100644 --- a/po/fr_FR.po +++ b/po/fr_FR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ScummVM 1.8.0git\n" "Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n" -"POT-Creation-Date: 2016-02-20 21:22+0000\n" +"POT-Creation-Date: 2016-04-07 08:55+0100\n" "PO-Revision-Date: 2016-02-20 23:17+0000\n" "Last-Translator: Thierry Crozat <criezy@scummvm.org>\n" "Language-Team: French <scummvm-devel@lists.sf.net>\n" @@ -55,10 +55,11 @@ msgstr "Remonter" #: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editrecorddialog.cpp:67 #: gui/filebrowser-dialog.cpp:64 gui/fluidsynth-dialog.cpp:152 #: gui/KeysDialog.cpp:43 gui/launcher.cpp:351 gui/massadd.cpp:95 -#: gui/options.cpp:1237 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 +#: gui/options.cpp:1255 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 #: gui/recorderdialog.cpp:156 gui/saveload-dialog.cpp:216 #: gui/saveload-dialog.cpp:276 gui/saveload-dialog.cpp:547 -#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 engines/engine.cpp:546 +#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 +#: gui/updates-dialog.cpp:113 engines/engine.cpp:546 #: backends/events/default/default-events.cpp:196 #: backends/events/default/default-events.cpp:218 #: backends/platform/wii/options.cpp:48 engines/drascula/saveload.cpp:49 @@ -172,7 +173,7 @@ msgstr "Sinus" msgid "Triangle" msgstr "Triangle" -#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1168 +#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1170 msgid "Misc" msgstr "Divers" @@ -206,12 +207,12 @@ msgstr "Remet tous les réglages ą leurs valeurs par défaut." #: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:352 #: gui/launcher.cpp:1050 gui/launcher.cpp:1054 gui/massadd.cpp:92 -#: gui/options.cpp:1238 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 +#: gui/options.cpp:1256 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 #: engines/engine.cpp:476 backends/platform/wii/options.cpp:47 #: backends/platform/wince/CELauncherDialog.cpp:54 #: engines/agos/animation.cpp:558 engines/drascula/saveload.cpp:49 #: engines/groovie/script.cpp:408 engines/parallaction/saveload.cpp:274 -#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1834 +#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1831 #: engines/scumm/players/player_v3m.cpp:130 #: engines/scumm/players/player_v5m.cpp:108 engines/sky/compact.cpp:131 #: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:524 @@ -240,15 +241,15 @@ msgstr "Fermer" msgid "Mouse click" msgstr "Clic de souris" -#: gui/gui-manager.cpp:126 base/main.cpp:322 +#: gui/gui-manager.cpp:126 base/main.cpp:325 msgid "Display keyboard" msgstr "Afficher le clavier" -#: gui/gui-manager.cpp:130 base/main.cpp:326 +#: gui/gui-manager.cpp:130 base/main.cpp:329 msgid "Remap keys" msgstr "Changer l'affectation des touches" -#: gui/gui-manager.cpp:133 base/main.cpp:329 engines/scumm/help.cpp:87 +#: gui/gui-manager.cpp:133 base/main.cpp:332 engines/scumm/help.cpp:87 msgid "Toggle fullscreen" msgstr "Basculer en plein écran" @@ -324,8 +325,8 @@ msgstr "" "Langue du jeu. Cela ne traduira pas en anglais par magie votre version " "espagnole du jeu." -#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:87 -#: gui/options.cpp:735 gui/options.cpp:748 gui/options.cpp:1208 +#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:89 +#: gui/options.cpp:737 gui/options.cpp:750 gui/options.cpp:1210 #: audio/null.cpp:41 msgid "<default>" msgstr "<defaut>" @@ -347,11 +348,11 @@ msgstr "Systčme :" msgid "Engine" msgstr "Moteur" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "Graphics" msgstr "Graphique" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "GFX" msgstr "GFX" @@ -364,7 +365,7 @@ msgctxt "lowres" msgid "Override global graphic settings" msgstr "Réglages spécifiques ą ce jeux" -#: gui/launcher.cpp:257 gui/options.cpp:1094 +#: gui/launcher.cpp:257 gui/options.cpp:1096 msgid "Audio" msgstr "Audio" @@ -377,11 +378,11 @@ msgctxt "lowres" msgid "Override global audio settings" msgstr "Réglages spécifiques ą ce jeux" -#: gui/launcher.cpp:271 gui/options.cpp:1099 +#: gui/launcher.cpp:271 gui/options.cpp:1101 msgid "Volume" msgstr "Volume" -#: gui/launcher.cpp:273 gui/options.cpp:1101 +#: gui/launcher.cpp:273 gui/options.cpp:1103 msgctxt "lowres" msgid "Volume" msgstr "Volume" @@ -395,7 +396,7 @@ msgctxt "lowres" msgid "Override global volume settings" msgstr "Réglages spécifiques ą ce jeux" -#: gui/launcher.cpp:286 gui/options.cpp:1109 +#: gui/launcher.cpp:286 gui/options.cpp:1111 msgid "MIDI" msgstr "MIDI" @@ -408,7 +409,7 @@ msgctxt "lowres" msgid "Override global MIDI settings" msgstr "Réglages spécifiques ą ce jeux" -#: gui/launcher.cpp:300 gui/options.cpp:1115 +#: gui/launcher.cpp:300 gui/options.cpp:1117 msgid "MT-32" msgstr "MT-32" @@ -421,11 +422,11 @@ msgctxt "lowres" msgid "Override global MT-32 settings" msgstr "Réglages spécifiques ą ce jeux" -#: gui/launcher.cpp:314 gui/options.cpp:1122 +#: gui/launcher.cpp:314 gui/options.cpp:1124 msgid "Paths" msgstr "Chemins" -#: gui/launcher.cpp:316 gui/options.cpp:1124 +#: gui/launcher.cpp:316 gui/options.cpp:1126 msgctxt "lowres" msgid "Paths" msgstr "Chemins" @@ -439,7 +440,7 @@ msgctxt "lowres" msgid "Game Path:" msgstr "Chemin du Jeu :" -#: gui/launcher.cpp:330 gui/options.cpp:1148 +#: gui/launcher.cpp:330 gui/options.cpp:1150 msgid "Extra Path:" msgstr "Extra :" @@ -447,42 +448,42 @@ msgstr "Extra :" msgid "Specifies path to additional data used by the game" msgstr "Définie un chemin vers des données suplémentaires utilisées par le jeu" -#: gui/launcher.cpp:332 gui/options.cpp:1150 +#: gui/launcher.cpp:332 gui/options.cpp:1152 msgctxt "lowres" msgid "Extra Path:" msgstr "Extra :" -#: gui/launcher.cpp:339 gui/options.cpp:1132 +#: gui/launcher.cpp:339 gui/options.cpp:1134 msgid "Save Path:" msgstr "Sauvegardes :" #: gui/launcher.cpp:339 gui/launcher.cpp:341 gui/launcher.cpp:342 -#: gui/options.cpp:1132 gui/options.cpp:1134 gui/options.cpp:1135 +#: gui/options.cpp:1134 gui/options.cpp:1136 gui/options.cpp:1137 msgid "Specifies where your saved games are put" msgstr "Définie l'emplacement oł les fichiers de sauvegarde sont créés" -#: gui/launcher.cpp:341 gui/options.cpp:1134 +#: gui/launcher.cpp:341 gui/options.cpp:1136 msgctxt "lowres" msgid "Save Path:" msgstr "Sauvegardes :" #: gui/launcher.cpp:360 gui/launcher.cpp:459 gui/launcher.cpp:517 -#: gui/launcher.cpp:571 gui/options.cpp:1143 gui/options.cpp:1151 -#: gui/options.cpp:1160 gui/options.cpp:1275 gui/options.cpp:1281 -#: gui/options.cpp:1289 gui/options.cpp:1319 gui/options.cpp:1325 -#: gui/options.cpp:1332 gui/options.cpp:1425 gui/options.cpp:1428 -#: gui/options.cpp:1440 +#: gui/launcher.cpp:571 gui/options.cpp:1145 gui/options.cpp:1153 +#: gui/options.cpp:1162 gui/options.cpp:1293 gui/options.cpp:1299 +#: gui/options.cpp:1307 gui/options.cpp:1337 gui/options.cpp:1343 +#: gui/options.cpp:1350 gui/options.cpp:1456 gui/options.cpp:1459 +#: gui/options.cpp:1471 msgctxt "path" msgid "None" msgstr "Aucun" #: gui/launcher.cpp:365 gui/launcher.cpp:465 gui/launcher.cpp:575 -#: gui/options.cpp:1269 gui/options.cpp:1313 gui/options.cpp:1431 +#: gui/options.cpp:1287 gui/options.cpp:1331 gui/options.cpp:1462 #: backends/platform/wii/options.cpp:56 msgid "Default" msgstr "Défaut" -#: gui/launcher.cpp:510 gui/options.cpp:1434 +#: gui/launcher.cpp:510 gui/options.cpp:1465 msgid "Select SoundFont" msgstr "Choisir une banque de sons" @@ -494,7 +495,7 @@ msgstr "Sélectionner le répertoire contenant les données du jeu" msgid "Select additional game directory" msgstr "Sélectionner un répertoire supplémentaire" -#: gui/launcher.cpp:559 gui/options.cpp:1377 +#: gui/launcher.cpp:559 gui/options.cpp:1408 msgid "Select directory for saved games" msgstr "Sélectionner le répertoire pour les sauvegardes" @@ -502,7 +503,7 @@ msgstr "Sélectionner le répertoire pour les sauvegardes" msgid "This game ID is already taken. Please choose another one." msgstr "Cet ID est déją utilisé par un autre jeu. Choisissez en un autre svp." -#: gui/launcher.cpp:626 engines/dialogs.cpp:111 +#: gui/launcher.cpp:626 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:115 msgid "~Q~uit" msgstr "~Q~uitter" @@ -591,17 +592,18 @@ msgid "Search:" msgstr "Filtre :" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214 -#: engines/mohawk/riven.cpp:718 engines/pegasus/pegasus.cpp:353 -#: engines/tsage/scenes.cpp:600 +#: engines/mohawk/dialogs.cpp:120 engines/mohawk/riven.cpp:718 +#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:600 msgid "Load game:" msgstr "Charger le jeu :" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 #: backends/platform/wince/CEActionsPocket.cpp:267 #: backends/platform/wince/CEActionsSmartphone.cpp:231 -#: engines/cruise/menu.cpp:214 engines/mohawk/riven.cpp:718 -#: engines/parallaction/saveload.cpp:197 engines/pegasus/pegasus.cpp:353 -#: engines/scumm/dialogs.cpp:189 engines/tsage/scenes.cpp:600 +#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:120 +#: engines/mohawk/riven.cpp:718 engines/parallaction/saveload.cpp:197 +#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:189 +#: engines/tsage/scenes.cpp:600 msgid "Load" msgstr "Charger" @@ -690,134 +692,134 @@ msgstr "Retourner au jeu" msgid "Fast replay" msgstr "Rejouer rapidement" -#: gui/options.cpp:85 +#: gui/options.cpp:87 common/updates.cpp:56 msgid "Never" msgstr "Jamais" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 5 mins" msgstr "Toutes les 5 mins" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 10 mins" msgstr "Toutes les 10 mins" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 15 mins" msgstr "Toutes les 15 mins" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 30 mins" msgstr "Toutes les 30 mins" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "8 kHz" msgstr "8 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "11 kHz" msgstr "11 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "22 kHz" msgstr "22 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "44 kHz" msgstr "44 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "48 kHz" msgstr "48 kHz" -#: gui/options.cpp:255 gui/options.cpp:479 gui/options.cpp:580 -#: gui/options.cpp:649 gui/options.cpp:857 +#: gui/options.cpp:257 gui/options.cpp:481 gui/options.cpp:582 +#: gui/options.cpp:651 gui/options.cpp:859 msgctxt "soundfont" msgid "None" msgstr "Aucune" -#: gui/options.cpp:389 +#: gui/options.cpp:391 msgid "Failed to apply some of the graphic options changes:" msgstr "Certaines options graphiques n'ont pu źtre changées :" -#: gui/options.cpp:401 +#: gui/options.cpp:403 msgid "the video mode could not be changed." msgstr "le mode vidéo n'a pu źtre changé." -#: gui/options.cpp:407 +#: gui/options.cpp:409 msgid "the fullscreen setting could not be changed" msgstr "le mode plein écran n'a pu źtre changé." -#: gui/options.cpp:413 +#: gui/options.cpp:415 msgid "the aspect ratio setting could not be changed" msgstr "la correction de rapport d'aspect n'a pu źtre changée." -#: gui/options.cpp:732 +#: gui/options.cpp:734 msgid "Graphics mode:" msgstr "Mode graphique :" -#: gui/options.cpp:746 +#: gui/options.cpp:748 msgid "Render mode:" msgstr "Mode de rendu :" -#: gui/options.cpp:746 gui/options.cpp:747 +#: gui/options.cpp:748 gui/options.cpp:749 msgid "Special dithering modes supported by some games" msgstr "Mode spécial de tramage supporté par certains jeux" -#: gui/options.cpp:758 +#: gui/options.cpp:760 #: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2316 msgid "Fullscreen mode" msgstr "Plein écran" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Aspect ratio correction" msgstr "Correction du rapport d'aspect" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Correct aspect ratio for 320x200 games" msgstr "Corrige le rapport d'aspect pour les jeu 320x200" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Preferred Device:" msgstr "Sortie Préféré :" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Music Device:" msgstr "Sortie Audio :" -#: gui/options.cpp:769 gui/options.cpp:771 +#: gui/options.cpp:771 gui/options.cpp:773 msgid "Specifies preferred sound device or sound card emulator" msgstr "" "Spécifie le périphérique de sortie audio ou l'émulateur de carte audio " "préféré" -#: gui/options.cpp:769 gui/options.cpp:771 gui/options.cpp:772 +#: gui/options.cpp:771 gui/options.cpp:773 gui/options.cpp:774 msgid "Specifies output sound device or sound card emulator" msgstr "Spécifie le périphérique de sortie audio ou l'émulateur de carte audio" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Preferred Dev.:" msgstr "Sortie Préféré :" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Music Device:" msgstr "Sortie Audio :" -#: gui/options.cpp:798 +#: gui/options.cpp:800 msgid "AdLib emulator:" msgstr "Émulateur AdLib :" -#: gui/options.cpp:798 gui/options.cpp:799 +#: gui/options.cpp:800 gui/options.cpp:801 msgid "AdLib is used for music in many games" msgstr "AdLib est utilisé pour la musique dans de nombreux jeux" -#: gui/options.cpp:809 +#: gui/options.cpp:811 msgid "Output rate:" msgstr "Fréquence :" -#: gui/options.cpp:809 gui/options.cpp:810 +#: gui/options.cpp:811 gui/options.cpp:812 msgid "" "Higher value specifies better sound quality but may be not supported by your " "soundcard" @@ -825,68 +827,68 @@ msgstr "" "Une valeur plus élevée donne une meilleure qualité audio mais peut ne pas " "źtre supporté par votre carte son" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "GM Device:" msgstr "Sortie GM :" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "Specifies default sound device for General MIDI output" msgstr "Spécifie le périphérique audio par défaut pour la sortie General MIDI" -#: gui/options.cpp:831 +#: gui/options.cpp:833 msgid "Don't use General MIDI music" msgstr "Ne pas utiliser la musique General MIDI" -#: gui/options.cpp:842 gui/options.cpp:908 +#: gui/options.cpp:844 gui/options.cpp:910 msgid "Use first available device" msgstr "Utiliser le premier périphérique disponible" -#: gui/options.cpp:854 +#: gui/options.cpp:856 msgid "SoundFont:" msgstr "Banque de sons :" -#: gui/options.cpp:854 gui/options.cpp:856 gui/options.cpp:857 +#: gui/options.cpp:856 gui/options.cpp:858 gui/options.cpp:859 msgid "SoundFont is supported by some audio cards, FluidSynth and Timidity" msgstr "" "La banque de sons (SoundFont) est utilisée par certaines cartes audio, " "FluidSynth et Timidity" -#: gui/options.cpp:856 +#: gui/options.cpp:858 msgctxt "lowres" msgid "SoundFont:" msgstr "SoundFont :" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Mixed AdLib/MIDI mode" msgstr "Mode mixe AdLib/MIDI" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Use both MIDI and AdLib sound generation" msgstr "Utiliser ą la fois MIDI et AdLib" -#: gui/options.cpp:865 +#: gui/options.cpp:867 msgid "MIDI gain:" msgstr "Gain MIDI :" -#: gui/options.cpp:872 +#: gui/options.cpp:874 msgid "FluidSynth Settings" msgstr "Paramčtres FluidSynth" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "MT-32 Device:" msgstr "Sortie MT-32 :" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output" msgstr "" "Spécifie le périphérique audio par défaut pour la sortie Roland MT-32/LAPC1/" "CM32l/CM64" -#: gui/options.cpp:884 +#: gui/options.cpp:886 msgid "True Roland MT-32 (disable GM emulation)" msgstr "Roland MT-32 exacte (désactive l'émulation GM)" -#: gui/options.cpp:884 gui/options.cpp:886 +#: gui/options.cpp:886 gui/options.cpp:888 msgid "" "Check if you want to use your real hardware Roland-compatible sound device " "connected to your computer" @@ -894,16 +896,16 @@ msgstr "" "Vérifie si vous voulez utiliser un périphérique audio compatible Roland " "connecté ą l'ordinateur" -#: gui/options.cpp:886 +#: gui/options.cpp:888 msgctxt "lowres" msgid "True Roland MT-32 (no GM emulation)" msgstr "Roland MT-32 exacte (pas d'ému GM)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "Roland GS Device (enable MT-32 mappings)" msgstr "Roland GS (active le mappage MT-32)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "" "Check if you want to enable patch mappings to emulate an MT-32 on a Roland " "GS device" @@ -911,174 +913,186 @@ msgstr "" "Utilisez cette option si vous voulez activez le mappage ą la volée pour une " "émulation MT-32 sur un appareil Roland GS." -#: gui/options.cpp:898 +#: gui/options.cpp:900 msgid "Don't use Roland MT-32 music" msgstr "Ne pas utiliser la musique Roland MT-32" -#: gui/options.cpp:925 +#: gui/options.cpp:927 msgid "Text and Speech:" msgstr "Dialogue :" -#: gui/options.cpp:929 gui/options.cpp:939 +#: gui/options.cpp:931 gui/options.cpp:941 msgid "Speech" msgstr "Voix" -#: gui/options.cpp:930 gui/options.cpp:940 +#: gui/options.cpp:932 gui/options.cpp:942 msgid "Subtitles" msgstr "Sous-titres" -#: gui/options.cpp:931 +#: gui/options.cpp:933 msgid "Both" msgstr "Les deux" -#: gui/options.cpp:933 +#: gui/options.cpp:935 msgid "Subtitle speed:" msgstr "Vitesse des ST :" -#: gui/options.cpp:935 +#: gui/options.cpp:937 msgctxt "lowres" msgid "Text and Speech:" msgstr "Dialogue :" -#: gui/options.cpp:939 +#: gui/options.cpp:941 msgid "Spch" msgstr "Voix" -#: gui/options.cpp:940 +#: gui/options.cpp:942 msgid "Subs" msgstr "Subs" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgctxt "lowres" msgid "Both" msgstr "V&S" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgid "Show subtitles and play speech" msgstr "Affiche les sous-titres et joue les dialogues audio" -#: gui/options.cpp:943 +#: gui/options.cpp:945 msgctxt "lowres" msgid "Subtitle speed:" msgstr "Vitesse des ST :" -#: gui/options.cpp:959 +#: gui/options.cpp:961 msgid "Music volume:" msgstr "Volume Musique :" -#: gui/options.cpp:961 +#: gui/options.cpp:963 msgctxt "lowres" msgid "Music volume:" msgstr "Musique :" -#: gui/options.cpp:968 +#: gui/options.cpp:970 msgid "Mute All" msgstr "Silence" -#: gui/options.cpp:971 +#: gui/options.cpp:973 msgid "SFX volume:" msgstr "Volume Bruitage :" -#: gui/options.cpp:971 gui/options.cpp:973 gui/options.cpp:974 +#: gui/options.cpp:973 gui/options.cpp:975 gui/options.cpp:976 msgid "Special sound effects volume" msgstr "Volume des effets spéciaux sonores" -#: gui/options.cpp:973 +#: gui/options.cpp:975 msgctxt "lowres" msgid "SFX volume:" msgstr "Bruitage :" -#: gui/options.cpp:981 +#: gui/options.cpp:983 msgid "Speech volume:" msgstr "Volume Dialogues :" -#: gui/options.cpp:983 +#: gui/options.cpp:985 msgctxt "lowres" msgid "Speech volume:" msgstr "Dialogues :" -#: gui/options.cpp:1140 +#: gui/options.cpp:1142 msgid "Theme Path:" msgstr "Thčmes :" -#: gui/options.cpp:1142 +#: gui/options.cpp:1144 msgctxt "lowres" msgid "Theme Path:" msgstr "Thčmes :" -#: gui/options.cpp:1148 gui/options.cpp:1150 gui/options.cpp:1151 +#: gui/options.cpp:1150 gui/options.cpp:1152 gui/options.cpp:1153 msgid "Specifies path to additional data used by all games or ScummVM" msgstr "" "Spécifie un chemin vers des données supplémentaires utilisées par tous les " "jeux ou ScummVM" -#: gui/options.cpp:1157 +#: gui/options.cpp:1159 msgid "Plugins Path:" msgstr "Plugins :" -#: gui/options.cpp:1159 +#: gui/options.cpp:1161 msgctxt "lowres" msgid "Plugins Path:" msgstr "Plugins :" -#: gui/options.cpp:1170 +#: gui/options.cpp:1172 msgctxt "lowres" msgid "Misc" msgstr "Divers" -#: gui/options.cpp:1172 +#: gui/options.cpp:1174 msgid "Theme:" msgstr "Thčme :" -#: gui/options.cpp:1176 +#: gui/options.cpp:1178 msgid "GUI Renderer:" msgstr "Interface :" -#: gui/options.cpp:1188 +#: gui/options.cpp:1190 msgid "Autosave:" msgstr "Sauvegarde auto :" -#: gui/options.cpp:1190 +#: gui/options.cpp:1192 msgctxt "lowres" msgid "Autosave:" msgstr "Sauvegarde :" -#: gui/options.cpp:1198 +#: gui/options.cpp:1200 msgid "Keys" msgstr "Touches" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "GUI Language:" msgstr "Langue :" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "Language of ScummVM GUI" msgstr "Langue de l'interface graphique de ScummVM" -#: gui/options.cpp:1364 +#: gui/options.cpp:1235 +msgid "Update check:" +msgstr "Vérif. mises ą jour :" + +#: gui/options.cpp:1235 +msgid "How often to check ScummVM updates" +msgstr "Fréquence des vérifications" + +#: gui/options.cpp:1247 +msgid "Check now" +msgstr "Maintenant" + +#: gui/options.cpp:1382 msgid "You have to restart ScummVM before your changes will take effect." msgstr "" "Vous devez relancer ScummVM pour que le changement soit pris en compte." -#: gui/options.cpp:1384 +#: gui/options.cpp:1415 msgid "The chosen directory cannot be written to. Please select another one." msgstr "" "Le répertoire sélectionné est vérouillé en écriture. Sélectionnez un autre " "répertoire." -#: gui/options.cpp:1393 +#: gui/options.cpp:1424 msgid "Select directory for GUI themes" msgstr "Sélectionner le répertoire des thčmes d'interface" -#: gui/options.cpp:1403 +#: gui/options.cpp:1434 msgid "Select directory for extra files" msgstr "Sélectionner le répertoire pour les fichiers suplémentaires" -#: gui/options.cpp:1414 +#: gui/options.cpp:1445 msgid "Select directory for plugins" msgstr "Sélectionner le répertoire des plugins" -#: gui/options.cpp:1467 +#: gui/options.cpp:1498 msgid "" "The theme you selected does not support your current language. If you want " "to use this theme you need to switch to another language first." @@ -1251,39 +1265,65 @@ msgstr "Rendu Anti-crénelé" msgid "Antialiased" msgstr "Anti-crénelé" -#: gui/widget.cpp:323 gui/widget.cpp:325 gui/widget.cpp:331 gui/widget.cpp:333 +#: gui/updates-dialog.cpp:51 +msgid "" +"ScummVM now supports automatic check for updates\n" +"which requires access to the Internet.\n" +"\n" +"Would you like to enable this feature?" +msgstr "" +"ScummVM peut maintenant rechercher les mises ą jour\n" +"automatiquement, ce qui necessite un accčs internet.\n" +"\n" +"Voulez-vous activer cette options?" + +#: gui/updates-dialog.cpp:55 +msgid "(You can always enable it in the options dialog on the Misc tab)" +msgstr "" +"(Vous pouvez aussi activer cette option dans le tab 'Divers'\n" +"du dialogue d'options)" + +#: gui/updates-dialog.cpp:92 +msgid "Check for updates automatically" +msgstr "Vérifier les mises ą jour automatiquement" + +#: gui/updates-dialog.cpp:111 +msgid "Proceed" +msgstr "Appliquer" + +#: gui/widget.cpp:327 gui/widget.cpp:329 gui/widget.cpp:335 gui/widget.cpp:337 msgid "Clear value" msgstr "Effacer la valeur" -#: base/main.cpp:237 +#: base/main.cpp:240 #, c-format msgid "Engine does not support debug level '%s'" msgstr "Le niveau de debug '%s' n'est pas supporté par ce moteur de jeu" -#: base/main.cpp:309 +#: base/main.cpp:312 msgid "Menu" msgstr "Menu" -#: base/main.cpp:312 backends/platform/symbian/src/SymbianActions.cpp:45 +#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:45 #: backends/platform/wince/CEActionsPocket.cpp:45 #: backends/platform/wince/CEActionsSmartphone.cpp:46 msgid "Skip" msgstr "Passer" -#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:50 +#: base/main.cpp:318 backends/platform/symbian/src/SymbianActions.cpp:50 #: backends/platform/wince/CEActionsPocket.cpp:42 msgid "Pause" msgstr "Mettre en pause" -#: base/main.cpp:318 +#: base/main.cpp:321 msgid "Skip line" msgstr "Passer la phrase" -#: base/main.cpp:510 +#: base/main.cpp:520 msgid "Error running game:" msgstr "Erreur lors de l'éxécution du jeu : " -#: base/main.cpp:557 +#: base/main.cpp:567 msgid "Could not find any engine capable of running the selected game" msgstr "Impossible de trouver un moteur pour exécuter le jeu sélectionné" @@ -1378,18 +1418,34 @@ msgctxt "lowres" msgid "Hercules Amber" msgstr "Hercules Ambre" -#: engines/advancedDetector.cpp:317 +#: common/updates.cpp:58 +msgid "Daily" +msgstr "Une fois par jour" + +#: common/updates.cpp:60 +msgid "Weekly" +msgstr "Une fois pas semaine" + +#: common/updates.cpp:62 +msgid "Monthly" +msgstr "Une fois pas mois" + +#: common/updates.cpp:64 +msgid "<Bad value>" +msgstr "<Valeur invalide>" + +#: engines/advancedDetector.cpp:334 #, c-format msgid "The game in '%s' seems to be unknown." msgstr "Le jeu dans '%s' n'est pas reconnu." -#: engines/advancedDetector.cpp:318 +#: engines/advancedDetector.cpp:335 msgid "Please, report the following data to the ScummVM team along with name" msgstr "" "Veuillez reporter les informations suivantes ą l'équipe ScummVM ainsi que le " "nom" -#: engines/advancedDetector.cpp:320 +#: engines/advancedDetector.cpp:337 msgid "of the game you tried to add and its version/language/etc.:" msgstr "du jeu que vous avez essayé d'ajouter, sa version, le langage, etc..." @@ -1397,11 +1453,11 @@ msgstr "du jeu que vous avez essayé d'ajouter, sa version, le langage, etc..." msgid "~R~esume" msgstr "~R~eprendre" -#: engines/dialogs.cpp:87 +#: engines/dialogs.cpp:87 engines/mohawk/dialogs.cpp:113 msgid "~L~oad" msgstr "~C~harger" -#: engines/dialogs.cpp:91 +#: engines/dialogs.cpp:91 engines/mohawk/dialogs.cpp:114 msgid "~S~ave" msgstr "~S~auver" @@ -1430,9 +1486,9 @@ msgstr "Retour au ~L~anceur" #: engines/avalanche/parser.cpp:1899 engines/cge/events.cpp:74 #: engines/cge2/events.cpp:67 engines/cruise/menu.cpp:212 #: engines/drascula/saveload.cpp:336 engines/dreamweb/saveload.cpp:261 -#: engines/hugo/file.cpp:298 engines/neverhood/menumodule.cpp:877 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/hugo/file.cpp:298 engines/mohawk/dialogs.cpp:121 +#: engines/neverhood/menumodule.cpp:877 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save game:" @@ -1447,9 +1503,10 @@ msgstr "Sauvegarde :" #: engines/cge/events.cpp:74 engines/cge2/events.cpp:67 #: engines/cruise/menu.cpp:212 engines/drascula/saveload.cpp:336 #: engines/dreamweb/saveload.cpp:261 engines/hugo/file.cpp:298 -#: engines/neverhood/menumodule.cpp:877 engines/parallaction/saveload.cpp:212 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/scumm/dialogs.cpp:188 engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/mohawk/dialogs.cpp:121 engines/neverhood/menumodule.cpp:877 +#: engines/parallaction/saveload.cpp:212 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/scumm/dialogs.cpp:188 +#: engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save" @@ -1474,13 +1531,13 @@ msgstr "" "Echec de la sauvegarde (%s)! Lisez le fichier README pour les informations " "de base et les instructions pour obtenir de l'aide supplémentaire." -#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:109 -#: engines/mohawk/dialogs.cpp:170 engines/tsage/dialogs.cpp:106 +#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:117 +#: engines/mohawk/dialogs.cpp:242 engines/tsage/dialogs.cpp:106 msgid "~O~K" msgstr "~O~K" -#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:110 -#: engines/mohawk/dialogs.cpp:171 engines/tsage/dialogs.cpp:107 +#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:118 +#: engines/mohawk/dialogs.cpp:243 engines/tsage/dialogs.cpp:107 msgid "~C~ancel" msgstr "~A~nnuler" @@ -1636,11 +1693,11 @@ msgstr "Audio FM Towns" msgid "PC-98 Audio" msgstr "Audio PC-98" -#: audio/softsynth/mt32.cpp:200 +#: audio/softsynth/mt32.cpp:196 msgid "Initializing MT-32 Emulator" msgstr "Initialisation de l'Émulateur MT-32" -#: audio/softsynth/mt32.cpp:426 +#: audio/softsynth/mt32.cpp:434 msgid "MT-32 Emulator" msgstr "Émulateur MT-32" @@ -1757,11 +1814,11 @@ msgstr "Le mode glisser-auto est maintenant" msgid "Swipe three fingers to the right to toggle." msgstr "Glissez trois doigts vers la droite pour changer de mode." -#: backends/graphics/opengl/opengl-graphics.cpp:119 +#: backends/graphics/opengl/opengl-graphics.cpp:126 msgid "OpenGL" msgstr "OpenGL" -#: backends/graphics/opengl/opengl-graphics.cpp:120 +#: backends/graphics/opengl/opengl-graphics.cpp:127 msgid "OpenGL (No filtering)" msgstr "OpenGL (sans filtre)" @@ -2315,20 +2372,20 @@ msgstr "" "Noubliez pas d'affecter une touche ą l'action 'Cacher Bar d'Outils' pour " "pouvoir voir entičrement l'inventaire" -#: backends/updates/macosx/macosx-updates.mm:67 +#: backends/updates/macosx/macosx-updates.mm:68 msgid "Check for Updates..." msgstr "Recherche des mises ą jour..." #: engines/agi/detection.cpp:147 engines/cine/detection.cpp:70 #: engines/drascula/detection.cpp:302 engines/dreamweb/detection.cpp:47 -#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:404 +#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:410 #: engines/toltecs/detection.cpp:200 engines/zvision/detection_tables.h:51 msgid "Use original save/load screens" msgstr "Dialogues sauvegarde/chargement d'origine" #: engines/agi/detection.cpp:148 engines/cine/detection.cpp:71 #: engines/drascula/detection.cpp:303 engines/dreamweb/detection.cpp:48 -#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:405 +#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:411 #: engines/toltecs/detection.cpp:201 msgid "Use the original save/load screens, instead of the ScummVM ones" msgstr "" @@ -2358,11 +2415,32 @@ msgstr "" "Activer le support de la souris. Cela permet d'utiliser la souris pour les " "mouvements et la navigation dans les menus." +#: engines/agi/detection.cpp:177 +msgid "Use Hercules hires font" +msgstr "Utiliser les polices Hercules haute résolution" + +#: engines/agi/detection.cpp:178 +msgid "Uses Hercules hires font, when font file is available." +msgstr "" +"Utilise les polices Hercules haute résolution quand elles sont disponibles." + +#: engines/agi/detection.cpp:187 +msgid "Pause when entering commands" +msgstr "Pause lors de la saisie de commandes" + +#: engines/agi/detection.cpp:188 +msgid "" +"Shows a command prompt window and pauses the game (like in SCI) instead of a " +"real-time prompt." +msgstr "" +"Affiche une fenźtre de saisie de commandes et interrompt le jeu (comme pour " +"les jeux SCI) ą la place d'un champ de saisie en temps réel." + #: engines/agi/saveload.cpp:777 engines/avalanche/parser.cpp:1887 #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore game:" @@ -2372,13 +2450,13 @@ msgstr "Charger le jeu :" #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore" msgstr "Charger" -#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2377 +#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2374 #, c-format msgid "" "Failed to load game state from file:\n" @@ -2389,7 +2467,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2370 +#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2367 #, c-format msgid "" "Failed to save game state to file:\n" @@ -2400,7 +2478,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2388 +#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2385 #, c-format msgid "" "Successfully saved game state in file:\n" @@ -2647,29 +2725,37 @@ msgstr "" "\n" " \n" +#: engines/mohawk/detection.cpp:168 +msgid "Play the Myst fly by movie" +msgstr "Jouer la vidéo du survol de Myst" + +#: engines/mohawk/detection.cpp:169 +msgid "The Myst fly by movie was not played by the original engine." +msgstr "La vidéo du survol de Myst n'était pas jouée par le moteur originel." + #. I18N: Option for fast scene switching -#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:167 +#: engines/mohawk/dialogs.cpp:96 engines/mohawk/dialogs.cpp:239 msgid "~Z~ip Mode Activated" msgstr "Mode ~Z~ip Activé" -#: engines/mohawk/dialogs.cpp:93 +#: engines/mohawk/dialogs.cpp:97 msgid "~T~ransitions Enabled" msgstr "T~r~ansitions activées" #. I18N: Drop book page -#: engines/mohawk/dialogs.cpp:95 +#: engines/mohawk/dialogs.cpp:99 msgid "~D~rop Page" msgstr "~L~acher la Page" -#: engines/mohawk/dialogs.cpp:99 -msgid "~S~how Map" -msgstr "Afficher la Carte" +#: engines/mohawk/dialogs.cpp:103 +msgid "Show ~M~ap" +msgstr "Afficher la ~C~arte" -#: engines/mohawk/dialogs.cpp:105 -msgid "~M~ain Menu" +#: engines/mohawk/dialogs.cpp:109 +msgid "Main Men~u~" msgstr "~M~enu Principal" -#: engines/mohawk/dialogs.cpp:168 +#: engines/mohawk/dialogs.cpp:240 msgid "~W~ater Effect Enabled" msgstr "~E~ffets de l'Eau Activés" @@ -2792,37 +2878,37 @@ msgstr "Intro alternative" msgid "Use an alternative game intro (CD version only)" msgstr "Utiliser une intro alternative (version CD uniquement)" -#: engines/sci/detection.cpp:374 +#: engines/sci/detection.cpp:380 msgid "Skip EGA dithering pass (full color backgrounds)" msgstr "Passer l'étape de tramage EGA (fonds de couleurs pleines)" -#: engines/sci/detection.cpp:375 +#: engines/sci/detection.cpp:381 msgid "Skip dithering pass in EGA games, graphics are shown with full colors" msgstr "" "Passer l'étape de tramage dans les jeux EGA ; les images utilisent des " "couleurs pleines" -#: engines/sci/detection.cpp:384 +#: engines/sci/detection.cpp:390 msgid "Enable high resolution graphics" msgstr "Utiliser les graphiques haute résolution" -#: engines/sci/detection.cpp:385 +#: engines/sci/detection.cpp:391 msgid "Enable high resolution graphics/content" msgstr "Utiliser les graphiques haute résolution" -#: engines/sci/detection.cpp:394 +#: engines/sci/detection.cpp:400 msgid "Prefer digital sound effects" msgstr "Préférer les effets sonores digitaux" -#: engines/sci/detection.cpp:395 +#: engines/sci/detection.cpp:401 msgid "Prefer digital sound effects instead of synthesized ones" msgstr "Préférer les effets sonores digitaux plutōt que ceux synthétisés" -#: engines/sci/detection.cpp:414 +#: engines/sci/detection.cpp:420 msgid "Use IMF/Yamaha FB-01 for MIDI output" msgstr "Utiliser IMF/Yamaha FB-01 pour la sortie MIDI" -#: engines/sci/detection.cpp:415 +#: engines/sci/detection.cpp:421 msgid "" "Use an IBM Music Feature card or a Yamaha FB-01 FM synth module for MIDI " "output" @@ -2830,36 +2916,44 @@ msgstr "" "Utiliser une carte IBM Music Feature ou un module Yamaha FB-01 FM pour la " "sortie MIDI" -#: engines/sci/detection.cpp:425 +#: engines/sci/detection.cpp:431 msgid "Use CD audio" msgstr "Utiliser la musique du CD" -#: engines/sci/detection.cpp:426 +#: engines/sci/detection.cpp:432 msgid "Use CD audio instead of in-game audio, if available" msgstr "" "Utiliser la musique du CD quand elle est disponible au lieu de la musique du " "jeu" -#: engines/sci/detection.cpp:436 +#: engines/sci/detection.cpp:442 msgid "Use Windows cursors" msgstr "Utiliser les curseurs Windows" -#: engines/sci/detection.cpp:437 +#: engines/sci/detection.cpp:443 msgid "" "Use the Windows cursors (smaller and monochrome) instead of the DOS ones" msgstr "" "Utiliser les curseurs Windows (plus petits et monochromes) au lieu des " "curseurs DOS" -#: engines/sci/detection.cpp:447 +#: engines/sci/detection.cpp:453 msgid "Use silver cursors" msgstr "Utiliser les curseurs argentés" -#: engines/sci/detection.cpp:448 +#: engines/sci/detection.cpp:454 msgid "" "Use the alternate set of silver cursors, instead of the normal golden ones" msgstr "Utiliser les curseurs argentés au lieu des curseurs normaux dorés" +#: engines/scumm/detection.cpp:1335 +msgid "Show Object Line" +msgstr "Afficher la barre d'objets" + +#: engines/scumm/detection.cpp:1336 +msgid "Show the names of objects at the bottom of the screen" +msgstr "Afficher le nom des objets en bas de l'écran" + #: engines/scumm/dialogs.cpp:176 #, c-format msgid "Insert Disk %c and Press Button to Continue." @@ -3525,7 +3619,7 @@ msgstr "Volume Musique :" msgid "Subtitle speed: " msgstr "Vitesse des ST :" -#: engines/scumm/scumm.cpp:1832 +#: engines/scumm/scumm.cpp:1829 #, c-format msgid "" "Native MIDI support requires the Roland Upgrade from LucasArts,\n" @@ -3534,7 +3628,7 @@ msgstr "" "Support MIDI natif requičre la mise ą jour Roland de LucasArt,\n" "mais %s manque. Utilise AdLib ą la place." -#: engines/scumm/scumm.cpp:2644 +#: engines/scumm/scumm.cpp:2645 msgid "" "Usually, Maniac Mansion would start now. But for that to work, the game " "files for Maniac Mansion have to be in the 'Maniac' directory inside the " @@ -3723,6 +3817,17 @@ msgstr "Afficher la description des objets" msgid "Show labels for objects on mouse hover" msgstr "Afficher la description des objets lors de passage du pointeur" +#: engines/sword25/detection.cpp:46 +msgid "Use English speech" +msgstr "Utiliser les voix anglaises" + +#: engines/sword25/detection.cpp:47 +msgid "" +"Use English speech instead of German for every language other than German" +msgstr "" +"Utilise les voix anglaises au lieu des voix allemandes pour tous les autres " +"langages" + #: engines/teenagent/resources.cpp:95 msgid "" "You're missing the 'teenagent.dat' file. Get it from the ScummVM website" diff --git a/po/gl_ES.po b/po/gl_ES.po index 22b99fe2a7..1b2731dc5e 100644 --- a/po/gl_ES.po +++ b/po/gl_ES.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ScummVM 1.8.0git\n" "Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n" -"POT-Creation-Date: 2016-02-20 21:22+0000\n" +"POT-Creation-Date: 2016-04-07 08:55+0100\n" "PO-Revision-Date: 2016-02-21 00:43+0100\n" "Last-Translator: Santiago G. Sanz <s.sanz@uvigo.es>\n" "Language-Team: Santiago G. Sanz <s.sanz@uvigo.es>\n" @@ -54,10 +54,11 @@ msgstr "Arriba" #: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editrecorddialog.cpp:67 #: gui/filebrowser-dialog.cpp:64 gui/fluidsynth-dialog.cpp:152 #: gui/KeysDialog.cpp:43 gui/launcher.cpp:351 gui/massadd.cpp:95 -#: gui/options.cpp:1237 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 +#: gui/options.cpp:1255 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 #: gui/recorderdialog.cpp:156 gui/saveload-dialog.cpp:216 #: gui/saveload-dialog.cpp:276 gui/saveload-dialog.cpp:547 -#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 engines/engine.cpp:546 +#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 +#: gui/updates-dialog.cpp:113 engines/engine.cpp:546 #: backends/events/default/default-events.cpp:196 #: backends/events/default/default-events.cpp:218 #: backends/platform/wii/options.cpp:48 engines/drascula/saveload.cpp:49 @@ -171,7 +172,7 @@ msgstr "Seno" msgid "Triangle" msgstr "Triįngulo" -#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1168 +#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1170 msgid "Misc" msgstr "Misc." @@ -206,12 +207,12 @@ msgstr "" #: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:352 #: gui/launcher.cpp:1050 gui/launcher.cpp:1054 gui/massadd.cpp:92 -#: gui/options.cpp:1238 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 +#: gui/options.cpp:1256 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 #: engines/engine.cpp:476 backends/platform/wii/options.cpp:47 #: backends/platform/wince/CELauncherDialog.cpp:54 #: engines/agos/animation.cpp:558 engines/drascula/saveload.cpp:49 #: engines/groovie/script.cpp:408 engines/parallaction/saveload.cpp:274 -#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1834 +#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1831 #: engines/scumm/players/player_v3m.cpp:130 #: engines/scumm/players/player_v5m.cpp:108 engines/sky/compact.cpp:131 #: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:524 @@ -241,15 +242,15 @@ msgstr "Pechar" msgid "Mouse click" msgstr "Premer co rato" -#: gui/gui-manager.cpp:126 base/main.cpp:322 +#: gui/gui-manager.cpp:126 base/main.cpp:325 msgid "Display keyboard" msgstr "Mostrar teclado" -#: gui/gui-manager.cpp:130 base/main.cpp:326 +#: gui/gui-manager.cpp:130 base/main.cpp:329 msgid "Remap keys" msgstr "Asignar teclas" -#: gui/gui-manager.cpp:133 base/main.cpp:329 engines/scumm/help.cpp:87 +#: gui/gui-manager.cpp:133 base/main.cpp:332 engines/scumm/help.cpp:87 msgid "Toggle fullscreen" msgstr "Activar/desactivar pantalla completa" @@ -323,8 +324,8 @@ msgid "" "English" msgstr "Idioma do xogo. Non converterį a versión galega do xogo en inglesa" -#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:87 -#: gui/options.cpp:735 gui/options.cpp:748 gui/options.cpp:1208 +#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:89 +#: gui/options.cpp:737 gui/options.cpp:750 gui/options.cpp:1210 #: audio/null.cpp:41 msgid "<default>" msgstr "<por defecto>" @@ -346,11 +347,11 @@ msgstr "Plataforma:" msgid "Engine" msgstr "Motor" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "Graphics" msgstr "Grįficos" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "GFX" msgstr "Efectos grįficos" @@ -363,7 +364,7 @@ msgctxt "lowres" msgid "Override global graphic settings" msgstr "Anular a configuración dos grįficos" -#: gui/launcher.cpp:257 gui/options.cpp:1094 +#: gui/launcher.cpp:257 gui/options.cpp:1096 msgid "Audio" msgstr "Son" @@ -376,11 +377,11 @@ msgctxt "lowres" msgid "Override global audio settings" msgstr "Anular a configuración do son" -#: gui/launcher.cpp:271 gui/options.cpp:1099 +#: gui/launcher.cpp:271 gui/options.cpp:1101 msgid "Volume" msgstr "Volume" -#: gui/launcher.cpp:273 gui/options.cpp:1101 +#: gui/launcher.cpp:273 gui/options.cpp:1103 msgctxt "lowres" msgid "Volume" msgstr "Volume" @@ -394,7 +395,7 @@ msgctxt "lowres" msgid "Override global volume settings" msgstr "Anular a configuración do volume" -#: gui/launcher.cpp:286 gui/options.cpp:1109 +#: gui/launcher.cpp:286 gui/options.cpp:1111 msgid "MIDI" msgstr "MIDI" @@ -407,7 +408,7 @@ msgctxt "lowres" msgid "Override global MIDI settings" msgstr "Anular a configuración de MIDI" -#: gui/launcher.cpp:300 gui/options.cpp:1115 +#: gui/launcher.cpp:300 gui/options.cpp:1117 msgid "MT-32" msgstr "MT-32" @@ -420,11 +421,11 @@ msgctxt "lowres" msgid "Override global MT-32 settings" msgstr "Anular a configuración de MT-32" -#: gui/launcher.cpp:314 gui/options.cpp:1122 +#: gui/launcher.cpp:314 gui/options.cpp:1124 msgid "Paths" msgstr "Camińos" -#: gui/launcher.cpp:316 gui/options.cpp:1124 +#: gui/launcher.cpp:316 gui/options.cpp:1126 msgctxt "lowres" msgid "Paths" msgstr "Camińos" @@ -438,7 +439,7 @@ msgctxt "lowres" msgid "Game Path:" msgstr "Camińo do xogo:" -#: gui/launcher.cpp:330 gui/options.cpp:1148 +#: gui/launcher.cpp:330 gui/options.cpp:1150 msgid "Extra Path:" msgstr "Camińo adicional:" @@ -446,42 +447,42 @@ msgstr "Camińo adicional:" msgid "Specifies path to additional data used by the game" msgstr "Especifica o camińo dos datos adicionais usados no xogo" -#: gui/launcher.cpp:332 gui/options.cpp:1150 +#: gui/launcher.cpp:332 gui/options.cpp:1152 msgctxt "lowres" msgid "Extra Path:" msgstr "Camińo adicional:" -#: gui/launcher.cpp:339 gui/options.cpp:1132 +#: gui/launcher.cpp:339 gui/options.cpp:1134 msgid "Save Path:" msgstr "Camińo de gardado:" #: gui/launcher.cpp:339 gui/launcher.cpp:341 gui/launcher.cpp:342 -#: gui/options.cpp:1132 gui/options.cpp:1134 gui/options.cpp:1135 +#: gui/options.cpp:1134 gui/options.cpp:1136 gui/options.cpp:1137 msgid "Specifies where your saved games are put" msgstr "Especifica o lugar dos ficheiros de gardado" -#: gui/launcher.cpp:341 gui/options.cpp:1134 +#: gui/launcher.cpp:341 gui/options.cpp:1136 msgctxt "lowres" msgid "Save Path:" msgstr "Camińo de gardado:" #: gui/launcher.cpp:360 gui/launcher.cpp:459 gui/launcher.cpp:517 -#: gui/launcher.cpp:571 gui/options.cpp:1143 gui/options.cpp:1151 -#: gui/options.cpp:1160 gui/options.cpp:1275 gui/options.cpp:1281 -#: gui/options.cpp:1289 gui/options.cpp:1319 gui/options.cpp:1325 -#: gui/options.cpp:1332 gui/options.cpp:1425 gui/options.cpp:1428 -#: gui/options.cpp:1440 +#: gui/launcher.cpp:571 gui/options.cpp:1145 gui/options.cpp:1153 +#: gui/options.cpp:1162 gui/options.cpp:1293 gui/options.cpp:1299 +#: gui/options.cpp:1307 gui/options.cpp:1337 gui/options.cpp:1343 +#: gui/options.cpp:1350 gui/options.cpp:1456 gui/options.cpp:1459 +#: gui/options.cpp:1471 msgctxt "path" msgid "None" msgstr "Ningśn" #: gui/launcher.cpp:365 gui/launcher.cpp:465 gui/launcher.cpp:575 -#: gui/options.cpp:1269 gui/options.cpp:1313 gui/options.cpp:1431 +#: gui/options.cpp:1287 gui/options.cpp:1331 gui/options.cpp:1462 #: backends/platform/wii/options.cpp:56 msgid "Default" msgstr "Predefinido" -#: gui/launcher.cpp:510 gui/options.cpp:1434 +#: gui/launcher.cpp:510 gui/options.cpp:1465 msgid "Select SoundFont" msgstr "Seleccionar SoundFont" @@ -493,7 +494,7 @@ msgstr "Selecciona un directorio con datos de xogo" msgid "Select additional game directory" msgstr "Selecciona un directorio con datos adicionais" -#: gui/launcher.cpp:559 gui/options.cpp:1377 +#: gui/launcher.cpp:559 gui/options.cpp:1408 msgid "Select directory for saved games" msgstr "Selecciona un directorio para ficheiros de gardado" @@ -501,7 +502,7 @@ msgstr "Selecciona un directorio para ficheiros de gardado" msgid "This game ID is already taken. Please choose another one." msgstr "Este ID de xogo xa estį en uso. Selecciona outro." -#: gui/launcher.cpp:626 engines/dialogs.cpp:111 +#: gui/launcher.cpp:626 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:115 msgid "~Q~uit" msgstr "~S~aķr" @@ -589,17 +590,18 @@ msgid "Search:" msgstr "Buscar:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214 -#: engines/mohawk/riven.cpp:718 engines/pegasus/pegasus.cpp:353 -#: engines/tsage/scenes.cpp:600 +#: engines/mohawk/dialogs.cpp:120 engines/mohawk/riven.cpp:718 +#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:600 msgid "Load game:" msgstr "Cargar partida:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 #: backends/platform/wince/CEActionsPocket.cpp:267 #: backends/platform/wince/CEActionsSmartphone.cpp:231 -#: engines/cruise/menu.cpp:214 engines/mohawk/riven.cpp:718 -#: engines/parallaction/saveload.cpp:197 engines/pegasus/pegasus.cpp:353 -#: engines/scumm/dialogs.cpp:189 engines/tsage/scenes.cpp:600 +#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:120 +#: engines/mohawk/riven.cpp:718 engines/parallaction/saveload.cpp:197 +#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:189 +#: engines/tsage/scenes.cpp:600 msgid "Load" msgstr "Cargar" @@ -686,132 +688,132 @@ msgstr "Cambiar ao xogo" msgid "Fast replay" msgstr "Repetición rįpida" -#: gui/options.cpp:85 +#: gui/options.cpp:87 common/updates.cpp:56 msgid "Never" msgstr "Nunca" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 5 mins" msgstr "cada 5 min" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 10 mins" msgstr "cada 10 min" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 15 mins" msgstr "cada 15 min" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 30 mins" msgstr "cada 30 min" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "8 kHz" msgstr "8 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "11 kHz" msgstr "11 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "22 kHz" msgstr "22 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "44 kHz" msgstr "44 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "48 kHz" msgstr "48 kHz" -#: gui/options.cpp:255 gui/options.cpp:479 gui/options.cpp:580 -#: gui/options.cpp:649 gui/options.cpp:857 +#: gui/options.cpp:257 gui/options.cpp:481 gui/options.cpp:582 +#: gui/options.cpp:651 gui/options.cpp:859 msgctxt "soundfont" msgid "None" msgstr "Ningunha" -#: gui/options.cpp:389 +#: gui/options.cpp:391 msgid "Failed to apply some of the graphic options changes:" msgstr "Erro ao aplicar os cambios na configuración dos grįficos:" -#: gui/options.cpp:401 +#: gui/options.cpp:403 msgid "the video mode could not be changed." msgstr "non se puido cambiar o modo de vķdeo." -#: gui/options.cpp:407 +#: gui/options.cpp:409 msgid "the fullscreen setting could not be changed" msgstr "non se puido cambiar a configuración de pantalla completa." -#: gui/options.cpp:413 +#: gui/options.cpp:415 msgid "the aspect ratio setting could not be changed" msgstr "non se puido cambiar a proporción." -#: gui/options.cpp:732 +#: gui/options.cpp:734 msgid "Graphics mode:" msgstr "Grįficos:" -#: gui/options.cpp:746 +#: gui/options.cpp:748 msgid "Render mode:" msgstr "Procesamento:" -#: gui/options.cpp:746 gui/options.cpp:747 +#: gui/options.cpp:748 gui/options.cpp:749 msgid "Special dithering modes supported by some games" msgstr "Modos de interpolación de cores compatibles con algśns xogos" -#: gui/options.cpp:758 +#: gui/options.cpp:760 #: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2316 msgid "Fullscreen mode" msgstr "Pantalla completa" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Aspect ratio correction" msgstr "Corrección de proporción" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Correct aspect ratio for 320x200 games" msgstr "Corrixir a proporción para os xogos en 320x200" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Preferred Device:" msgstr "Dispositivo preferido:" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Music Device:" msgstr "Dispositivo de mśsica:" -#: gui/options.cpp:769 gui/options.cpp:771 +#: gui/options.cpp:771 gui/options.cpp:773 msgid "Specifies preferred sound device or sound card emulator" msgstr "Especifica o dispositivo ou emulador de tarxeta de son preferido" -#: gui/options.cpp:769 gui/options.cpp:771 gui/options.cpp:772 +#: gui/options.cpp:771 gui/options.cpp:773 gui/options.cpp:774 msgid "Specifies output sound device or sound card emulator" msgstr "Especifica o dispositivo ou emulador de tarxeta de son de saķda" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Preferred Dev.:" msgstr "Disp. preferido:" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Music Device:" msgstr "Disp. mśsica:" -#: gui/options.cpp:798 +#: gui/options.cpp:800 msgid "AdLib emulator:" msgstr "Emulador de AdLib:" -#: gui/options.cpp:798 gui/options.cpp:799 +#: gui/options.cpp:800 gui/options.cpp:801 msgid "AdLib is used for music in many games" msgstr "Moitos xogos empregan AdLib para a mśsica" -#: gui/options.cpp:809 +#: gui/options.cpp:811 msgid "Output rate:" msgstr "Taxa de saķda:" -#: gui/options.cpp:809 gui/options.cpp:810 +#: gui/options.cpp:811 gui/options.cpp:812 msgid "" "Higher value specifies better sound quality but may be not supported by your " "soundcard" @@ -819,84 +821,84 @@ msgstr "" "A maior valor, maior calidade do son, mais talvez non sexa compatible coa " "tarxeta" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "GM Device:" msgstr "Dispositivo de GM:" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "Specifies default sound device for General MIDI output" msgstr "" "Especifica o dispositivo de son por defecto para a saķda de General MIDI" -#: gui/options.cpp:831 +#: gui/options.cpp:833 msgid "Don't use General MIDI music" msgstr "Non empregar mśsica en General MIDI" -#: gui/options.cpp:842 gui/options.cpp:908 +#: gui/options.cpp:844 gui/options.cpp:910 msgid "Use first available device" msgstr "Empregar o primeiro dispositivo dispońible" -#: gui/options.cpp:854 +#: gui/options.cpp:856 msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:854 gui/options.cpp:856 gui/options.cpp:857 +#: 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 é compatible con algunhas tarxetas de son, FluidSynth e Timidity" -#: gui/options.cpp:856 +#: gui/options.cpp:858 msgctxt "lowres" msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Mixed AdLib/MIDI mode" msgstr "Modo AdLib/MIDI mixto" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Use both MIDI and AdLib sound generation" msgstr "Empregar xeración de son MIDI e mįis AdLib" -#: gui/options.cpp:865 +#: gui/options.cpp:867 msgid "MIDI gain:" msgstr "Ganancia de MIDI:" -#: gui/options.cpp:872 +#: gui/options.cpp:874 msgid "FluidSynth Settings" msgstr "Configuración de FluidSynth" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "MT-32 Device:" msgstr "Dispositivo de MT-32:" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output" msgstr "" "Especifica o dispositivo por defecto para a saķda de Roland MT-32/LAPC1/" "CM32l/CM64" -#: gui/options.cpp:884 +#: gui/options.cpp:886 msgid "True Roland MT-32 (disable GM emulation)" msgstr "Roland MT-32 verdadeiro (sen emulación de GM)" -#: gui/options.cpp:884 gui/options.cpp:886 +#: gui/options.cpp:886 gui/options.cpp:888 msgid "" "Check if you want to use your real hardware Roland-compatible sound device " "connected to your computer" msgstr "" "Marcar para empregar o hardware compatible con Roland conectado ao sistema" -#: gui/options.cpp:886 +#: gui/options.cpp:888 msgctxt "lowres" msgid "True Roland MT-32 (no GM emulation)" msgstr "Roland MT-32 (sen emulación de GM)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "Roland GS Device (enable MT-32 mappings)" msgstr "Dispositivo Roland GS (activar atribución MT-32)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "" "Check if you want to enable patch mappings to emulate an MT-32 on a Roland " "GS device" @@ -904,170 +906,182 @@ msgstr "" "Marcar para activar a atribución de parches e emular MT-32 nun dispositivo " "Roland GS" -#: gui/options.cpp:898 +#: gui/options.cpp:900 msgid "Don't use Roland MT-32 music" msgstr "Non empregar mśsica en Roland MT-32" -#: gui/options.cpp:925 +#: gui/options.cpp:927 msgid "Text and Speech:" msgstr "Texto e voz:" -#: gui/options.cpp:929 gui/options.cpp:939 +#: gui/options.cpp:931 gui/options.cpp:941 msgid "Speech" msgstr "Voz" -#: gui/options.cpp:930 gui/options.cpp:940 +#: gui/options.cpp:932 gui/options.cpp:942 msgid "Subtitles" msgstr "Subtķtulos" -#: gui/options.cpp:931 +#: gui/options.cpp:933 msgid "Both" msgstr "Ambos" -#: gui/options.cpp:933 +#: gui/options.cpp:935 msgid "Subtitle speed:" msgstr "Velocidade dos subtķtulos:" -#: gui/options.cpp:935 +#: gui/options.cpp:937 msgctxt "lowres" msgid "Text and Speech:" msgstr "Texto e voz:" -#: gui/options.cpp:939 +#: gui/options.cpp:941 msgid "Spch" msgstr "Voz" -#: gui/options.cpp:940 +#: gui/options.cpp:942 msgid "Subs" msgstr "Subs" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgctxt "lowres" msgid "Both" msgstr "Ambos" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgid "Show subtitles and play speech" msgstr "Mostrar os subtķtulos e reproducir as voces" -#: gui/options.cpp:943 +#: gui/options.cpp:945 msgctxt "lowres" msgid "Subtitle speed:" msgstr "Velocidade subs:" -#: gui/options.cpp:959 +#: gui/options.cpp:961 msgid "Music volume:" msgstr "Volume de mśsica:" -#: gui/options.cpp:961 +#: gui/options.cpp:963 msgctxt "lowres" msgid "Music volume:" msgstr "Volume mśsica:" -#: gui/options.cpp:968 +#: gui/options.cpp:970 msgid "Mute All" msgstr "Silenciar todo" -#: gui/options.cpp:971 +#: gui/options.cpp:973 msgid "SFX volume:" msgstr "Volume de efectos:" -#: gui/options.cpp:971 gui/options.cpp:973 gui/options.cpp:974 +#: gui/options.cpp:973 gui/options.cpp:975 gui/options.cpp:976 msgid "Special sound effects volume" msgstr "Volume dos efectos de son" -#: gui/options.cpp:973 +#: gui/options.cpp:975 msgctxt "lowres" msgid "SFX volume:" msgstr "Volume efectos:" -#: gui/options.cpp:981 +#: gui/options.cpp:983 msgid "Speech volume:" msgstr "Volume de voz:" -#: gui/options.cpp:983 +#: gui/options.cpp:985 msgctxt "lowres" msgid "Speech volume:" msgstr "Volume voz:" -#: gui/options.cpp:1140 +#: gui/options.cpp:1142 msgid "Theme Path:" msgstr "Camińo do tema:" -#: gui/options.cpp:1142 +#: gui/options.cpp:1144 msgctxt "lowres" msgid "Theme Path:" msgstr "Camińo tema:" -#: gui/options.cpp:1148 gui/options.cpp:1150 gui/options.cpp:1151 +#: gui/options.cpp:1150 gui/options.cpp:1152 gui/options.cpp:1153 msgid "Specifies path to additional data used by all games or ScummVM" msgstr "" "Especificar o camińo dos datos adicionais de todos os xogos ou de ScummVM" -#: gui/options.cpp:1157 +#: gui/options.cpp:1159 msgid "Plugins Path:" msgstr "Camińo dos complementos:" -#: gui/options.cpp:1159 +#: gui/options.cpp:1161 msgctxt "lowres" msgid "Plugins Path:" msgstr "Camińo complementos:" -#: gui/options.cpp:1170 +#: gui/options.cpp:1172 msgctxt "lowres" msgid "Misc" msgstr "Misc." -#: gui/options.cpp:1172 +#: gui/options.cpp:1174 msgid "Theme:" msgstr "Tema:" -#: gui/options.cpp:1176 +#: gui/options.cpp:1178 msgid "GUI Renderer:" msgstr "Procesamento da interfaz:" -#: gui/options.cpp:1188 +#: gui/options.cpp:1190 msgid "Autosave:" msgstr "Autogardado:" -#: gui/options.cpp:1190 +#: gui/options.cpp:1192 msgctxt "lowres" msgid "Autosave:" msgstr "Autogardado:" -#: gui/options.cpp:1198 +#: gui/options.cpp:1200 msgid "Keys" msgstr "Teclas" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "GUI Language:" msgstr "Idioma de interfaz:" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "Language of ScummVM GUI" msgstr "Idioma da interfaz de ScummVM" -#: gui/options.cpp:1364 +#: gui/options.cpp:1235 +msgid "Update check:" +msgstr "" + +#: gui/options.cpp:1235 +msgid "How often to check ScummVM updates" +msgstr "" + +#: gui/options.cpp:1247 +msgid "Check now" +msgstr "" + +#: gui/options.cpp:1382 msgid "You have to restart ScummVM before your changes will take effect." msgstr "Debes reiniciar ScummVM para que os cambios teńan efecto." -#: gui/options.cpp:1384 +#: gui/options.cpp:1415 msgid "The chosen directory cannot be written to. Please select another one." msgstr "Non é posible escribir no directorio elixido. Selecciona outro." -#: gui/options.cpp:1393 +#: gui/options.cpp:1424 msgid "Select directory for GUI themes" msgstr "Seleccionar directorio para temas de interfaz" -#: gui/options.cpp:1403 +#: gui/options.cpp:1434 msgid "Select directory for extra files" msgstr "Seleccionar directorio para ficheiros adicionais" -#: gui/options.cpp:1414 +#: gui/options.cpp:1445 msgid "Select directory for plugins" msgstr "Seleccionar directorio para complementos" -#: gui/options.cpp:1467 +#: gui/options.cpp:1498 msgid "" "The theme you selected does not support your current language. If you want " "to use this theme you need to switch to another language first." @@ -1240,39 +1254,60 @@ msgstr "Procesamento antidistorsión" msgid "Antialiased" msgstr "Antidistorsión" -#: gui/widget.cpp:323 gui/widget.cpp:325 gui/widget.cpp:331 gui/widget.cpp:333 +#: gui/updates-dialog.cpp:51 +msgid "" +"ScummVM now supports automatic check for updates\n" +"which requires access to the Internet.\n" +"\n" +"Would you like to enable this feature?" +msgstr "" + +#: gui/updates-dialog.cpp:55 +msgid "(You can always enable it in the options dialog on the Misc tab)" +msgstr "" + +#: gui/updates-dialog.cpp:92 +#, fuzzy +msgid "Check for updates automatically" +msgstr "Buscar actualizacións..." + +#: gui/updates-dialog.cpp:111 +msgid "Proceed" +msgstr "" + +#: gui/widget.cpp:327 gui/widget.cpp:329 gui/widget.cpp:335 gui/widget.cpp:337 msgid "Clear value" msgstr "Limpar valor" -#: base/main.cpp:237 +#: base/main.cpp:240 #, c-format msgid "Engine does not support debug level '%s'" msgstr "O motor non é compatible co nivel de depuración %s" -#: base/main.cpp:309 +#: base/main.cpp:312 msgid "Menu" msgstr "Menś" -#: base/main.cpp:312 backends/platform/symbian/src/SymbianActions.cpp:45 +#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:45 #: backends/platform/wince/CEActionsPocket.cpp:45 #: backends/platform/wince/CEActionsSmartphone.cpp:46 msgid "Skip" msgstr "Omitir" -#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:50 +#: base/main.cpp:318 backends/platform/symbian/src/SymbianActions.cpp:50 #: backends/platform/wince/CEActionsPocket.cpp:42 msgid "Pause" msgstr "Pausa" -#: base/main.cpp:318 +#: base/main.cpp:321 msgid "Skip line" msgstr "Omitir lińa" -#: base/main.cpp:510 +#: base/main.cpp:520 msgid "Error running game:" msgstr "Erro de execución do xogo:" -#: base/main.cpp:557 +#: base/main.cpp:567 msgid "Could not find any engine capable of running the selected game" msgstr "Non se puido atopar un motor para executar o xogo seleccionado" @@ -1367,16 +1402,33 @@ msgctxt "lowres" msgid "Hercules Amber" msgstr "Hercules įmbar" -#: engines/advancedDetector.cpp:317 +#: common/updates.cpp:58 +msgid "Daily" +msgstr "" + +#: common/updates.cpp:60 +msgid "Weekly" +msgstr "" + +#: common/updates.cpp:62 +msgid "Monthly" +msgstr "" + +#: common/updates.cpp:64 +#, fuzzy +msgid "<Bad value>" +msgstr "Limpar valor" + +#: engines/advancedDetector.cpp:334 #, c-format msgid "The game in '%s' seems to be unknown." msgstr "O xogo de %s semella ser descońecido." -#: engines/advancedDetector.cpp:318 +#: engines/advancedDetector.cpp:335 msgid "Please, report the following data to the ScummVM team along with name" msgstr "Facilita esta información ao equipo de ScummVM, xunto co nome" -#: engines/advancedDetector.cpp:320 +#: engines/advancedDetector.cpp:337 msgid "of the game you tried to add and its version/language/etc.:" msgstr "do xogo que tentaches engadir, xunto coa versión, lingua, etc.:" @@ -1384,11 +1436,11 @@ msgstr "do xogo que tentaches engadir, xunto coa versión, lingua, etc.:" msgid "~R~esume" msgstr "~R~etomar" -#: engines/dialogs.cpp:87 +#: engines/dialogs.cpp:87 engines/mohawk/dialogs.cpp:113 msgid "~L~oad" msgstr "~C~argar" -#: engines/dialogs.cpp:91 +#: engines/dialogs.cpp:91 engines/mohawk/dialogs.cpp:114 msgid "~S~ave" msgstr "~G~ardar" @@ -1417,9 +1469,9 @@ msgstr "~V~olver ao Iniciador" #: engines/avalanche/parser.cpp:1899 engines/cge/events.cpp:74 #: engines/cge2/events.cpp:67 engines/cruise/menu.cpp:212 #: engines/drascula/saveload.cpp:336 engines/dreamweb/saveload.cpp:261 -#: engines/hugo/file.cpp:298 engines/neverhood/menumodule.cpp:877 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/hugo/file.cpp:298 engines/mohawk/dialogs.cpp:121 +#: engines/neverhood/menumodule.cpp:877 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save game:" @@ -1434,9 +1486,10 @@ msgstr "Gardar partida:" #: engines/cge/events.cpp:74 engines/cge2/events.cpp:67 #: engines/cruise/menu.cpp:212 engines/drascula/saveload.cpp:336 #: engines/dreamweb/saveload.cpp:261 engines/hugo/file.cpp:298 -#: engines/neverhood/menumodule.cpp:877 engines/parallaction/saveload.cpp:212 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/scumm/dialogs.cpp:188 engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/mohawk/dialogs.cpp:121 engines/neverhood/menumodule.cpp:877 +#: engines/parallaction/saveload.cpp:212 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/scumm/dialogs.cpp:188 +#: engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save" @@ -1461,13 +1514,13 @@ msgstr "" "Erro ao gardar (%s)! Consulta o ficheiro README para obter información " "bįsica e mįis instrucións para acadar asistencia adicional." -#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:109 -#: engines/mohawk/dialogs.cpp:170 engines/tsage/dialogs.cpp:106 +#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:117 +#: engines/mohawk/dialogs.cpp:242 engines/tsage/dialogs.cpp:106 msgid "~O~K" msgstr "~A~ceptar" -#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:110 -#: engines/mohawk/dialogs.cpp:171 engines/tsage/dialogs.cpp:107 +#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:118 +#: engines/mohawk/dialogs.cpp:243 engines/tsage/dialogs.cpp:107 msgid "~C~ancel" msgstr "~C~ancelar" @@ -1623,11 +1676,11 @@ msgstr "FM-Towns Audio" msgid "PC-98 Audio" msgstr "PC-98 Audio" -#: audio/softsynth/mt32.cpp:200 +#: audio/softsynth/mt32.cpp:196 msgid "Initializing MT-32 Emulator" msgstr "Iniciando emulador de MT-32" -#: audio/softsynth/mt32.cpp:426 +#: audio/softsynth/mt32.cpp:434 msgid "MT-32 Emulator" msgstr "Emulador de MT-32" @@ -1744,11 +1797,11 @@ msgstr "O modo Autoarrastrar estį" msgid "Swipe three fingers to the right to toggle." msgstr "Arrastra tres dedos į dereita para cambiar o estado." -#: backends/graphics/opengl/opengl-graphics.cpp:119 +#: backends/graphics/opengl/opengl-graphics.cpp:126 msgid "OpenGL" msgstr "OpenGL" -#: backends/graphics/opengl/opengl-graphics.cpp:120 +#: backends/graphics/opengl/opengl-graphics.cpp:127 msgid "OpenGL (No filtering)" msgstr "OpenGL (Sen filtraxe)" @@ -2300,20 +2353,20 @@ msgstr "" "Non esquezas asignar unha tecla į acción Ocultar barra de ferramentas para " "ver o inventario completo" -#: backends/updates/macosx/macosx-updates.mm:67 +#: backends/updates/macosx/macosx-updates.mm:68 msgid "Check for Updates..." msgstr "Buscar actualizacións..." #: engines/agi/detection.cpp:147 engines/cine/detection.cpp:70 #: engines/drascula/detection.cpp:302 engines/dreamweb/detection.cpp:47 -#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:404 +#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:410 #: engines/toltecs/detection.cpp:200 engines/zvision/detection_tables.h:51 msgid "Use original save/load screens" msgstr "Empregar pantallas orixinais de gardado e carga" #: engines/agi/detection.cpp:148 engines/cine/detection.cpp:71 #: engines/drascula/detection.cpp:303 engines/dreamweb/detection.cpp:48 -#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:405 +#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:411 #: engines/toltecs/detection.cpp:201 msgid "Use the original save/load screens, instead of the ScummVM ones" msgstr "" @@ -2342,11 +2395,30 @@ msgstr "" "Activa a compatibilidade co rato. Permite o uso do rato para o movemento e " "os menśs do xogo." +#: engines/agi/detection.cpp:177 +#, fuzzy +msgid "Use Hercules hires font" +msgstr "Hercules verde" + +#: engines/agi/detection.cpp:178 +msgid "Uses Hercules hires font, when font file is available." +msgstr "" + +#: engines/agi/detection.cpp:187 +msgid "Pause when entering commands" +msgstr "" + +#: engines/agi/detection.cpp:188 +msgid "" +"Shows a command prompt window and pauses the game (like in SCI) instead of a " +"real-time prompt." +msgstr "" + #: engines/agi/saveload.cpp:777 engines/avalanche/parser.cpp:1887 #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore game:" @@ -2356,13 +2428,13 @@ msgstr "Restaurar xogo:" #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore" msgstr "Restaurar" -#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2377 +#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2374 #, c-format msgid "" "Failed to load game state from file:\n" @@ -2373,7 +2445,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2370 +#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2367 #, c-format msgid "" "Failed to save game state to file:\n" @@ -2384,7 +2456,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2388 +#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2385 #, c-format msgid "" "Successfully saved game state in file:\n" @@ -2631,29 +2703,39 @@ msgstr "" "\".\n" "\n" +#: engines/mohawk/detection.cpp:168 +msgid "Play the Myst fly by movie" +msgstr "" + +#: engines/mohawk/detection.cpp:169 +msgid "The Myst fly by movie was not played by the original engine." +msgstr "" + #. I18N: Option for fast scene switching -#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:167 +#: engines/mohawk/dialogs.cpp:96 engines/mohawk/dialogs.cpp:239 msgid "~Z~ip Mode Activated" msgstr "Modo ~C~omprimido activado" -#: engines/mohawk/dialogs.cpp:93 +#: engines/mohawk/dialogs.cpp:97 msgid "~T~ransitions Enabled" msgstr "~T~ransicións activadas" #. I18N: Drop book page -#: engines/mohawk/dialogs.cpp:95 +#: engines/mohawk/dialogs.cpp:99 msgid "~D~rop Page" msgstr "~D~eixar folla" -#: engines/mohawk/dialogs.cpp:99 -msgid "~S~how Map" +#: engines/mohawk/dialogs.cpp:103 +#, fuzzy +msgid "Show ~M~ap" msgstr "Mo~s~trar mapa" -#: engines/mohawk/dialogs.cpp:105 -msgid "~M~ain Menu" +#: engines/mohawk/dialogs.cpp:109 +#, fuzzy +msgid "Main Men~u~" msgstr "~M~enś principal" -#: engines/mohawk/dialogs.cpp:168 +#: engines/mohawk/dialogs.cpp:240 msgid "~W~ater Effect Enabled" msgstr "Efecto de ~a~uga activado" @@ -2775,37 +2857,37 @@ msgstr "Intro alternativa" msgid "Use an alternative game intro (CD version only)" msgstr "Emprega unha introdución alternativa para o xogo (só versión en CD)." -#: engines/sci/detection.cpp:374 +#: engines/sci/detection.cpp:380 msgid "Skip EGA dithering pass (full color backgrounds)" msgstr "Omitir interpolación de cores EGA (fondos de cor completa)" -#: engines/sci/detection.cpp:375 +#: engines/sci/detection.cpp:381 msgid "Skip dithering pass in EGA games, graphics are shown with full colors" msgstr "" "Omite a interpolación de cores EGA. Os grįficos móstranse con cores " "completas." -#: engines/sci/detection.cpp:384 +#: engines/sci/detection.cpp:390 msgid "Enable high resolution graphics" msgstr "Activar grįficos de alta resolución" -#: engines/sci/detection.cpp:385 +#: engines/sci/detection.cpp:391 msgid "Enable high resolution graphics/content" msgstr "Activa os grįficos ou o contido de alta resolución." -#: engines/sci/detection.cpp:394 +#: engines/sci/detection.cpp:400 msgid "Prefer digital sound effects" msgstr "Preferir efectos de son dixitais" -#: engines/sci/detection.cpp:395 +#: engines/sci/detection.cpp:401 msgid "Prefer digital sound effects instead of synthesized ones" msgstr "Dį preferencia aos efectos de son dixitais no canto dos sintéticos." -#: engines/sci/detection.cpp:414 +#: engines/sci/detection.cpp:420 msgid "Use IMF/Yamaha FB-01 for MIDI output" msgstr "Empregar IMF/Yamaha FB-01 para a saķda de MIDI" -#: engines/sci/detection.cpp:415 +#: engines/sci/detection.cpp:421 msgid "" "Use an IBM Music Feature card or a Yamaha FB-01 FM synth module for MIDI " "output" @@ -2813,36 +2895,45 @@ msgstr "" "Emprega unha tarxeta IBM Music Feature ou un módulo de sintetizador Yamaha " "FB-01 FM para a saķda de MIDI." -#: engines/sci/detection.cpp:425 +#: engines/sci/detection.cpp:431 msgid "Use CD audio" msgstr "Empregar son de CD" -#: engines/sci/detection.cpp:426 +#: engines/sci/detection.cpp:432 msgid "Use CD audio instead of in-game audio, if available" msgstr "Emprega son de CD no canto do do xogo, de ser o caso." -#: engines/sci/detection.cpp:436 +#: engines/sci/detection.cpp:442 msgid "Use Windows cursors" msgstr "Empregar cursores de Windows" -#: engines/sci/detection.cpp:437 +#: engines/sci/detection.cpp:443 msgid "" "Use the Windows cursors (smaller and monochrome) instead of the DOS ones" msgstr "" "Emprega os cursores de Windows (mįis pequenos e monocromos) no canto dos de " "DOS." -#: engines/sci/detection.cpp:447 +#: engines/sci/detection.cpp:453 msgid "Use silver cursors" msgstr "Empregar cursores prateados" -#: engines/sci/detection.cpp:448 +#: engines/sci/detection.cpp:454 msgid "" "Use the alternate set of silver cursors, instead of the normal golden ones" msgstr "" "Emprega o xogo de cursores prateados alternativo, no canto dos dourados " "normais." +#: engines/scumm/detection.cpp:1335 +#, fuzzy +msgid "Show Object Line" +msgstr "Mostrar etiquetas" + +#: engines/scumm/detection.cpp:1336 +msgid "Show the names of objects at the bottom of the screen" +msgstr "" + #: engines/scumm/dialogs.cpp:176 #, c-format msgid "Insert Disk %c and Press Button to Continue." @@ -3508,7 +3599,7 @@ msgstr "Volume de mśsica:" msgid "Subtitle speed: " msgstr "Velocidade dos subtķtulos:" -#: engines/scumm/scumm.cpp:1832 +#: engines/scumm/scumm.cpp:1829 #, c-format msgid "" "Native MIDI support requires the Roland Upgrade from LucasArts,\n" @@ -3517,7 +3608,7 @@ msgstr "" "A compatibilidade nativa con MIDI precisa a actualización de Roland\n" "de LucasArts, mais falla %s. Empregarase AdLib." -#: engines/scumm/scumm.cpp:2644 +#: engines/scumm/scumm.cpp:2645 msgid "" "Usually, Maniac Mansion would start now. But for that to work, the game " "files for Maniac Mansion have to be in the 'Maniac' directory inside the " @@ -3700,6 +3791,15 @@ msgstr "Mostrar etiquetas" msgid "Show labels for objects on mouse hover" msgstr "Mostra as etiquetas dos obxectos ao apuntar co rato." +#: engines/sword25/detection.cpp:46 +msgid "Use English speech" +msgstr "" + +#: engines/sword25/detection.cpp:47 +msgid "" +"Use English speech instead of German for every language other than German" +msgstr "" + #: engines/teenagent/resources.cpp:95 msgid "" "You're missing the 'teenagent.dat' file. Get it from the ScummVM website" diff --git a/po/hu_HU.po b/po/hu_HU.po index 02878f4fbc..1033063868 100644 --- a/po/hu_HU.po +++ b/po/hu_HU.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: ScummVM 1.3.0svn\n" "Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n" -"POT-Creation-Date: 2016-02-20 21:22+0000\n" -"PO-Revision-Date: 2016-02-21 06:24+0200\n" +"POT-Creation-Date: 2016-04-07 08:55+0100\n" +"PO-Revision-Date: 2016-04-08 07:38+0200\n" "Last-Translator: George Kormendi <grubycza@hotmail.com>\n" "Language-Team: Hungarian\n" "Language: Magyar\n" @@ -55,10 +55,11 @@ msgstr "Feljebb" #: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editrecorddialog.cpp:67 #: gui/filebrowser-dialog.cpp:64 gui/fluidsynth-dialog.cpp:152 #: gui/KeysDialog.cpp:43 gui/launcher.cpp:351 gui/massadd.cpp:95 -#: gui/options.cpp:1237 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 +#: gui/options.cpp:1255 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 #: gui/recorderdialog.cpp:156 gui/saveload-dialog.cpp:216 #: gui/saveload-dialog.cpp:276 gui/saveload-dialog.cpp:547 -#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 engines/engine.cpp:546 +#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 +#: gui/updates-dialog.cpp:113 engines/engine.cpp:546 #: backends/events/default/default-events.cpp:196 #: backends/events/default/default-events.cpp:218 #: backends/platform/wii/options.cpp:48 engines/drascula/saveload.cpp:49 @@ -172,7 +173,7 @@ msgstr "Szķnusz" msgid "Triangle" msgstr "Hįromszög" -#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1168 +#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1170 msgid "Misc" msgstr "Vegyes" @@ -206,12 +207,12 @@ msgstr "Minden FluidSynth beįllķtįs alapértelmezett értékre." #: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:352 #: gui/launcher.cpp:1050 gui/launcher.cpp:1054 gui/massadd.cpp:92 -#: gui/options.cpp:1238 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 +#: gui/options.cpp:1256 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 #: engines/engine.cpp:476 backends/platform/wii/options.cpp:47 #: backends/platform/wince/CELauncherDialog.cpp:54 #: engines/agos/animation.cpp:558 engines/drascula/saveload.cpp:49 #: engines/groovie/script.cpp:408 engines/parallaction/saveload.cpp:274 -#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1834 +#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1831 #: engines/scumm/players/player_v3m.cpp:130 #: engines/scumm/players/player_v5m.cpp:108 engines/sky/compact.cpp:131 #: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:524 @@ -240,15 +241,15 @@ msgstr "Bezįr" msgid "Mouse click" msgstr "Egérkattintįs" -#: gui/gui-manager.cpp:126 base/main.cpp:322 +#: gui/gui-manager.cpp:126 base/main.cpp:325 msgid "Display keyboard" msgstr "Billentyūzet beįllķtįsok" -#: gui/gui-manager.cpp:130 base/main.cpp:326 +#: gui/gui-manager.cpp:130 base/main.cpp:329 msgid "Remap keys" msgstr "Billentyūk įtįllķtįsa" -#: gui/gui-manager.cpp:133 base/main.cpp:329 engines/scumm/help.cpp:87 +#: gui/gui-manager.cpp:133 base/main.cpp:332 engines/scumm/help.cpp:87 msgid "Toggle fullscreen" msgstr "Teljesképernyõ kapcsoló" @@ -322,8 +323,8 @@ msgid "" msgstr "" "A jįték nyelve. Ne įllķtsd įt a pl. Spanyol nyelvū jįtékodat Angol nyelvre" -#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:87 -#: gui/options.cpp:735 gui/options.cpp:748 gui/options.cpp:1208 +#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:89 +#: gui/options.cpp:737 gui/options.cpp:750 gui/options.cpp:1210 #: audio/null.cpp:41 msgid "<default>" msgstr "<alapértelmezett>" @@ -345,11 +346,11 @@ msgstr "Platform:" msgid "Engine" msgstr "Motor" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "Graphics" msgstr "Grafika" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "GFX" msgstr "GFX" @@ -362,7 +363,7 @@ msgctxt "lowres" msgid "Override global graphic settings" msgstr "Globįlis grafikai beįllķtįsok felülbķrįlįsa" -#: gui/launcher.cpp:257 gui/options.cpp:1094 +#: gui/launcher.cpp:257 gui/options.cpp:1096 msgid "Audio" msgstr "Audió" @@ -375,11 +376,11 @@ msgctxt "lowres" msgid "Override global audio settings" msgstr "Globįlis audió beįllķtįsok felülbķrįlįsa" -#: gui/launcher.cpp:271 gui/options.cpp:1099 +#: gui/launcher.cpp:271 gui/options.cpp:1101 msgid "Volume" msgstr "Hangerõ" -#: gui/launcher.cpp:273 gui/options.cpp:1101 +#: gui/launcher.cpp:273 gui/options.cpp:1103 msgctxt "lowres" msgid "Volume" msgstr "Hangerõ" @@ -393,7 +394,7 @@ msgctxt "lowres" msgid "Override global volume settings" msgstr "Globįlis hangerõbeįllķtįsok felülbķrįlįsa" -#: gui/launcher.cpp:286 gui/options.cpp:1109 +#: gui/launcher.cpp:286 gui/options.cpp:1111 msgid "MIDI" msgstr "MIDI" @@ -406,7 +407,7 @@ msgctxt "lowres" msgid "Override global MIDI settings" msgstr "Globįlis MIDI beįllķtįsok felülbķrįlįsa" -#: gui/launcher.cpp:300 gui/options.cpp:1115 +#: gui/launcher.cpp:300 gui/options.cpp:1117 msgid "MT-32" msgstr "MT-32" @@ -419,11 +420,11 @@ msgctxt "lowres" msgid "Override global MT-32 settings" msgstr "Globįlis MT-32 beįllķtįsok felülbķrįlįsa" -#: gui/launcher.cpp:314 gui/options.cpp:1122 +#: gui/launcher.cpp:314 gui/options.cpp:1124 msgid "Paths" msgstr "Mappįk" -#: gui/launcher.cpp:316 gui/options.cpp:1124 +#: gui/launcher.cpp:316 gui/options.cpp:1126 msgctxt "lowres" msgid "Paths" msgstr "Mappįk" @@ -437,7 +438,7 @@ msgctxt "lowres" msgid "Game Path:" msgstr "Jįték Mappa:" -#: gui/launcher.cpp:330 gui/options.cpp:1148 +#: gui/launcher.cpp:330 gui/options.cpp:1150 msgid "Extra Path:" msgstr "Extra Mappa:" @@ -445,42 +446,42 @@ msgstr "Extra Mappa:" msgid "Specifies path to additional data used by the game" msgstr "Mappa kivįlasztįs a jįtékok kiegészķtõ fįjljaihoz" -#: gui/launcher.cpp:332 gui/options.cpp:1150 +#: gui/launcher.cpp:332 gui/options.cpp:1152 msgctxt "lowres" msgid "Extra Path:" msgstr "Extra Mappa:" -#: gui/launcher.cpp:339 gui/options.cpp:1132 +#: gui/launcher.cpp:339 gui/options.cpp:1134 msgid "Save Path:" msgstr "Mentés Mappa:" #: gui/launcher.cpp:339 gui/launcher.cpp:341 gui/launcher.cpp:342 -#: gui/options.cpp:1132 gui/options.cpp:1134 gui/options.cpp:1135 +#: gui/options.cpp:1134 gui/options.cpp:1136 gui/options.cpp:1137 msgid "Specifies where your saved games are put" msgstr "Jįtékmentések helyének meghatįrozįsa" -#: gui/launcher.cpp:341 gui/options.cpp:1134 +#: gui/launcher.cpp:341 gui/options.cpp:1136 msgctxt "lowres" msgid "Save Path:" msgstr "Mentés Mappa:" #: gui/launcher.cpp:360 gui/launcher.cpp:459 gui/launcher.cpp:517 -#: gui/launcher.cpp:571 gui/options.cpp:1143 gui/options.cpp:1151 -#: gui/options.cpp:1160 gui/options.cpp:1275 gui/options.cpp:1281 -#: gui/options.cpp:1289 gui/options.cpp:1319 gui/options.cpp:1325 -#: gui/options.cpp:1332 gui/options.cpp:1425 gui/options.cpp:1428 -#: gui/options.cpp:1440 +#: gui/launcher.cpp:571 gui/options.cpp:1145 gui/options.cpp:1153 +#: gui/options.cpp:1162 gui/options.cpp:1293 gui/options.cpp:1299 +#: gui/options.cpp:1307 gui/options.cpp:1337 gui/options.cpp:1343 +#: gui/options.cpp:1350 gui/options.cpp:1456 gui/options.cpp:1459 +#: gui/options.cpp:1471 msgctxt "path" msgid "None" msgstr "Nincs" #: gui/launcher.cpp:365 gui/launcher.cpp:465 gui/launcher.cpp:575 -#: gui/options.cpp:1269 gui/options.cpp:1313 gui/options.cpp:1431 +#: gui/options.cpp:1287 gui/options.cpp:1331 gui/options.cpp:1462 #: backends/platform/wii/options.cpp:56 msgid "Default" msgstr "Alapértelmezett" -#: gui/launcher.cpp:510 gui/options.cpp:1434 +#: gui/launcher.cpp:510 gui/options.cpp:1465 msgid "Select SoundFont" msgstr "SoundFont kivįlasztįs" @@ -492,7 +493,7 @@ msgstr "Jįtékok helyének kivįlasztįsa" msgid "Select additional game directory" msgstr "Vįlassz mappįt a jįték kiegészķtõkhöz" -#: gui/launcher.cpp:559 gui/options.cpp:1377 +#: gui/launcher.cpp:559 gui/options.cpp:1408 msgid "Select directory for saved games" msgstr "Vįlaszz jįtékmentéseknek mappįt" @@ -500,7 +501,7 @@ msgstr "Vįlaszz jįtékmentéseknek mappįt" msgid "This game ID is already taken. Please choose another one." msgstr "Ez a jįtékazonosķtó ID mįr foglalt, Vįlassz egy mįsikat." -#: gui/launcher.cpp:626 engines/dialogs.cpp:111 +#: gui/launcher.cpp:626 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:115 msgid "~Q~uit" msgstr "Kilépés" @@ -588,17 +589,18 @@ msgid "Search:" msgstr "Keresés:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214 -#: engines/mohawk/riven.cpp:718 engines/pegasus/pegasus.cpp:353 -#: engines/tsage/scenes.cpp:600 +#: engines/mohawk/dialogs.cpp:120 engines/mohawk/riven.cpp:718 +#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:600 msgid "Load game:" msgstr "Jįték betöltése:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 #: backends/platform/wince/CEActionsPocket.cpp:267 #: backends/platform/wince/CEActionsSmartphone.cpp:231 -#: engines/cruise/menu.cpp:214 engines/mohawk/riven.cpp:718 -#: engines/parallaction/saveload.cpp:197 engines/pegasus/pegasus.cpp:353 -#: engines/scumm/dialogs.cpp:189 engines/tsage/scenes.cpp:600 +#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:120 +#: engines/mohawk/riven.cpp:718 engines/parallaction/saveload.cpp:197 +#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:189 +#: engines/tsage/scenes.cpp:600 msgid "Load" msgstr "Betöltés" @@ -686,197 +688,197 @@ msgstr "Įtvįlt jįtékra" msgid "Fast replay" msgstr "Gyors visszajįtszįs" -#: gui/options.cpp:85 +#: gui/options.cpp:87 common/updates.cpp:56 msgid "Never" msgstr "Soha" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 5 mins" msgstr "5 percenként" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 10 mins" msgstr "10 percenként" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 15 mins" msgstr "15 percenként" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 30 mins" msgstr "30 percenként" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "8 kHz" msgstr "8 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "11 kHz" msgstr "11 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "22 kHz" msgstr "22 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "44 kHz" msgstr "44 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "48 kHz" msgstr "48 kHz" -#: gui/options.cpp:255 gui/options.cpp:479 gui/options.cpp:580 -#: gui/options.cpp:649 gui/options.cpp:857 +#: gui/options.cpp:257 gui/options.cpp:481 gui/options.cpp:582 +#: gui/options.cpp:651 gui/options.cpp:859 msgctxt "soundfont" msgid "None" msgstr "Nincs" -#: gui/options.cpp:389 +#: gui/options.cpp:391 msgid "Failed to apply some of the graphic options changes:" msgstr "Néhįny grafikus opció vįltoztatįsa sikertelen:" -#: gui/options.cpp:401 +#: gui/options.cpp:403 msgid "the video mode could not be changed." msgstr "a videómód nem vįltozott." -#: gui/options.cpp:407 +#: gui/options.cpp:409 msgid "the fullscreen setting could not be changed" msgstr "a teljesképernyõs beįllķtįs nem vįltozott" -#: gui/options.cpp:413 +#: gui/options.cpp:415 msgid "the aspect ratio setting could not be changed" msgstr "a képméretarįny beįllķtįsok nem vįltoztak" -#: gui/options.cpp:732 +#: gui/options.cpp:734 msgid "Graphics mode:" msgstr "Grafikus mód:" -#: gui/options.cpp:746 +#: gui/options.cpp:748 msgid "Render mode:" msgstr "Kirajzolįs mód:" -#: gui/options.cpp:746 gui/options.cpp:747 +#: gui/options.cpp:748 gui/options.cpp:749 msgid "Special dithering modes supported by some games" msgstr "Néhįny jįték tįmogatja a speciįlis įrnyalįsi módokat" -#: gui/options.cpp:758 +#: gui/options.cpp:760 #: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2316 msgid "Fullscreen mode" msgstr "Teljesképernyõs mód:" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Aspect ratio correction" msgstr "Képméretarįny korrekció" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Correct aspect ratio for 320x200 games" msgstr "Helyes oldalarįny a 320x200 jįtékokhoz" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Preferred Device:" msgstr "Elsõdleges eszköz:" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Music Device:" msgstr "Zene eszköz:" -#: gui/options.cpp:769 gui/options.cpp:771 +#: gui/options.cpp:771 gui/options.cpp:773 msgid "Specifies preferred sound device or sound card emulator" msgstr "Elsõdleges hangeszköz vagy hang emulįtor beįllķtįsok" -#: gui/options.cpp:769 gui/options.cpp:771 gui/options.cpp:772 +#: gui/options.cpp:771 gui/options.cpp:773 gui/options.cpp:774 msgid "Specifies output sound device or sound card emulator" msgstr "Hangeszköz vagy hangkįrtya emulįtor beįllķtįsok" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Preferred Dev.:" msgstr "Elsõdleges eszk.:" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Music Device:" msgstr "Zene eszköz:" -#: gui/options.cpp:798 +#: gui/options.cpp:800 msgid "AdLib emulator:" msgstr "AdLib emulįtor:" -#: gui/options.cpp:798 gui/options.cpp:799 +#: gui/options.cpp:800 gui/options.cpp:801 msgid "AdLib is used for music in many games" msgstr "AdLib meghajtót sok jįték hasznįlja zenéhez" -#: gui/options.cpp:809 +#: gui/options.cpp:811 msgid "Output rate:" msgstr "Kimeneti rįta:" -#: gui/options.cpp:809 gui/options.cpp:810 +#: gui/options.cpp:811 gui/options.cpp:812 msgid "" "Higher value specifies better sound quality but may be not supported by your " "soundcard" msgstr "" "Nagyobb értékek jobb hangminõséget adnak, de nem minden hangkįrtya tįmogatja" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "GM Device:" msgstr "GM Eszköz:" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "Specifies default sound device for General MIDI output" msgstr "Alapértelmezett hangeszköz General MIDI kimenethez" -#: gui/options.cpp:831 +#: gui/options.cpp:833 msgid "Don't use General MIDI music" msgstr "Ne hasznįlj General MIDI zenét" -#: gui/options.cpp:842 gui/options.cpp:908 +#: gui/options.cpp:844 gui/options.cpp:910 msgid "Use first available device" msgstr "Elsõ elérhetõ eszköz hasznįlata" -#: gui/options.cpp:854 +#: gui/options.cpp:856 msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:854 gui/options.cpp:856 gui/options.cpp:857 +#: gui/options.cpp:856 gui/options.cpp:858 gui/options.cpp:859 msgid "SoundFont is supported by some audio cards, FluidSynth and Timidity" msgstr "" "Néhįny hangkįrya, FluidSynth és Timidyti tįmogatja a SoundFont betöltését" -#: gui/options.cpp:856 +#: gui/options.cpp:858 msgctxt "lowres" msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Mixed AdLib/MIDI mode" msgstr "Vegyes AdLib/MIDI mód" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Use both MIDI and AdLib sound generation" msgstr "MIDI és AdLib hanggenerįtorok hasznįlata" -#: gui/options.cpp:865 +#: gui/options.cpp:867 msgid "MIDI gain:" msgstr "MIDI erõsķtés:" -#: gui/options.cpp:872 +#: gui/options.cpp:874 msgid "FluidSynth Settings" msgstr "FluidSynth Beįllķtįsa" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "MT-32 Device:" msgstr "MT-32 Eszköz:" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output" msgstr "Roland MT-32/LAPC1/CM32l/CM64 alapértelmezett hangeszközök beįllķtįsa" -#: gui/options.cpp:884 +#: gui/options.cpp:886 msgid "True Roland MT-32 (disable GM emulation)" msgstr "Roland MT-32 Hardver (GM emulįció tiltva)" -#: gui/options.cpp:884 gui/options.cpp:886 +#: gui/options.cpp:886 gui/options.cpp:888 msgid "" "Check if you want to use your real hardware Roland-compatible sound device " "connected to your computer" @@ -884,16 +886,16 @@ msgstr "" "Jelöld be, ha hardveres Roland-Kompatibilis hangeszköz van csatlakoztatva a " "gépedhez és hasznįlni akarod" -#: gui/options.cpp:886 +#: gui/options.cpp:888 msgctxt "lowres" msgid "True Roland MT-32 (no GM emulation)" msgstr "Roland MT-32 Hardver (GM emulįció nincs)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "Roland GS Device (enable MT-32 mappings)" msgstr "Roland GS eszköz (MT-32 mapping engedélyezés)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "" "Check if you want to enable patch mappings to emulate an MT-32 on a Roland " "GS device" @@ -901,169 +903,181 @@ msgstr "" "Ellenõrzés ha engedélyezni akarod az emulįlt MT-32 Folt leképezést a Roland " "GS eszközön" -#: gui/options.cpp:898 +#: gui/options.cpp:900 msgid "Don't use Roland MT-32 music" msgstr "Ne hasznįlj Roland MT-32 zenét" -#: gui/options.cpp:925 +#: gui/options.cpp:927 msgid "Text and Speech:" msgstr "Szöveg és beszéd:" -#: gui/options.cpp:929 gui/options.cpp:939 +#: gui/options.cpp:931 gui/options.cpp:941 msgid "Speech" msgstr "Csak beszéd" -#: gui/options.cpp:930 gui/options.cpp:940 +#: gui/options.cpp:932 gui/options.cpp:942 msgid "Subtitles" msgstr "Csak felirat" -#: gui/options.cpp:931 +#: gui/options.cpp:933 msgid "Both" msgstr "Mind" -#: gui/options.cpp:933 +#: gui/options.cpp:935 msgid "Subtitle speed:" msgstr "Felirat sebesség:" -#: gui/options.cpp:935 +#: gui/options.cpp:937 msgctxt "lowres" msgid "Text and Speech:" msgstr "Felirat és beszéd:" -#: gui/options.cpp:939 +#: gui/options.cpp:941 msgid "Spch" msgstr "Besz" -#: gui/options.cpp:940 +#: gui/options.cpp:942 msgid "Subs" msgstr "Text" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgctxt "lowres" msgid "Both" msgstr "Mind" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgid "Show subtitles and play speech" msgstr "Hang és feliratok megjelenķtése" -#: gui/options.cpp:943 +#: gui/options.cpp:945 msgctxt "lowres" msgid "Subtitle speed:" msgstr "Felirat sebesség:" -#: gui/options.cpp:959 +#: gui/options.cpp:961 msgid "Music volume:" msgstr "Zene hangerõ:" -#: gui/options.cpp:961 +#: gui/options.cpp:963 msgctxt "lowres" msgid "Music volume:" msgstr "Zene hangerõ:" -#: gui/options.cpp:968 +#: gui/options.cpp:970 msgid "Mute All" msgstr "Összes némķtįsa" -#: gui/options.cpp:971 +#: gui/options.cpp:973 msgid "SFX volume:" msgstr "SFX hangerõ:" -#: gui/options.cpp:971 gui/options.cpp:973 gui/options.cpp:974 +#: gui/options.cpp:973 gui/options.cpp:975 gui/options.cpp:976 msgid "Special sound effects volume" msgstr "Speciįlis hangeffektusok hangereje" -#: gui/options.cpp:973 +#: gui/options.cpp:975 msgctxt "lowres" msgid "SFX volume:" msgstr "SFX hangerõ:" -#: gui/options.cpp:981 +#: gui/options.cpp:983 msgid "Speech volume:" msgstr "Beszéd hangerõ:" -#: gui/options.cpp:983 +#: gui/options.cpp:985 msgctxt "lowres" msgid "Speech volume:" msgstr "Beszéd hangerõ:" -#: gui/options.cpp:1140 +#: gui/options.cpp:1142 msgid "Theme Path:" msgstr "Téma Mappa:" -#: gui/options.cpp:1142 +#: gui/options.cpp:1144 msgctxt "lowres" msgid "Theme Path:" msgstr "Téma Mappa:" -#: gui/options.cpp:1148 gui/options.cpp:1150 gui/options.cpp:1151 +#: gui/options.cpp:1150 gui/options.cpp:1152 gui/options.cpp:1153 msgid "Specifies path to additional data used by all games or ScummVM" msgstr "Minden jéték és ScummVM kiegészķtõ fįjljainak mappįja:" -#: gui/options.cpp:1157 +#: gui/options.cpp:1159 msgid "Plugins Path:" msgstr "Plugin Mappa:" -#: gui/options.cpp:1159 +#: gui/options.cpp:1161 msgctxt "lowres" msgid "Plugins Path:" msgstr "Plugin Mappa:" -#: gui/options.cpp:1170 +#: gui/options.cpp:1172 msgctxt "lowres" msgid "Misc" msgstr "Vegyes" -#: gui/options.cpp:1172 +#: gui/options.cpp:1174 msgid "Theme:" msgstr "Téma:" -#: gui/options.cpp:1176 +#: gui/options.cpp:1178 msgid "GUI Renderer:" msgstr "GUI Renderelõ:" -#: gui/options.cpp:1188 +#: gui/options.cpp:1190 msgid "Autosave:" msgstr "Automentés:" -#: gui/options.cpp:1190 +#: gui/options.cpp:1192 msgctxt "lowres" msgid "Autosave:" msgstr "Automentés:" -#: gui/options.cpp:1198 +#: gui/options.cpp:1200 msgid "Keys" msgstr "Billentyūk" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "GUI Language:" msgstr "GUI nyelve:" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "Language of ScummVM GUI" msgstr "A ScummVM GUI nyelve" -#: gui/options.cpp:1364 +#: gui/options.cpp:1235 +msgid "Update check:" +msgstr "Frissķtés ellenõrzés:" + +#: gui/options.cpp:1235 +msgid "How often to check ScummVM updates" +msgstr "Milyen gyakran ellenõrizze a ScummVM frissķtéseket" + +#: gui/options.cpp:1247 +msgid "Check now" +msgstr "Ellenõrzés most" + +#: gui/options.cpp:1382 msgid "You have to restart ScummVM before your changes will take effect." msgstr "Indķtsd śjra a ScummVM-et a vįltozįsok érvényesķtéséhez." -#: gui/options.cpp:1384 +#: gui/options.cpp:1415 msgid "The chosen directory cannot be written to. Please select another one." msgstr "A kivįlasztott mappįba nem lehet ķrni, vįlassz egy mįsikat" -#: gui/options.cpp:1393 +#: gui/options.cpp:1424 msgid "Select directory for GUI themes" msgstr "GUI téma mappa kivįlasztįsa" -#: gui/options.cpp:1403 +#: gui/options.cpp:1434 msgid "Select directory for extra files" msgstr "Mappa vįlasztįs az extra fįjloknak" -#: gui/options.cpp:1414 +#: gui/options.cpp:1445 msgid "Select directory for plugins" msgstr "Plugin mappa kivįlasztįsa" -#: gui/options.cpp:1467 +#: gui/options.cpp:1498 msgid "" "The theme you selected does not support your current language. If you want " "to use this theme you need to switch to another language first." @@ -1236,39 +1250,63 @@ msgstr "Élsimķtįsos leképezõ" msgid "Antialiased" msgstr "Élsimķtott" -#: gui/widget.cpp:323 gui/widget.cpp:325 gui/widget.cpp:331 gui/widget.cpp:333 +#: gui/updates-dialog.cpp:51 +msgid "" +"ScummVM now supports automatic check for updates\n" +"which requires access to the Internet.\n" +"\n" +"Would you like to enable this feature?" +msgstr "" +"ScummVM mįr tįmogatja az automatikus frissķtéseket\n" +"amelyhez internet hozzįférés szükséges.\n" +"\n" +"Szeretné, engedélyezni ezt a funkciót?" + +#: gui/updates-dialog.cpp:55 +msgid "(You can always enable it in the options dialog on the Misc tab)" +msgstr "(Bįrmikor engedélyezheti a beįllķtįsok ablakban az Egyéb fülnél)" + +#: gui/updates-dialog.cpp:92 +msgid "Check for updates automatically" +msgstr "Frissķtések automatikus keresése" + +#: gui/updates-dialog.cpp:111 +msgid "Proceed" +msgstr "Folyamatban" + +#: gui/widget.cpp:327 gui/widget.cpp:329 gui/widget.cpp:335 gui/widget.cpp:337 msgid "Clear value" msgstr "Érték törlése" -#: base/main.cpp:237 +#: base/main.cpp:240 #, c-format msgid "Engine does not support debug level '%s'" msgstr "A motor nem tįmogatja a '%s' debug szintet" -#: base/main.cpp:309 +#: base/main.cpp:312 msgid "Menu" msgstr "Menü" -#: base/main.cpp:312 backends/platform/symbian/src/SymbianActions.cpp:45 +#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:45 #: backends/platform/wince/CEActionsPocket.cpp:45 #: backends/platform/wince/CEActionsSmartphone.cpp:46 msgid "Skip" msgstr "Tovįbb" -#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:50 +#: base/main.cpp:318 backends/platform/symbian/src/SymbianActions.cpp:50 #: backends/platform/wince/CEActionsPocket.cpp:42 msgid "Pause" msgstr "Szünet" -#: base/main.cpp:318 +#: base/main.cpp:321 msgid "Skip line" msgstr "Sor įtlépése" -#: base/main.cpp:510 +#: base/main.cpp:520 msgid "Error running game:" msgstr "Hiba a jįték futtatįsakor:" -#: base/main.cpp:557 +#: base/main.cpp:567 msgid "Could not find any engine capable of running the selected game" msgstr "Nem talįlható olyan jįtékmotor ami a vįlasztott jįtékot tįmogatja" @@ -1363,16 +1401,32 @@ msgctxt "lowres" msgid "Hercules Amber" msgstr "Hercules Sįrga" -#: engines/advancedDetector.cpp:317 +#: common/updates.cpp:58 +msgid "Daily" +msgstr "Naponta" + +#: common/updates.cpp:60 +msgid "Weekly" +msgstr "Hetente" + +#: common/updates.cpp:62 +msgid "Monthly" +msgstr "Havonta" + +#: common/updates.cpp:64 +msgid "<Bad value>" +msgstr "<Rossz érték>" + +#: engines/advancedDetector.cpp:334 #, c-format msgid "The game in '%s' seems to be unknown." msgstr "A '%s' jįték ismeretlennek tūnik." -#: engines/advancedDetector.cpp:318 +#: engines/advancedDetector.cpp:335 msgid "Please, report the following data to the ScummVM team along with name" msgstr "Kérlek jelezd a ScummVM csapatnak a következõ adatokat, együtt a jįték" -#: engines/advancedDetector.cpp:320 +#: engines/advancedDetector.cpp:337 msgid "of the game you tried to add and its version/language/etc.:" msgstr "cķmével és megbķzható adataival jįtékverzió/nyelv(ek)/stb.:" @@ -1380,11 +1434,11 @@ msgstr "cķmével és megbķzható adataival jįtékverzió/nyelv(ek)/stb.:" msgid "~R~esume" msgstr "Folytatįs" -#: engines/dialogs.cpp:87 +#: engines/dialogs.cpp:87 engines/mohawk/dialogs.cpp:113 msgid "~L~oad" msgstr "~B~etöltés" -#: engines/dialogs.cpp:91 +#: engines/dialogs.cpp:91 engines/mohawk/dialogs.cpp:114 msgid "~S~ave" msgstr "Mentés" @@ -1413,9 +1467,9 @@ msgstr "Visszatérés az indķtóba" #: engines/avalanche/parser.cpp:1899 engines/cge/events.cpp:74 #: engines/cge2/events.cpp:67 engines/cruise/menu.cpp:212 #: engines/drascula/saveload.cpp:336 engines/dreamweb/saveload.cpp:261 -#: engines/hugo/file.cpp:298 engines/neverhood/menumodule.cpp:877 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/hugo/file.cpp:298 engines/mohawk/dialogs.cpp:121 +#: engines/neverhood/menumodule.cpp:877 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save game:" @@ -1430,9 +1484,10 @@ msgstr "Jįték mentése:" #: engines/cge/events.cpp:74 engines/cge2/events.cpp:67 #: engines/cruise/menu.cpp:212 engines/drascula/saveload.cpp:336 #: engines/dreamweb/saveload.cpp:261 engines/hugo/file.cpp:298 -#: engines/neverhood/menumodule.cpp:877 engines/parallaction/saveload.cpp:212 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/scumm/dialogs.cpp:188 engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/mohawk/dialogs.cpp:121 engines/neverhood/menumodule.cpp:877 +#: engines/parallaction/saveload.cpp:212 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/scumm/dialogs.cpp:188 +#: engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save" @@ -1456,13 +1511,13 @@ msgstr "" "(%s) jįtékmentés nem sikerült!. Olvassd el a README-t az alap " "informįciókról, és hogy hogyan segķthetsz a késõbbiekben." -#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:109 -#: engines/mohawk/dialogs.cpp:170 engines/tsage/dialogs.cpp:106 +#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:117 +#: engines/mohawk/dialogs.cpp:242 engines/tsage/dialogs.cpp:106 msgid "~O~K" msgstr "~O~K" -#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:110 -#: engines/mohawk/dialogs.cpp:171 engines/tsage/dialogs.cpp:107 +#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:118 +#: engines/mohawk/dialogs.cpp:243 engines/tsage/dialogs.cpp:107 msgid "~C~ancel" msgstr "~M~égse" @@ -1616,11 +1671,11 @@ msgstr "FM-Towns Hang" msgid "PC-98 Audio" msgstr "PC-98 Hang" -#: audio/softsynth/mt32.cpp:200 +#: audio/softsynth/mt32.cpp:196 msgid "Initializing MT-32 Emulator" msgstr "MT-32 Emulįtor inicializįlįsa" -#: audio/softsynth/mt32.cpp:426 +#: audio/softsynth/mt32.cpp:434 msgid "MT-32 Emulator" msgstr "MT-32 Emulįtor" @@ -1737,11 +1792,11 @@ msgstr "Auto-hśz módban van" msgid "Swipe three fingers to the right to toggle." msgstr "Üsd hįrom śjjal hogy biztosan vįltson." -#: backends/graphics/opengl/opengl-graphics.cpp:119 +#: backends/graphics/opengl/opengl-graphics.cpp:126 msgid "OpenGL" msgstr "OpenGL" -#: backends/graphics/opengl/opengl-graphics.cpp:120 +#: backends/graphics/opengl/opengl-graphics.cpp:127 msgid "OpenGL (No filtering)" msgstr "OpenGL (Nincs szūrés)" @@ -2291,20 +2346,20 @@ msgstr "" "Ne felejts billentyūt tįrsķtani az 'Eszköztįr rejtés' mūvelethez, hogy lįsd " "a teljes listįt" -#: backends/updates/macosx/macosx-updates.mm:67 +#: backends/updates/macosx/macosx-updates.mm:68 msgid "Check for Updates..." msgstr "Frissķtések keresése..." #: engines/agi/detection.cpp:147 engines/cine/detection.cpp:70 #: engines/drascula/detection.cpp:302 engines/dreamweb/detection.cpp:47 -#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:404 +#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:410 #: engines/toltecs/detection.cpp:200 engines/zvision/detection_tables.h:51 msgid "Use original save/load screens" msgstr "Eredeti ment/tölt képernyõk hasznįlata" #: engines/agi/detection.cpp:148 engines/cine/detection.cpp:71 #: engines/drascula/detection.cpp:303 engines/dreamweb/detection.cpp:48 -#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:405 +#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:411 #: engines/toltecs/detection.cpp:201 msgid "Use the original save/load screens, instead of the ScummVM ones" msgstr "Az eredeti mentés/betöltés képernyõ hasznįlata a ScummVM képek helyett" @@ -2332,11 +2387,31 @@ msgstr "" "Egérmód engélyezve. Lehetõvé teszi az egérrel mozgatįst jįtékban és " "jįtékmenükben." +#: engines/agi/detection.cpp:177 +msgid "Use Hercules hires font" +msgstr "Hercules hires font hasznįlata" + +#: engines/agi/detection.cpp:178 +msgid "Uses Hercules hires font, when font file is available." +msgstr "Hercules hires font hasznįlata, ha a font fįjl elérhetõ." + +#: engines/agi/detection.cpp:187 +msgid "Pause when entering commands" +msgstr "Szünet a parancsok beķrįsakor" + +#: engines/agi/detection.cpp:188 +msgid "" +"Shows a command prompt window and pauses the game (like in SCI) instead of a " +"real-time prompt." +msgstr "" +"Parancssor ablak megjelenķtése és jįték szüneteltetése (mint a SCI) valós " +"idejü parancs helyett." + #: engines/agi/saveload.cpp:777 engines/avalanche/parser.cpp:1887 #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore game:" @@ -2346,13 +2421,13 @@ msgstr "Jįtékmenet visszaįllķtįsa:" #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore" msgstr "Visszaįllķtįs" -#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2377 +#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2374 #, c-format msgid "" "Failed to load game state from file:\n" @@ -2363,7 +2438,7 @@ msgstr "" "\n" "%s fįjlból nem sikerült" -#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2370 +#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2367 #, c-format msgid "" "Failed to save game state to file:\n" @@ -2374,7 +2449,7 @@ msgstr "" "\n" "%s fįjlba nem sikerült" -#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2388 +#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2385 #, c-format msgid "" "Successfully saved game state in file:\n" @@ -2619,29 +2694,37 @@ msgstr "" "utasķtįst.\n" "\n" +#: engines/mohawk/detection.cpp:168 +msgid "Play the Myst fly by movie" +msgstr "Myst bevezetõ film lejįtszįsa" + +#: engines/mohawk/detection.cpp:169 +msgid "The Myst fly by movie was not played by the original engine." +msgstr "A Myst bevezetõ filmet nem jįtszotta le az eredeti motor." + #. I18N: Option for fast scene switching -#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:167 +#: engines/mohawk/dialogs.cpp:96 engines/mohawk/dialogs.cpp:239 msgid "~Z~ip Mode Activated" msgstr "~Z~ip Mód aktivįlva" -#: engines/mohawk/dialogs.cpp:93 +#: engines/mohawk/dialogs.cpp:97 msgid "~T~ransitions Enabled" msgstr "~Į~tmenetek engedélyezve" #. I18N: Drop book page -#: engines/mohawk/dialogs.cpp:95 +#: engines/mohawk/dialogs.cpp:99 msgid "~D~rop Page" msgstr "Oldal~D~obįs" -#: engines/mohawk/dialogs.cpp:99 -msgid "~S~how Map" -msgstr "~S~ Térkép" +#: engines/mohawk/dialogs.cpp:103 +msgid "Show ~M~ap" +msgstr "~M~ Térkép nézet" -#: engines/mohawk/dialogs.cpp:105 -msgid "~M~ain Menu" -msgstr "Fõ~M~enü" +#: engines/mohawk/dialogs.cpp:109 +msgid "Main Men~u~" +msgstr "Fõ Menü ~u~" -#: engines/mohawk/dialogs.cpp:168 +#: engines/mohawk/dialogs.cpp:240 msgid "~W~ater Effect Enabled" msgstr "Vķzeffektus engedélyezve" @@ -2763,36 +2846,36 @@ msgstr "Alternatķv intro" msgid "Use an alternative game intro (CD version only)" msgstr "Alternatķv jįtékintro hasznįlata (csak CD verziónįl)" -#: engines/sci/detection.cpp:374 +#: engines/sci/detection.cpp:380 msgid "Skip EGA dithering pass (full color backgrounds)" msgstr "EGA szķnmodulįció įtugrįsa (Szķnes hįttereknél)" -#: engines/sci/detection.cpp:375 +#: engines/sci/detection.cpp:381 msgid "Skip dithering pass in EGA games, graphics are shown with full colors" msgstr "" "Szķnmodulįció įtugrįsa EGA jįtékoknįl, grafikįk teljes szķnben lįthatók" -#: engines/sci/detection.cpp:384 +#: engines/sci/detection.cpp:390 msgid "Enable high resolution graphics" msgstr "Nagy felbontįsś grafika engedélyezése" -#: engines/sci/detection.cpp:385 +#: engines/sci/detection.cpp:391 msgid "Enable high resolution graphics/content" msgstr "Nagy felbontįsś grafika/tartalom engedélyezése" -#: engines/sci/detection.cpp:394 +#: engines/sci/detection.cpp:400 msgid "Prefer digital sound effects" msgstr "Digitįlis hangeffektusok elõnyben" -#: engines/sci/detection.cpp:395 +#: engines/sci/detection.cpp:401 msgid "Prefer digital sound effects instead of synthesized ones" msgstr "Digitįlis hanghatįsok elõnyben a szintetizįltakkal szemben" -#: engines/sci/detection.cpp:414 +#: engines/sci/detection.cpp:420 msgid "Use IMF/Yamaha FB-01 for MIDI output" msgstr "IMF/Yamaha FB-01 hasznįlata MIDI kimentre" -#: engines/sci/detection.cpp:415 +#: engines/sci/detection.cpp:421 msgid "" "Use an IBM Music Feature card or a Yamaha FB-01 FM synth module for MIDI " "output" @@ -2800,32 +2883,40 @@ msgstr "" "IBM Music Feature kįrtya vagy Yamaha FB-01 FM szintetizįtor modul hasznįlata " "MIDI kimenetre" -#: engines/sci/detection.cpp:425 +#: engines/sci/detection.cpp:431 msgid "Use CD audio" msgstr "CD audió hasznįlata" -#: engines/sci/detection.cpp:426 +#: engines/sci/detection.cpp:432 msgid "Use CD audio instead of in-game audio, if available" msgstr "CD audió hasznįlata a jįtékban lévõvel szemben, ha elérhetõ" -#: engines/sci/detection.cpp:436 +#: engines/sci/detection.cpp:442 msgid "Use Windows cursors" msgstr "Windows kurzorok hasznįlata" -#: engines/sci/detection.cpp:437 +#: engines/sci/detection.cpp:443 msgid "" "Use the Windows cursors (smaller and monochrome) instead of the DOS ones" msgstr "Windows kurzorok hasznįlata (kisebb és monokróm) a DOS-osok helyett " -#: engines/sci/detection.cpp:447 +#: engines/sci/detection.cpp:453 msgid "Use silver cursors" msgstr "Ezüst kurzor hasznįlata" -#: engines/sci/detection.cpp:448 +#: engines/sci/detection.cpp:454 msgid "" "Use the alternate set of silver cursors, instead of the normal golden ones" msgstr "Alternatķv ezüst kurzorszett hasznįlata, a normįl arany helyett" +#: engines/scumm/detection.cpp:1335 +msgid "Show Object Line" +msgstr "Tįrgynév sor lįtható" + +#: engines/scumm/detection.cpp:1336 +msgid "Show the names of objects at the bottom of the screen" +msgstr "Tįrgyak neveinek megjelenķtése a képernyõ aljįn" + #: engines/scumm/dialogs.cpp:176 #, c-format msgid "Insert Disk %c and Press Button to Continue." @@ -3491,7 +3582,7 @@ msgstr "Zene hangereje:" msgid "Subtitle speed: " msgstr "Felirat sebesség:" -#: engines/scumm/scumm.cpp:1832 +#: engines/scumm/scumm.cpp:1829 #, c-format msgid "" "Native MIDI support requires the Roland Upgrade from LucasArts,\n" @@ -3500,7 +3591,7 @@ msgstr "" "Native MIDI tįmogatįshoz kell a Roland Upgrade a LucasArts-tól,\n" "a %s hiįnyzik. AdLib-ot hasznįlok helyette." -#: engines/scumm/scumm.cpp:2644 +#: engines/scumm/scumm.cpp:2645 msgid "" "Usually, Maniac Mansion would start now. But for that to work, the game " "files for Maniac Mansion have to be in the 'Maniac' directory inside the " @@ -3682,6 +3773,16 @@ msgstr "Tįrgycimke lįtható" msgid "Show labels for objects on mouse hover" msgstr "Tįrgycimke lįtható ha az egér felette van" +#: engines/sword25/detection.cpp:46 +msgid "Use English speech" +msgstr "Angol beszéd hasznįlata" + +#: engines/sword25/detection.cpp:47 +msgid "" +"Use English speech instead of German for every language other than German" +msgstr "" +"Angol beszéd hasznįlata a Német helyett minden nyelven, a Németen kķvül" + #: engines/teenagent/resources.cpp:95 msgid "" "You're missing the 'teenagent.dat' file. Get it from the ScummVM website" diff --git a/po/it_IT.po b/po/it_IT.po index 880c0ca7df..434dd6b46e 100644 --- a/po/it_IT.po +++ b/po/it_IT.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ScummVM 1.3.0svn\n" "Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n" -"POT-Creation-Date: 2016-02-20 21:22+0000\n" +"POT-Creation-Date: 2016-04-07 08:55+0100\n" "PO-Revision-Date: 2014-07-03 17:59-0600\n" "Last-Translator: Matteo 'Maff' Angelino <matteo.maff at gmail dot com>\n" "Language-Team: Italian\n" @@ -53,10 +53,11 @@ msgstr "Su" #: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editrecorddialog.cpp:67 #: gui/filebrowser-dialog.cpp:64 gui/fluidsynth-dialog.cpp:152 #: gui/KeysDialog.cpp:43 gui/launcher.cpp:351 gui/massadd.cpp:95 -#: gui/options.cpp:1237 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 +#: gui/options.cpp:1255 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 #: gui/recorderdialog.cpp:156 gui/saveload-dialog.cpp:216 #: gui/saveload-dialog.cpp:276 gui/saveload-dialog.cpp:547 -#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 engines/engine.cpp:546 +#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 +#: gui/updates-dialog.cpp:113 engines/engine.cpp:546 #: backends/events/default/default-events.cpp:196 #: backends/events/default/default-events.cpp:218 #: backends/platform/wii/options.cpp:48 engines/drascula/saveload.cpp:49 @@ -171,7 +172,7 @@ msgstr "Seno" msgid "Triangle" msgstr "Triangolo" -#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1168 +#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1170 msgid "Misc" msgstr "Varie" @@ -206,12 +207,12 @@ msgstr "" #: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:352 #: gui/launcher.cpp:1050 gui/launcher.cpp:1054 gui/massadd.cpp:92 -#: gui/options.cpp:1238 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 +#: gui/options.cpp:1256 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 #: engines/engine.cpp:476 backends/platform/wii/options.cpp:47 #: backends/platform/wince/CELauncherDialog.cpp:54 #: engines/agos/animation.cpp:558 engines/drascula/saveload.cpp:49 #: engines/groovie/script.cpp:408 engines/parallaction/saveload.cpp:274 -#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1834 +#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1831 #: engines/scumm/players/player_v3m.cpp:130 #: engines/scumm/players/player_v5m.cpp:108 engines/sky/compact.cpp:131 #: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:524 @@ -241,15 +242,15 @@ msgstr "Chiudi" msgid "Mouse click" msgstr "Clic del mouse" -#: gui/gui-manager.cpp:126 base/main.cpp:322 +#: gui/gui-manager.cpp:126 base/main.cpp:325 msgid "Display keyboard" msgstr "Mostra tastiera" -#: gui/gui-manager.cpp:130 base/main.cpp:326 +#: gui/gui-manager.cpp:130 base/main.cpp:329 msgid "Remap keys" msgstr "Riprogramma tasti" -#: gui/gui-manager.cpp:133 base/main.cpp:329 engines/scumm/help.cpp:87 +#: gui/gui-manager.cpp:133 base/main.cpp:332 engines/scumm/help.cpp:87 msgid "Toggle fullscreen" msgstr "Attiva / disattiva schermo intero" @@ -324,8 +325,8 @@ msgid "" msgstr "" "Lingua del gioco. Un gioco inglese non potrą risultare tradotto in italiano" -#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:87 -#: gui/options.cpp:735 gui/options.cpp:748 gui/options.cpp:1208 +#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:89 +#: gui/options.cpp:737 gui/options.cpp:750 gui/options.cpp:1210 #: audio/null.cpp:41 msgid "<default>" msgstr "<predefinito>" @@ -347,11 +348,11 @@ msgstr "Piattaf.:" msgid "Engine" msgstr "Motore" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "Graphics" msgstr "Grafica" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "GFX" msgstr "Grafica" @@ -364,7 +365,7 @@ msgctxt "lowres" msgid "Override global graphic settings" msgstr "Ignora le impostazioni grafiche globali" -#: gui/launcher.cpp:257 gui/options.cpp:1094 +#: gui/launcher.cpp:257 gui/options.cpp:1096 msgid "Audio" msgstr "Audio" @@ -377,11 +378,11 @@ msgctxt "lowres" msgid "Override global audio settings" msgstr "Ignora le impostazioni audio globali" -#: gui/launcher.cpp:271 gui/options.cpp:1099 +#: gui/launcher.cpp:271 gui/options.cpp:1101 msgid "Volume" msgstr "Volume" -#: gui/launcher.cpp:273 gui/options.cpp:1101 +#: gui/launcher.cpp:273 gui/options.cpp:1103 msgctxt "lowres" msgid "Volume" msgstr "Volume" @@ -395,7 +396,7 @@ msgctxt "lowres" msgid "Override global volume settings" msgstr "Ignora le impostazioni globali di volume" -#: gui/launcher.cpp:286 gui/options.cpp:1109 +#: gui/launcher.cpp:286 gui/options.cpp:1111 msgid "MIDI" msgstr "MIDI" @@ -408,7 +409,7 @@ msgctxt "lowres" msgid "Override global MIDI settings" msgstr "Ignora le impostazioni MIDI globali" -#: gui/launcher.cpp:300 gui/options.cpp:1115 +#: gui/launcher.cpp:300 gui/options.cpp:1117 msgid "MT-32" msgstr "MT-32" @@ -421,11 +422,11 @@ msgctxt "lowres" msgid "Override global MT-32 settings" msgstr "Ignora le impostazioni MT-32 globali" -#: gui/launcher.cpp:314 gui/options.cpp:1122 +#: gui/launcher.cpp:314 gui/options.cpp:1124 msgid "Paths" msgstr "Percorsi" -#: gui/launcher.cpp:316 gui/options.cpp:1124 +#: gui/launcher.cpp:316 gui/options.cpp:1126 msgctxt "lowres" msgid "Paths" msgstr "Perc." @@ -439,7 +440,7 @@ msgctxt "lowres" msgid "Game Path:" msgstr "Perc. gioco:" -#: gui/launcher.cpp:330 gui/options.cpp:1148 +#: gui/launcher.cpp:330 gui/options.cpp:1150 msgid "Extra Path:" msgstr "Percorso extra:" @@ -447,42 +448,42 @@ msgstr "Percorso extra:" msgid "Specifies path to additional data used by the game" msgstr "Specifica il percorso di ulteriori dati usati dal gioco" -#: gui/launcher.cpp:332 gui/options.cpp:1150 +#: gui/launcher.cpp:332 gui/options.cpp:1152 msgctxt "lowres" msgid "Extra Path:" msgstr "Perc. extra:" -#: gui/launcher.cpp:339 gui/options.cpp:1132 +#: gui/launcher.cpp:339 gui/options.cpp:1134 msgid "Save Path:" msgstr "Salvataggi:" #: gui/launcher.cpp:339 gui/launcher.cpp:341 gui/launcher.cpp:342 -#: gui/options.cpp:1132 gui/options.cpp:1134 gui/options.cpp:1135 +#: gui/options.cpp:1134 gui/options.cpp:1136 gui/options.cpp:1137 msgid "Specifies where your saved games are put" msgstr "Specifica dove archiviare i salvataggi" -#: gui/launcher.cpp:341 gui/options.cpp:1134 +#: gui/launcher.cpp:341 gui/options.cpp:1136 msgctxt "lowres" msgid "Save Path:" msgstr "Salvataggi:" #: gui/launcher.cpp:360 gui/launcher.cpp:459 gui/launcher.cpp:517 -#: gui/launcher.cpp:571 gui/options.cpp:1143 gui/options.cpp:1151 -#: gui/options.cpp:1160 gui/options.cpp:1275 gui/options.cpp:1281 -#: gui/options.cpp:1289 gui/options.cpp:1319 gui/options.cpp:1325 -#: gui/options.cpp:1332 gui/options.cpp:1425 gui/options.cpp:1428 -#: gui/options.cpp:1440 +#: gui/launcher.cpp:571 gui/options.cpp:1145 gui/options.cpp:1153 +#: gui/options.cpp:1162 gui/options.cpp:1293 gui/options.cpp:1299 +#: gui/options.cpp:1307 gui/options.cpp:1337 gui/options.cpp:1343 +#: gui/options.cpp:1350 gui/options.cpp:1456 gui/options.cpp:1459 +#: gui/options.cpp:1471 msgctxt "path" msgid "None" msgstr "Nessuno" #: gui/launcher.cpp:365 gui/launcher.cpp:465 gui/launcher.cpp:575 -#: gui/options.cpp:1269 gui/options.cpp:1313 gui/options.cpp:1431 +#: gui/options.cpp:1287 gui/options.cpp:1331 gui/options.cpp:1462 #: backends/platform/wii/options.cpp:56 msgid "Default" msgstr "Predefinito" -#: gui/launcher.cpp:510 gui/options.cpp:1434 +#: gui/launcher.cpp:510 gui/options.cpp:1465 msgid "Select SoundFont" msgstr "Seleziona SoundFont" @@ -494,7 +495,7 @@ msgstr "Seleziona la cartella contenente i file di gioco" msgid "Select additional game directory" msgstr "Seleziona la cartella di gioco aggiuntiva" -#: gui/launcher.cpp:559 gui/options.cpp:1377 +#: gui/launcher.cpp:559 gui/options.cpp:1408 msgid "Select directory for saved games" msgstr "Seleziona la cartella dei salvataggi" @@ -502,7 +503,7 @@ msgstr "Seleziona la cartella dei salvataggi" msgid "This game ID is already taken. Please choose another one." msgstr "Questo ID di gioco č gią in uso. Si prega di sceglierne un'altro." -#: gui/launcher.cpp:626 engines/dialogs.cpp:111 +#: gui/launcher.cpp:626 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:115 msgid "~Q~uit" msgstr "C~h~iudi" @@ -590,17 +591,18 @@ msgid "Search:" msgstr "Cerca:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214 -#: engines/mohawk/riven.cpp:718 engines/pegasus/pegasus.cpp:353 -#: engines/tsage/scenes.cpp:600 +#: engines/mohawk/dialogs.cpp:120 engines/mohawk/riven.cpp:718 +#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:600 msgid "Load game:" msgstr "Carica gioco:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 #: backends/platform/wince/CEActionsPocket.cpp:267 #: backends/platform/wince/CEActionsSmartphone.cpp:231 -#: engines/cruise/menu.cpp:214 engines/mohawk/riven.cpp:718 -#: engines/parallaction/saveload.cpp:197 engines/pegasus/pegasus.cpp:353 -#: engines/scumm/dialogs.cpp:189 engines/tsage/scenes.cpp:600 +#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:120 +#: engines/mohawk/riven.cpp:718 engines/parallaction/saveload.cpp:197 +#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:189 +#: engines/tsage/scenes.cpp:600 msgid "Load" msgstr "Carica" @@ -693,134 +695,134 @@ msgstr "Sposta" msgid "Fast replay" msgstr "Modalitą veloce" -#: gui/options.cpp:85 +#: gui/options.cpp:87 common/updates.cpp:56 msgid "Never" msgstr "Mai" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 5 mins" msgstr "ogni 5 minuti" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 10 mins" msgstr "ogni 10 minuti" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 15 mins" msgstr "ogni 15 minuti" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 30 mins" msgstr "ogni 30 minuti" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "8 kHz" msgstr "8 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "11 kHz" msgstr "11 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "22 kHz" msgstr "22 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "44 kHz" msgstr "44 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "48 kHz" msgstr "48 kHz" -#: gui/options.cpp:255 gui/options.cpp:479 gui/options.cpp:580 -#: gui/options.cpp:649 gui/options.cpp:857 +#: gui/options.cpp:257 gui/options.cpp:481 gui/options.cpp:582 +#: gui/options.cpp:651 gui/options.cpp:859 msgctxt "soundfont" msgid "None" msgstr "Nessuno" -#: gui/options.cpp:389 +#: gui/options.cpp:391 msgid "Failed to apply some of the graphic options changes:" msgstr "Impossibile applicare alcuni dei cambiamenti nelle opzioni grafiche." -#: gui/options.cpp:401 +#: gui/options.cpp:403 msgid "the video mode could not be changed." msgstr "impossibile modificare la modalitą video." -#: gui/options.cpp:407 +#: gui/options.cpp:409 msgid "the fullscreen setting could not be changed" msgstr "impossibile modificare l'impostazione schermo intero" -#: gui/options.cpp:413 +#: gui/options.cpp:415 msgid "the aspect ratio setting could not be changed" msgstr "impossibile modificare l'impostazione proporzioni" -#: gui/options.cpp:732 +#: gui/options.cpp:734 msgid "Graphics mode:" msgstr "Modalitą:" -#: gui/options.cpp:746 +#: gui/options.cpp:748 msgid "Render mode:" msgstr "Resa grafica:" -#: gui/options.cpp:746 gui/options.cpp:747 +#: gui/options.cpp:748 gui/options.cpp:749 msgid "Special dithering modes supported by some games" msgstr "Modalitą di resa grafica speciali supportate da alcuni giochi" -#: gui/options.cpp:758 +#: gui/options.cpp:760 #: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2316 msgid "Fullscreen mode" msgstr "Modalitą a schermo intero" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Aspect ratio correction" msgstr "Correzione proporzioni" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Correct aspect ratio for 320x200 games" msgstr "Corregge le proporzioni dei giochi 320x200" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Preferred Device:" msgstr "Disp. preferito:" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Music Device:" msgstr "Dispositivo audio:" -#: gui/options.cpp:769 gui/options.cpp:771 +#: gui/options.cpp:771 gui/options.cpp:773 msgid "Specifies preferred sound device or sound card emulator" msgstr "" "Specifica il dispositivo audio o l'emulatore della scheda audio preferiti" -#: gui/options.cpp:769 gui/options.cpp:771 gui/options.cpp:772 +#: gui/options.cpp:771 gui/options.cpp:773 gui/options.cpp:774 msgid "Specifies output sound device or sound card emulator" msgstr "" "Specifica il dispositivo di output audio o l'emulatore della scheda audio" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Preferred Dev.:" msgstr "Disp. preferito:" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Music Device:" msgstr "Disposit. audio:" -#: gui/options.cpp:798 +#: gui/options.cpp:800 msgid "AdLib emulator:" msgstr "Emulatore AdLib:" -#: gui/options.cpp:798 gui/options.cpp:799 +#: gui/options.cpp:800 gui/options.cpp:801 msgid "AdLib is used for music in many games" msgstr "AdLib č utilizzato per la musica in molti giochi" -#: gui/options.cpp:809 +#: gui/options.cpp:811 msgid "Output rate:" msgstr "Frequenza:" -#: gui/options.cpp:809 gui/options.cpp:810 +#: gui/options.cpp:811 gui/options.cpp:812 msgid "" "Higher value specifies better sound quality but may be not supported by your " "soundcard" @@ -828,66 +830,66 @@ msgstr "" "Valori pił alti restituiscono un suono di maggior qualitą, ma potrebbero non " "essere supportati dalla tua scheda audio" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "GM Device:" msgstr "Dispositivo GM:" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "Specifies default sound device for General MIDI output" msgstr "Specifica il dispositivo audio predefinito per l'output General MIDI" -#: gui/options.cpp:831 +#: gui/options.cpp:833 msgid "Don't use General MIDI music" msgstr "Non utilizzare la musica General MIDI" -#: gui/options.cpp:842 gui/options.cpp:908 +#: gui/options.cpp:844 gui/options.cpp:910 msgid "Use first available device" msgstr "Utilizza il primo dispositivo disponibile" -#: gui/options.cpp:854 +#: gui/options.cpp:856 msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:854 gui/options.cpp:856 gui/options.cpp:857 +#: 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 č supportato da alcune schede audio, FluidSynth e Timidity" -#: gui/options.cpp:856 +#: gui/options.cpp:858 msgctxt "lowres" msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Mixed AdLib/MIDI mode" msgstr "Modalitą mista AdLib/MIDI" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Use both MIDI and AdLib sound generation" msgstr "Utilizza generazione di suono sia MIDI che AdLib" -#: gui/options.cpp:865 +#: gui/options.cpp:867 msgid "MIDI gain:" msgstr "Guadagno MIDI:" -#: gui/options.cpp:872 +#: gui/options.cpp:874 msgid "FluidSynth Settings" msgstr "Impostazioni FluidSynth" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "MT-32 Device:" msgstr "Disposit. MT-32:" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output" msgstr "" "Specifica il dispositivo audio predefinito per l'output Roland MT-32/LAPC1/" "CM32l/CM64" -#: gui/options.cpp:884 +#: gui/options.cpp:886 msgid "True Roland MT-32 (disable GM emulation)" msgstr "Roland MT-32 effettivo (disattiva emulazione GM)" -#: gui/options.cpp:884 gui/options.cpp:886 +#: gui/options.cpp:886 gui/options.cpp:888 msgid "" "Check if you want to use your real hardware Roland-compatible sound device " "connected to your computer" @@ -895,16 +897,16 @@ msgstr "" "Seleziona se vuoi usare il dispositivo hardware audio compatibile con Roland " "che č connesso al tuo computer" -#: gui/options.cpp:886 +#: gui/options.cpp:888 msgctxt "lowres" msgid "True Roland MT-32 (no GM emulation)" msgstr "Roland MT-32 effettivo (disat.emul.GM)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "Roland GS Device (enable MT-32 mappings)" msgstr "Dispositivo Roland GS (attiva mappature MT-32)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "" "Check if you want to enable patch mappings to emulate an MT-32 on a Roland " "GS device" @@ -912,169 +914,181 @@ msgstr "" "Seleziona se vuoi attivare le mappature per emulare un MT-32 su un " "dispositivo Roland GS" -#: gui/options.cpp:898 +#: gui/options.cpp:900 msgid "Don't use Roland MT-32 music" msgstr "Non utilizzare la musica Roland MT-32" -#: gui/options.cpp:925 +#: gui/options.cpp:927 msgid "Text and Speech:" msgstr "Testo e voci:" -#: gui/options.cpp:929 gui/options.cpp:939 +#: gui/options.cpp:931 gui/options.cpp:941 msgid "Speech" msgstr "Voci" -#: gui/options.cpp:930 gui/options.cpp:940 +#: gui/options.cpp:932 gui/options.cpp:942 msgid "Subtitles" msgstr "Sottotitoli" -#: gui/options.cpp:931 +#: gui/options.cpp:933 msgid "Both" msgstr "Entrambi" -#: gui/options.cpp:933 +#: gui/options.cpp:935 msgid "Subtitle speed:" msgstr "Velocitą testo:" -#: gui/options.cpp:935 +#: gui/options.cpp:937 msgctxt "lowres" msgid "Text and Speech:" msgstr "Testo e voci:" -#: gui/options.cpp:939 +#: gui/options.cpp:941 msgid "Spch" msgstr "Voci" -#: gui/options.cpp:940 +#: gui/options.cpp:942 msgid "Subs" msgstr "Sub" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgctxt "lowres" msgid "Both" msgstr "Entr." -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgid "Show subtitles and play speech" msgstr "Mostra i sottotitoli e attiva le voci" -#: gui/options.cpp:943 +#: gui/options.cpp:945 msgctxt "lowres" msgid "Subtitle speed:" msgstr "Velocitą testo:" -#: gui/options.cpp:959 +#: gui/options.cpp:961 msgid "Music volume:" msgstr "Volume musica:" -#: gui/options.cpp:961 +#: gui/options.cpp:963 msgctxt "lowres" msgid "Music volume:" msgstr "Volume musica:" -#: gui/options.cpp:968 +#: gui/options.cpp:970 msgid "Mute All" msgstr "Disattiva audio" -#: gui/options.cpp:971 +#: gui/options.cpp:973 msgid "SFX volume:" msgstr "Volume effetti:" -#: gui/options.cpp:971 gui/options.cpp:973 gui/options.cpp:974 +#: gui/options.cpp:973 gui/options.cpp:975 gui/options.cpp:976 msgid "Special sound effects volume" msgstr "Volume degli effetti sonori" -#: gui/options.cpp:973 +#: gui/options.cpp:975 msgctxt "lowres" msgid "SFX volume:" msgstr "Volume effetti:" -#: gui/options.cpp:981 +#: gui/options.cpp:983 msgid "Speech volume:" msgstr "Volume voci:" -#: gui/options.cpp:983 +#: gui/options.cpp:985 msgctxt "lowres" msgid "Speech volume:" msgstr "Volume voci:" -#: gui/options.cpp:1140 +#: gui/options.cpp:1142 msgid "Theme Path:" msgstr "Percorso tema:" -#: gui/options.cpp:1142 +#: gui/options.cpp:1144 msgctxt "lowres" msgid "Theme Path:" msgstr "Perc. tema:" -#: gui/options.cpp:1148 gui/options.cpp:1150 gui/options.cpp:1151 +#: gui/options.cpp:1150 gui/options.cpp:1152 gui/options.cpp:1153 msgid "Specifies path to additional data used by all games or ScummVM" msgstr "Specifica il percorso di ulteriori dati usati dai giochi o da ScummVM" -#: gui/options.cpp:1157 +#: gui/options.cpp:1159 msgid "Plugins Path:" msgstr "Percorso plugin:" -#: gui/options.cpp:1159 +#: gui/options.cpp:1161 msgctxt "lowres" msgid "Plugins Path:" msgstr "Perc. plugin:" -#: gui/options.cpp:1170 +#: gui/options.cpp:1172 msgctxt "lowres" msgid "Misc" msgstr "Varie" -#: gui/options.cpp:1172 +#: gui/options.cpp:1174 msgid "Theme:" msgstr "Tema:" -#: gui/options.cpp:1176 +#: gui/options.cpp:1178 msgid "GUI Renderer:" msgstr "Renderer GUI:" -#: gui/options.cpp:1188 +#: gui/options.cpp:1190 msgid "Autosave:" msgstr "Autosalva:" -#: gui/options.cpp:1190 +#: gui/options.cpp:1192 msgctxt "lowres" msgid "Autosave:" msgstr "Autosalva:" -#: gui/options.cpp:1198 +#: gui/options.cpp:1200 msgid "Keys" msgstr "Tasti" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "GUI Language:" msgstr "Lingua GUI:" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "Language of ScummVM GUI" msgstr "Lingua dell'interfaccia grafica di ScummVM" -#: gui/options.cpp:1364 +#: gui/options.cpp:1235 +msgid "Update check:" +msgstr "" + +#: gui/options.cpp:1235 +msgid "How often to check ScummVM updates" +msgstr "" + +#: gui/options.cpp:1247 +msgid "Check now" +msgstr "" + +#: gui/options.cpp:1382 msgid "You have to restart ScummVM before your changes will take effect." msgstr "Devi riavviare ScummVM affinché le modifiche abbiano effetto." -#: gui/options.cpp:1384 +#: gui/options.cpp:1415 msgid "The chosen directory cannot be written to. Please select another one." msgstr "La cartella scelta č in sola lettura. Si prega di sceglierne un'altra." -#: gui/options.cpp:1393 +#: gui/options.cpp:1424 msgid "Select directory for GUI themes" msgstr "Seleziona la cartella dei temi dell'interfaccia" -#: gui/options.cpp:1403 +#: gui/options.cpp:1434 msgid "Select directory for extra files" msgstr "Seleziona la cartella dei file aggiuntivi" -#: gui/options.cpp:1414 +#: gui/options.cpp:1445 msgid "Select directory for plugins" msgstr "Seleziona la cartella dei plugin" -#: gui/options.cpp:1467 +#: gui/options.cpp:1498 msgid "" "The theme you selected does not support your current language. If you want " "to use this theme you need to switch to another language first." @@ -1251,39 +1265,60 @@ msgstr "Renderer con antialiasing" msgid "Antialiased" msgstr "Con antialiasing" -#: gui/widget.cpp:323 gui/widget.cpp:325 gui/widget.cpp:331 gui/widget.cpp:333 +#: gui/updates-dialog.cpp:51 +msgid "" +"ScummVM now supports automatic check for updates\n" +"which requires access to the Internet.\n" +"\n" +"Would you like to enable this feature?" +msgstr "" + +#: gui/updates-dialog.cpp:55 +msgid "(You can always enable it in the options dialog on the Misc tab)" +msgstr "" + +#: gui/updates-dialog.cpp:92 +#, fuzzy +msgid "Check for updates automatically" +msgstr "Cerca aggiornamenti..." + +#: gui/updates-dialog.cpp:111 +msgid "Proceed" +msgstr "" + +#: gui/widget.cpp:327 gui/widget.cpp:329 gui/widget.cpp:335 gui/widget.cpp:337 msgid "Clear value" msgstr "Cancella" -#: base/main.cpp:237 +#: base/main.cpp:240 #, c-format msgid "Engine does not support debug level '%s'" msgstr "Il motore non supporta il livello di debug '%s'" -#: base/main.cpp:309 +#: base/main.cpp:312 msgid "Menu" msgstr "Menu" -#: base/main.cpp:312 backends/platform/symbian/src/SymbianActions.cpp:45 +#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:45 #: backends/platform/wince/CEActionsPocket.cpp:45 #: backends/platform/wince/CEActionsSmartphone.cpp:46 msgid "Skip" msgstr "Salta" -#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:50 +#: base/main.cpp:318 backends/platform/symbian/src/SymbianActions.cpp:50 #: backends/platform/wince/CEActionsPocket.cpp:42 msgid "Pause" msgstr "Pausa" -#: base/main.cpp:318 +#: base/main.cpp:321 msgid "Skip line" msgstr "Salta battuta" -#: base/main.cpp:510 +#: base/main.cpp:520 msgid "Error running game:" msgstr "Errore nell'esecuzione del gioco:" -#: base/main.cpp:557 +#: base/main.cpp:567 msgid "Could not find any engine capable of running the selected game" msgstr "" "Impossibile trovare un motore in grado di eseguire il gioco selezionato" @@ -1379,16 +1414,33 @@ msgctxt "lowres" msgid "Hercules Amber" msgstr "Hercules ambra" -#: engines/advancedDetector.cpp:317 +#: common/updates.cpp:58 +msgid "Daily" +msgstr "" + +#: common/updates.cpp:60 +msgid "Weekly" +msgstr "" + +#: common/updates.cpp:62 +msgid "Monthly" +msgstr "" + +#: common/updates.cpp:64 +#, fuzzy +msgid "<Bad value>" +msgstr "Cancella" + +#: engines/advancedDetector.cpp:334 #, c-format msgid "The game in '%s' seems to be unknown." msgstr "Il gioco in '%s' sembra essere sconosciuto." -#: engines/advancedDetector.cpp:318 +#: engines/advancedDetector.cpp:335 msgid "Please, report the following data to the ScummVM team along with name" msgstr "Per favore, riporta i seguenti dati al team di ScummVM con il nome" -#: engines/advancedDetector.cpp:320 +#: engines/advancedDetector.cpp:337 msgid "of the game you tried to add and its version/language/etc.:" msgstr "del gioco che hai provato ad aggiungere e la sua versione/lingua/ecc.:" @@ -1396,11 +1448,11 @@ msgstr "del gioco che hai provato ad aggiungere e la sua versione/lingua/ecc.:" msgid "~R~esume" msgstr "~R~ipristina" -#: engines/dialogs.cpp:87 +#: engines/dialogs.cpp:87 engines/mohawk/dialogs.cpp:113 msgid "~L~oad" msgstr "~C~arica" -#: engines/dialogs.cpp:91 +#: engines/dialogs.cpp:91 engines/mohawk/dialogs.cpp:114 msgid "~S~ave" msgstr "~S~alva" @@ -1429,9 +1481,9 @@ msgstr "~V~ai a elenco giochi" #: engines/avalanche/parser.cpp:1899 engines/cge/events.cpp:74 #: engines/cge2/events.cpp:67 engines/cruise/menu.cpp:212 #: engines/drascula/saveload.cpp:336 engines/dreamweb/saveload.cpp:261 -#: engines/hugo/file.cpp:298 engines/neverhood/menumodule.cpp:877 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/hugo/file.cpp:298 engines/mohawk/dialogs.cpp:121 +#: engines/neverhood/menumodule.cpp:877 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save game:" @@ -1446,9 +1498,10 @@ msgstr "Salva gioco:" #: engines/cge/events.cpp:74 engines/cge2/events.cpp:67 #: engines/cruise/menu.cpp:212 engines/drascula/saveload.cpp:336 #: engines/dreamweb/saveload.cpp:261 engines/hugo/file.cpp:298 -#: engines/neverhood/menumodule.cpp:877 engines/parallaction/saveload.cpp:212 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/scumm/dialogs.cpp:188 engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/mohawk/dialogs.cpp:121 engines/neverhood/menumodule.cpp:877 +#: engines/parallaction/saveload.cpp:212 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/scumm/dialogs.cpp:188 +#: engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save" @@ -1474,13 +1527,13 @@ msgstr "" "informazioni di base e per le istruzioni su come ottenere ulteriore " "assistenza." -#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:109 -#: engines/mohawk/dialogs.cpp:170 engines/tsage/dialogs.cpp:106 +#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:117 +#: engines/mohawk/dialogs.cpp:242 engines/tsage/dialogs.cpp:106 msgid "~O~K" msgstr "~O~K" -#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:110 -#: engines/mohawk/dialogs.cpp:171 engines/tsage/dialogs.cpp:107 +#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:118 +#: engines/mohawk/dialogs.cpp:243 engines/tsage/dialogs.cpp:107 msgid "~C~ancel" msgstr "~A~nnulla" @@ -1639,11 +1692,11 @@ msgstr "Emulatore FM Towns" msgid "PC-98 Audio" msgstr "Audio" -#: audio/softsynth/mt32.cpp:200 +#: audio/softsynth/mt32.cpp:196 msgid "Initializing MT-32 Emulator" msgstr "Avvio in corso dell'emulatore MT-32" -#: audio/softsynth/mt32.cpp:426 +#: audio/softsynth/mt32.cpp:434 msgid "MT-32 Emulator" msgstr "Emulatore MT-32" @@ -1761,11 +1814,11 @@ msgstr "" msgid "Swipe three fingers to the right to toggle." msgstr "" -#: backends/graphics/opengl/opengl-graphics.cpp:119 +#: backends/graphics/opengl/opengl-graphics.cpp:126 msgid "OpenGL" msgstr "OpenGL" -#: backends/graphics/opengl/opengl-graphics.cpp:120 +#: backends/graphics/opengl/opengl-graphics.cpp:127 msgid "OpenGL (No filtering)" msgstr "OpenGL (senza filtri)" @@ -2318,20 +2371,20 @@ msgstr "" "Non dimenticare di mappare un tasto per l'azione \"Nascondi barra degli " "strumenti\" per vedere l'intero inventario" -#: backends/updates/macosx/macosx-updates.mm:67 +#: backends/updates/macosx/macosx-updates.mm:68 msgid "Check for Updates..." msgstr "Cerca aggiornamenti..." #: engines/agi/detection.cpp:147 engines/cine/detection.cpp:70 #: engines/drascula/detection.cpp:302 engines/dreamweb/detection.cpp:47 -#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:404 +#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:410 #: engines/toltecs/detection.cpp:200 engines/zvision/detection_tables.h:51 msgid "Use original save/load screens" msgstr "Usa schermate di salvataggio originali" #: engines/agi/detection.cpp:148 engines/cine/detection.cpp:71 #: engines/drascula/detection.cpp:303 engines/dreamweb/detection.cpp:48 -#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:405 +#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:411 #: engines/toltecs/detection.cpp:201 msgid "Use the original save/load screens, instead of the ScummVM ones" msgstr "" @@ -2359,11 +2412,30 @@ msgid "" "Enables mouse support. Allows to use mouse for movement and in game menus." msgstr "" +#: engines/agi/detection.cpp:177 +#, fuzzy +msgid "Use Hercules hires font" +msgstr "Hercules verde" + +#: engines/agi/detection.cpp:178 +msgid "Uses Hercules hires font, when font file is available." +msgstr "" + +#: engines/agi/detection.cpp:187 +msgid "Pause when entering commands" +msgstr "" + +#: engines/agi/detection.cpp:188 +msgid "" +"Shows a command prompt window and pauses the game (like in SCI) instead of a " +"real-time prompt." +msgstr "" + #: engines/agi/saveload.cpp:777 engines/avalanche/parser.cpp:1887 #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore game:" @@ -2373,13 +2445,13 @@ msgstr "Ripristina gioco:" #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore" msgstr "Ripristina" -#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2377 +#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2374 #, c-format msgid "" "Failed to load game state from file:\n" @@ -2390,7 +2462,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2370 +#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2367 #, c-format msgid "" "Failed to save game state to file:\n" @@ -2401,7 +2473,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2388 +#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2385 #, c-format msgid "" "Successfully saved game state in file:\n" @@ -2635,29 +2707,39 @@ msgid "" "\n" msgstr "" +#: engines/mohawk/detection.cpp:168 +msgid "Play the Myst fly by movie" +msgstr "" + +#: engines/mohawk/detection.cpp:169 +msgid "The Myst fly by movie was not played by the original engine." +msgstr "" + #. I18N: Option for fast scene switching -#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:167 +#: engines/mohawk/dialogs.cpp:96 engines/mohawk/dialogs.cpp:239 msgid "~Z~ip Mode Activated" msgstr "Modalitą ~Z~ip attivata" -#: engines/mohawk/dialogs.cpp:93 +#: engines/mohawk/dialogs.cpp:97 msgid "~T~ransitions Enabled" msgstr "~T~ransizioni attive" #. I18N: Drop book page -#: engines/mohawk/dialogs.cpp:95 +#: engines/mohawk/dialogs.cpp:99 msgid "~D~rop Page" msgstr "~L~ascia pagina" -#: engines/mohawk/dialogs.cpp:99 -msgid "~S~how Map" +#: engines/mohawk/dialogs.cpp:103 +#, fuzzy +msgid "Show ~M~ap" msgstr "~M~ostra mappa" -#: engines/mohawk/dialogs.cpp:105 -msgid "~M~ain Menu" +#: engines/mohawk/dialogs.cpp:109 +#, fuzzy +msgid "Main Men~u~" msgstr "~M~enu principale" -#: engines/mohawk/dialogs.cpp:168 +#: engines/mohawk/dialogs.cpp:240 msgid "~W~ater Effect Enabled" msgstr "~E~ffetto acqua attivo" @@ -2781,37 +2863,37 @@ msgstr "Intro alternativa" msgid "Use an alternative game intro (CD version only)" msgstr "Usa un'intro del gioco alternativa (solo versione CD)" -#: engines/sci/detection.cpp:374 +#: engines/sci/detection.cpp:380 msgid "Skip EGA dithering pass (full color backgrounds)" msgstr "" -#: engines/sci/detection.cpp:375 +#: engines/sci/detection.cpp:381 msgid "Skip dithering pass in EGA games, graphics are shown with full colors" msgstr "" -#: engines/sci/detection.cpp:384 +#: engines/sci/detection.cpp:390 #, fuzzy msgid "Enable high resolution graphics" msgstr "Attiva le barre di Hit Point" -#: engines/sci/detection.cpp:385 +#: engines/sci/detection.cpp:391 #, fuzzy msgid "Enable high resolution graphics/content" msgstr "Attiva le barre di Hit Point" -#: engines/sci/detection.cpp:394 +#: engines/sci/detection.cpp:400 msgid "Prefer digital sound effects" msgstr "Scegli effetti sonori digitali" -#: engines/sci/detection.cpp:395 +#: engines/sci/detection.cpp:401 msgid "Prefer digital sound effects instead of synthesized ones" msgstr "Scegli gli effetti sonori digitali al posto di quelli sintetizzati" -#: engines/sci/detection.cpp:414 +#: engines/sci/detection.cpp:420 msgid "Use IMF/Yamaha FB-01 for MIDI output" msgstr "Usa IMF/Yamaha FB-01 per output MIDI" -#: engines/sci/detection.cpp:415 +#: engines/sci/detection.cpp:421 msgid "" "Use an IBM Music Feature card or a Yamaha FB-01 FM synth module for MIDI " "output" @@ -2819,35 +2901,44 @@ msgstr "" "Usa una scheda IBM Music Feature o un modulo synth Yamaha FB-01 FM per " "l'output MIDI" -#: engines/sci/detection.cpp:425 +#: engines/sci/detection.cpp:431 msgid "Use CD audio" msgstr "Usa audio da CD" -#: engines/sci/detection.cpp:426 +#: engines/sci/detection.cpp:432 msgid "Use CD audio instead of in-game audio, if available" msgstr "" "Usa l'audio da CD al posto di quello incorporato nel gioco, se disponibile" -#: engines/sci/detection.cpp:436 +#: engines/sci/detection.cpp:442 msgid "Use Windows cursors" msgstr "Usa cursori di Windows" -#: engines/sci/detection.cpp:437 +#: engines/sci/detection.cpp:443 msgid "" "Use the Windows cursors (smaller and monochrome) instead of the DOS ones" msgstr "" "Usa i cursori di Windows (pił piccoli e monocromatici) al posto di quelli DOS" -#: engines/sci/detection.cpp:447 +#: engines/sci/detection.cpp:453 msgid "Use silver cursors" msgstr "Usa cursori d'argento" -#: engines/sci/detection.cpp:448 +#: engines/sci/detection.cpp:454 msgid "" "Use the alternate set of silver cursors, instead of the normal golden ones" msgstr "" "Usa il set alternativo di cursori d'argento al posto di quelli normali d'oro" +#: engines/scumm/detection.cpp:1335 +#, fuzzy +msgid "Show Object Line" +msgstr "Mostra etichette oggetti" + +#: engines/scumm/detection.cpp:1336 +msgid "Show the names of objects at the bottom of the screen" +msgstr "" + #: engines/scumm/dialogs.cpp:176 #, c-format msgid "Insert Disk %c and Press Button to Continue." @@ -3519,7 +3610,7 @@ msgstr "Volume musica:" msgid "Subtitle speed: " msgstr "Velocitą testo:" -#: engines/scumm/scumm.cpp:1832 +#: engines/scumm/scumm.cpp:1829 #, c-format msgid "" "Native MIDI support requires the Roland Upgrade from LucasArts,\n" @@ -3528,7 +3619,7 @@ msgstr "" "Il supporto nativo MIDI richiede il Roland Upgrade della LucasArts,\n" "ma %s non č presente. Verrą usato AdLib." -#: engines/scumm/scumm.cpp:2644 +#: engines/scumm/scumm.cpp:2645 #, fuzzy msgid "" "Usually, Maniac Mansion would start now. But for that to work, the game " @@ -3708,6 +3799,15 @@ msgstr "Mostra etichette oggetti" msgid "Show labels for objects on mouse hover" msgstr "Mostra etichette per gli oggetti al passaggio del mouse" +#: engines/sword25/detection.cpp:46 +msgid "Use English speech" +msgstr "" + +#: engines/sword25/detection.cpp:47 +msgid "" +"Use English speech instead of German for every language other than German" +msgstr "" + #: engines/teenagent/resources.cpp:95 msgid "" "You're missing the 'teenagent.dat' file. Get it from the ScummVM website" diff --git a/po/nb_NO.po b/po/nb_NO.po index 8f105c6d55..de9be4c50e 100644 --- a/po/nb_NO.po +++ b/po/nb_NO.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ScummVM 1.3.0svn\n" "Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n" -"POT-Creation-Date: 2016-02-20 21:22+0000\n" +"POT-Creation-Date: 2016-04-07 08:55+0100\n" "PO-Revision-Date: 2016-02-25 23:42+0100\n" "Last-Translator: Einar Johan Trųan Sųmåen <einarjohants@gmail.com>\n" "Language-Team: somaen <einarjohants@gmail.com>\n" @@ -56,10 +56,11 @@ msgstr "Oppover" #: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editrecorddialog.cpp:67 #: gui/filebrowser-dialog.cpp:64 gui/fluidsynth-dialog.cpp:152 #: gui/KeysDialog.cpp:43 gui/launcher.cpp:351 gui/massadd.cpp:95 -#: gui/options.cpp:1237 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 +#: gui/options.cpp:1255 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 #: gui/recorderdialog.cpp:156 gui/saveload-dialog.cpp:216 #: gui/saveload-dialog.cpp:276 gui/saveload-dialog.cpp:547 -#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 engines/engine.cpp:546 +#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 +#: gui/updates-dialog.cpp:113 engines/engine.cpp:546 #: backends/events/default/default-events.cpp:196 #: backends/events/default/default-events.cpp:218 #: backends/platform/wii/options.cpp:48 engines/drascula/saveload.cpp:49 @@ -173,7 +174,7 @@ msgstr "Sinus" msgid "Triangle" msgstr "Trekant" -#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1168 +#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1170 msgid "Misc" msgstr "Diverse" @@ -207,12 +208,12 @@ msgstr "Nullstill alle FluidSynth-instillinger til standardverdier" #: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:352 #: gui/launcher.cpp:1050 gui/launcher.cpp:1054 gui/massadd.cpp:92 -#: gui/options.cpp:1238 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 +#: gui/options.cpp:1256 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 #: engines/engine.cpp:476 backends/platform/wii/options.cpp:47 #: backends/platform/wince/CELauncherDialog.cpp:54 #: engines/agos/animation.cpp:558 engines/drascula/saveload.cpp:49 #: engines/groovie/script.cpp:408 engines/parallaction/saveload.cpp:274 -#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1834 +#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1831 #: engines/scumm/players/player_v3m.cpp:130 #: engines/scumm/players/player_v5m.cpp:108 engines/sky/compact.cpp:131 #: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:524 @@ -241,15 +242,15 @@ msgstr "Lukk" msgid "Mouse click" msgstr "Musklikk" -#: gui/gui-manager.cpp:126 base/main.cpp:322 +#: gui/gui-manager.cpp:126 base/main.cpp:325 msgid "Display keyboard" msgstr "Vis tastatur" -#: gui/gui-manager.cpp:130 base/main.cpp:326 +#: gui/gui-manager.cpp:130 base/main.cpp:329 msgid "Remap keys" msgstr "Omkoble taster" -#: gui/gui-manager.cpp:133 base/main.cpp:329 engines/scumm/help.cpp:87 +#: gui/gui-manager.cpp:133 base/main.cpp:332 engines/scumm/help.cpp:87 msgid "Toggle fullscreen" msgstr "Veksle fullskjerm" @@ -325,8 +326,8 @@ msgstr "" "Spillets språk. Dette vil ikke gjųre din spanske spillversjon om til engelsk " "versjon" -#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:87 -#: gui/options.cpp:735 gui/options.cpp:748 gui/options.cpp:1208 +#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:89 +#: gui/options.cpp:737 gui/options.cpp:750 gui/options.cpp:1210 #: audio/null.cpp:41 msgid "<default>" msgstr "<standard>" @@ -348,11 +349,11 @@ msgstr "Plattform:" msgid "Engine" msgstr "Motor" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "Graphics" msgstr "Grafikk" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "GFX" msgstr "GFX" @@ -365,7 +366,7 @@ msgctxt "lowres" msgid "Override global graphic settings" msgstr "Overstyr globale grafikkinstillinger" -#: gui/launcher.cpp:257 gui/options.cpp:1094 +#: gui/launcher.cpp:257 gui/options.cpp:1096 msgid "Audio" msgstr "Lyd" @@ -378,11 +379,11 @@ msgctxt "lowres" msgid "Override global audio settings" msgstr "Overstyr globale lydinstillinger" -#: gui/launcher.cpp:271 gui/options.cpp:1099 +#: gui/launcher.cpp:271 gui/options.cpp:1101 msgid "Volume" msgstr "Volum" -#: gui/launcher.cpp:273 gui/options.cpp:1101 +#: gui/launcher.cpp:273 gui/options.cpp:1103 msgctxt "lowres" msgid "Volume" msgstr "Volum" @@ -396,7 +397,7 @@ msgctxt "lowres" msgid "Override global volume settings" msgstr "Overstyr globale voluminstillinger" -#: gui/launcher.cpp:286 gui/options.cpp:1109 +#: gui/launcher.cpp:286 gui/options.cpp:1111 msgid "MIDI" msgstr "MIDI" @@ -409,7 +410,7 @@ msgctxt "lowres" msgid "Override global MIDI settings" msgstr "Overstyr globale MIDI-instillinger" -#: gui/launcher.cpp:300 gui/options.cpp:1115 +#: gui/launcher.cpp:300 gui/options.cpp:1117 msgid "MT-32" msgstr "MT-32" @@ -422,11 +423,11 @@ msgctxt "lowres" msgid "Override global MT-32 settings" msgstr "Overstyr globale MT-32-instillinger" -#: gui/launcher.cpp:314 gui/options.cpp:1122 +#: gui/launcher.cpp:314 gui/options.cpp:1124 msgid "Paths" msgstr "Sti" -#: gui/launcher.cpp:316 gui/options.cpp:1124 +#: gui/launcher.cpp:316 gui/options.cpp:1126 msgctxt "lowres" msgid "Paths" msgstr "Sti" @@ -440,7 +441,7 @@ msgctxt "lowres" msgid "Game Path:" msgstr "Spillsti:" -#: gui/launcher.cpp:330 gui/options.cpp:1148 +#: gui/launcher.cpp:330 gui/options.cpp:1150 msgid "Extra Path:" msgstr "Ekstrasti:" @@ -448,42 +449,42 @@ msgstr "Ekstrasti:" msgid "Specifies path to additional data used by the game" msgstr "Bestemmer sti til ytterligere data brukt av spillet" -#: gui/launcher.cpp:332 gui/options.cpp:1150 +#: gui/launcher.cpp:332 gui/options.cpp:1152 msgctxt "lowres" msgid "Extra Path:" msgstr "Ekstrasti:" -#: gui/launcher.cpp:339 gui/options.cpp:1132 +#: gui/launcher.cpp:339 gui/options.cpp:1134 msgid "Save Path:" msgstr "Lagringssti:" #: gui/launcher.cpp:339 gui/launcher.cpp:341 gui/launcher.cpp:342 -#: gui/options.cpp:1132 gui/options.cpp:1134 gui/options.cpp:1135 +#: gui/options.cpp:1134 gui/options.cpp:1136 gui/options.cpp:1137 msgid "Specifies where your saved games are put" msgstr "Bestemmer sti til lagrede spill" -#: gui/launcher.cpp:341 gui/options.cpp:1134 +#: gui/launcher.cpp:341 gui/options.cpp:1136 msgctxt "lowres" msgid "Save Path:" msgstr "Lagringssti:" #: gui/launcher.cpp:360 gui/launcher.cpp:459 gui/launcher.cpp:517 -#: gui/launcher.cpp:571 gui/options.cpp:1143 gui/options.cpp:1151 -#: gui/options.cpp:1160 gui/options.cpp:1275 gui/options.cpp:1281 -#: gui/options.cpp:1289 gui/options.cpp:1319 gui/options.cpp:1325 -#: gui/options.cpp:1332 gui/options.cpp:1425 gui/options.cpp:1428 -#: gui/options.cpp:1440 +#: gui/launcher.cpp:571 gui/options.cpp:1145 gui/options.cpp:1153 +#: gui/options.cpp:1162 gui/options.cpp:1293 gui/options.cpp:1299 +#: gui/options.cpp:1307 gui/options.cpp:1337 gui/options.cpp:1343 +#: gui/options.cpp:1350 gui/options.cpp:1456 gui/options.cpp:1459 +#: gui/options.cpp:1471 msgctxt "path" msgid "None" msgstr "Ingen" #: gui/launcher.cpp:365 gui/launcher.cpp:465 gui/launcher.cpp:575 -#: gui/options.cpp:1269 gui/options.cpp:1313 gui/options.cpp:1431 +#: gui/options.cpp:1287 gui/options.cpp:1331 gui/options.cpp:1462 #: backends/platform/wii/options.cpp:56 msgid "Default" msgstr "Standard" -#: gui/launcher.cpp:510 gui/options.cpp:1434 +#: gui/launcher.cpp:510 gui/options.cpp:1465 msgid "Select SoundFont" msgstr "Velg SoundFont" @@ -495,7 +496,7 @@ msgstr "Velg mappe med spilldata" msgid "Select additional game directory" msgstr "Velg mappe med ytterligere data" -#: gui/launcher.cpp:559 gui/options.cpp:1377 +#: gui/launcher.cpp:559 gui/options.cpp:1408 msgid "Select directory for saved games" msgstr "Velg mappe for lagrede spill" @@ -503,7 +504,7 @@ msgstr "Velg mappe for lagrede spill" msgid "This game ID is already taken. Please choose another one." msgstr "Denne spill-IDen er allerede i bruk. Vennligst velg en annen." -#: gui/launcher.cpp:626 engines/dialogs.cpp:111 +#: gui/launcher.cpp:626 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:115 msgid "~Q~uit" msgstr "~A~vslutt" @@ -591,17 +592,18 @@ msgid "Search:" msgstr "Sųk:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214 -#: engines/mohawk/riven.cpp:718 engines/pegasus/pegasus.cpp:353 -#: engines/tsage/scenes.cpp:600 +#: engines/mohawk/dialogs.cpp:120 engines/mohawk/riven.cpp:718 +#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:600 msgid "Load game:" msgstr "Åpne spill:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 #: backends/platform/wince/CEActionsPocket.cpp:267 #: backends/platform/wince/CEActionsSmartphone.cpp:231 -#: engines/cruise/menu.cpp:214 engines/mohawk/riven.cpp:718 -#: engines/parallaction/saveload.cpp:197 engines/pegasus/pegasus.cpp:353 -#: engines/scumm/dialogs.cpp:189 engines/tsage/scenes.cpp:600 +#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:120 +#: engines/mohawk/riven.cpp:718 engines/parallaction/saveload.cpp:197 +#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:189 +#: engines/tsage/scenes.cpp:600 msgid "Load" msgstr "Åpne" @@ -691,132 +693,132 @@ msgstr "Bytt til Spill" msgid "Fast replay" msgstr "Rask replay" -#: gui/options.cpp:85 +#: gui/options.cpp:87 common/updates.cpp:56 msgid "Never" msgstr "Aldri" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 5 mins" msgstr "hvert 5. min" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 10 mins" msgstr "hvert 10. min" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 15 mins" msgstr "hvert 15. min" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 30 mins" msgstr "hvert 30. min" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "8 kHz" msgstr "8 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "11 kHz" msgstr "11 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "22 kHz" msgstr "22 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "44 kHz" msgstr "44 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "48 kHz" msgstr "48 kHz" -#: gui/options.cpp:255 gui/options.cpp:479 gui/options.cpp:580 -#: gui/options.cpp:649 gui/options.cpp:857 +#: gui/options.cpp:257 gui/options.cpp:481 gui/options.cpp:582 +#: gui/options.cpp:651 gui/options.cpp:859 msgctxt "soundfont" msgid "None" msgstr "Ingen" -#: gui/options.cpp:389 +#: gui/options.cpp:391 msgid "Failed to apply some of the graphic options changes:" msgstr "Klarte ikke å aktivere enkelte av endringene i grafikkinstillinger:" -#: gui/options.cpp:401 +#: gui/options.cpp:403 msgid "the video mode could not be changed." msgstr "videomodusen kunne ikke endres." -#: gui/options.cpp:407 +#: gui/options.cpp:409 msgid "the fullscreen setting could not be changed" msgstr "fullskjermsinnstillingen kunne ikke endres" -#: gui/options.cpp:413 +#: gui/options.cpp:415 msgid "the aspect ratio setting could not be changed" msgstr "aspektrate-innstillingen kunne ikke endres" -#: gui/options.cpp:732 +#: gui/options.cpp:734 msgid "Graphics mode:" msgstr "Grafikkmodus:" -#: gui/options.cpp:746 +#: gui/options.cpp:748 msgid "Render mode:" msgstr "Tegnemodus:" -#: gui/options.cpp:746 gui/options.cpp:747 +#: gui/options.cpp:748 gui/options.cpp:749 msgid "Special dithering modes supported by some games" msgstr "Spesiel dithering-modus stųttet av enkelte spill" -#: gui/options.cpp:758 +#: gui/options.cpp:760 #: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2316 msgid "Fullscreen mode" msgstr "Fullskjermsmodus" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Aspect ratio correction" msgstr "Aspekt-rate korrigering" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Correct aspect ratio for 320x200 games" msgstr "Korriger aspekt-rate for 320x200-spill" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Preferred Device:" msgstr "Foretrukket enhet:" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Music Device:" msgstr "Musikkenhet:" -#: gui/options.cpp:769 gui/options.cpp:771 +#: gui/options.cpp:771 gui/options.cpp:773 msgid "Specifies preferred sound device or sound card emulator" msgstr "Velger foretrukket lydenhet eller lydkort-emulator" -#: gui/options.cpp:769 gui/options.cpp:771 gui/options.cpp:772 +#: gui/options.cpp:771 gui/options.cpp:773 gui/options.cpp:774 msgid "Specifies output sound device or sound card emulator" msgstr "Velger ut-lydenhet eller lydkortemulator" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Preferred Dev.:" msgstr "Foretrukket enh.:" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Music Device:" msgstr "Musikkenhet:" -#: gui/options.cpp:798 +#: gui/options.cpp:800 msgid "AdLib emulator:" msgstr "AdLib-emulator:" -#: gui/options.cpp:798 gui/options.cpp:799 +#: gui/options.cpp:800 gui/options.cpp:801 msgid "AdLib is used for music in many games" msgstr "AdLib brukes til musikk i mange spill" -#: gui/options.cpp:809 +#: gui/options.cpp:811 msgid "Output rate:" msgstr "Utrate:" -#: gui/options.cpp:809 gui/options.cpp:810 +#: gui/options.cpp:811 gui/options.cpp:812 msgid "" "Higher value specifies better sound quality but may be not supported by your " "soundcard" @@ -824,64 +826,64 @@ msgstr "" "Hųyere verdier gir bedre lydkvalitet, men stųttes kanskje ikke av ditt " "lydkort " -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "GM Device:" msgstr "GM-enhet:" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "Specifies default sound device for General MIDI output" msgstr "Velger standard lydenhet for General MIDI-utdata" -#: gui/options.cpp:831 +#: gui/options.cpp:833 msgid "Don't use General MIDI music" msgstr "Ikke bruk General MIDI-musikk" -#: gui/options.cpp:842 gui/options.cpp:908 +#: gui/options.cpp:844 gui/options.cpp:910 msgid "Use first available device" msgstr "Bruk fųrste tilgjengelige enhet" -#: gui/options.cpp:854 +#: gui/options.cpp:856 msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:854 gui/options.cpp:856 gui/options.cpp:857 +#: 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 stųttes ikke av enkelte lydkort, FluidSynth og Timidity" -#: gui/options.cpp:856 +#: gui/options.cpp:858 msgctxt "lowres" msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Mixed AdLib/MIDI mode" msgstr "Mikset AdLib/MIDI-modus" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Use both MIDI and AdLib sound generation" msgstr "Bruk både MIDI- og AdLib- lydgenerering" -#: gui/options.cpp:865 +#: gui/options.cpp:867 msgid "MIDI gain:" msgstr "MIDI gain:" -#: gui/options.cpp:872 +#: gui/options.cpp:874 msgid "FluidSynth Settings" msgstr "FluidSynth-instillinger" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "MT-32 Device:" msgstr "MT-32 Enhet:" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output" msgstr "Velger standard lydenhet for Roland MT-32/LAPC1/CM32I/CM64-avspilling" -#: gui/options.cpp:884 +#: gui/options.cpp:886 msgid "True Roland MT-32 (disable GM emulation)" msgstr "Ekte Roland MT-32 (deaktiver GM-emulering)" -#: gui/options.cpp:884 gui/options.cpp:886 +#: gui/options.cpp:886 gui/options.cpp:888 msgid "" "Check if you want to use your real hardware Roland-compatible sound device " "connected to your computer" @@ -889,16 +891,16 @@ msgstr "" "Velg hvis du har et ekte Roland-kompatible lydkort tilkoblet maskinen, og " "vil bruke dette." -#: gui/options.cpp:886 +#: gui/options.cpp:888 msgctxt "lowres" msgid "True Roland MT-32 (no GM emulation)" msgstr "Ekte Roland MT-32 (deaktiver GM-emulering)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "Roland GS Device (enable MT-32 mappings)" msgstr "Roland GS Modus (aktiver MT32-mapping)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "" "Check if you want to enable patch mappings to emulate an MT-32 on a Roland " "GS device" @@ -906,169 +908,181 @@ msgstr "" "Aktiver hvis du vil slå på patch mappinger for å emulere en MT-32 eller " "Roland GS enhet" -#: gui/options.cpp:898 +#: gui/options.cpp:900 msgid "Don't use Roland MT-32 music" msgstr "Ikke bruk Roland MT-32-musikk" -#: gui/options.cpp:925 +#: gui/options.cpp:927 msgid "Text and Speech:" msgstr "Tekst og Tale:" -#: gui/options.cpp:929 gui/options.cpp:939 +#: gui/options.cpp:931 gui/options.cpp:941 msgid "Speech" msgstr "Tale" -#: gui/options.cpp:930 gui/options.cpp:940 +#: gui/options.cpp:932 gui/options.cpp:942 msgid "Subtitles" msgstr "Undertekster" -#: gui/options.cpp:931 +#: gui/options.cpp:933 msgid "Both" msgstr "Begge" -#: gui/options.cpp:933 +#: gui/options.cpp:935 msgid "Subtitle speed:" msgstr "Teksthastighet:" -#: gui/options.cpp:935 +#: gui/options.cpp:937 msgctxt "lowres" msgid "Text and Speech:" msgstr "Tekst og Tale:" -#: gui/options.cpp:939 +#: gui/options.cpp:941 msgid "Spch" msgstr "Tale" -#: gui/options.cpp:940 +#: gui/options.cpp:942 msgid "Subs" msgstr "Tekst" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgctxt "lowres" msgid "Both" msgstr "Begge" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgid "Show subtitles and play speech" msgstr "Vis undertekster, og spill av tale" -#: gui/options.cpp:943 +#: gui/options.cpp:945 msgctxt "lowres" msgid "Subtitle speed:" msgstr "Underteksthastighet:" -#: gui/options.cpp:959 +#: gui/options.cpp:961 msgid "Music volume:" msgstr "Musikkvolum:" -#: gui/options.cpp:961 +#: gui/options.cpp:963 msgctxt "lowres" msgid "Music volume:" msgstr "Musikkvolum:" -#: gui/options.cpp:968 +#: gui/options.cpp:970 msgid "Mute All" msgstr "Demp alle" -#: gui/options.cpp:971 +#: gui/options.cpp:973 msgid "SFX volume:" msgstr "Lydeffektvolum:" -#: gui/options.cpp:971 gui/options.cpp:973 gui/options.cpp:974 +#: gui/options.cpp:973 gui/options.cpp:975 gui/options.cpp:976 msgid "Special sound effects volume" msgstr "Volum for spesielle lydeffekter" -#: gui/options.cpp:973 +#: gui/options.cpp:975 msgctxt "lowres" msgid "SFX volume:" msgstr "Lydeffektvolum:" -#: gui/options.cpp:981 +#: gui/options.cpp:983 msgid "Speech volume:" msgstr "Talevolum:" -#: gui/options.cpp:983 +#: gui/options.cpp:985 msgctxt "lowres" msgid "Speech volume:" msgstr "Talevolum:" -#: gui/options.cpp:1140 +#: gui/options.cpp:1142 msgid "Theme Path:" msgstr "Temasti:" -#: gui/options.cpp:1142 +#: gui/options.cpp:1144 msgctxt "lowres" msgid "Theme Path:" msgstr "Temasti:" -#: gui/options.cpp:1148 gui/options.cpp:1150 gui/options.cpp:1151 +#: gui/options.cpp:1150 gui/options.cpp:1152 gui/options.cpp:1153 msgid "Specifies path to additional data used by all games or ScummVM" msgstr "Velger sti for ytterligere data brukt av alle spill eller ScummVM" -#: gui/options.cpp:1157 +#: gui/options.cpp:1159 msgid "Plugins Path:" msgstr "Pluginsti:" -#: gui/options.cpp:1159 +#: gui/options.cpp:1161 msgctxt "lowres" msgid "Plugins Path:" msgstr "Pluginsti:" -#: gui/options.cpp:1170 +#: gui/options.cpp:1172 msgctxt "lowres" msgid "Misc" msgstr "Div" -#: gui/options.cpp:1172 +#: gui/options.cpp:1174 msgid "Theme:" msgstr "Tema:" -#: gui/options.cpp:1176 +#: gui/options.cpp:1178 msgid "GUI Renderer:" msgstr "GUI-tegner:" -#: gui/options.cpp:1188 +#: gui/options.cpp:1190 msgid "Autosave:" msgstr "Autolagre:" -#: gui/options.cpp:1190 +#: gui/options.cpp:1192 msgctxt "lowres" msgid "Autosave:" msgstr "Autolagre:" -#: gui/options.cpp:1198 +#: gui/options.cpp:1200 msgid "Keys" msgstr "Taster" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "GUI Language:" msgstr "GUI-språk:" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "Language of ScummVM GUI" msgstr "Språk i ScummVM-GUIet" -#: gui/options.cpp:1364 +#: gui/options.cpp:1235 +msgid "Update check:" +msgstr "" + +#: gui/options.cpp:1235 +msgid "How often to check ScummVM updates" +msgstr "" + +#: gui/options.cpp:1247 +msgid "Check now" +msgstr "" + +#: gui/options.cpp:1382 msgid "You have to restart ScummVM before your changes will take effect." msgstr "Du må starte ScummVM på nytt for at endringene skal tre i kraft. " -#: gui/options.cpp:1384 +#: gui/options.cpp:1415 msgid "The chosen directory cannot be written to. Please select another one." msgstr "Den valgte mappen kan ikke skrives til. Vennligst velg en annen." -#: gui/options.cpp:1393 +#: gui/options.cpp:1424 msgid "Select directory for GUI themes" msgstr "Velg mappe for GUI-temaer" -#: gui/options.cpp:1403 +#: gui/options.cpp:1434 msgid "Select directory for extra files" msgstr "Velg mappe for ytterligere filer" -#: gui/options.cpp:1414 +#: gui/options.cpp:1445 msgid "Select directory for plugins" msgstr "Velg mappe for plugins" -#: gui/options.cpp:1467 +#: gui/options.cpp:1498 msgid "" "The theme you selected does not support your current language. If you want " "to use this theme you need to switch to another language first." @@ -1241,39 +1255,60 @@ msgstr "Kantutjevnet tegner" msgid "Antialiased" msgstr "Kantutjevnet" -#: gui/widget.cpp:323 gui/widget.cpp:325 gui/widget.cpp:331 gui/widget.cpp:333 +#: gui/updates-dialog.cpp:51 +msgid "" +"ScummVM now supports automatic check for updates\n" +"which requires access to the Internet.\n" +"\n" +"Would you like to enable this feature?" +msgstr "" + +#: gui/updates-dialog.cpp:55 +msgid "(You can always enable it in the options dialog on the Misc tab)" +msgstr "" + +#: gui/updates-dialog.cpp:92 +#, fuzzy +msgid "Check for updates automatically" +msgstr "Sjekk for oppdateringer..." + +#: gui/updates-dialog.cpp:111 +msgid "Proceed" +msgstr "" + +#: gui/widget.cpp:327 gui/widget.cpp:329 gui/widget.cpp:335 gui/widget.cpp:337 msgid "Clear value" msgstr "Tųm verdi" -#: base/main.cpp:237 +#: base/main.cpp:240 #, c-format msgid "Engine does not support debug level '%s'" msgstr "Motoren stųtter ikke debug-nivå '%s'" -#: base/main.cpp:309 +#: base/main.cpp:312 msgid "Menu" msgstr "Meny" -#: base/main.cpp:312 backends/platform/symbian/src/SymbianActions.cpp:45 +#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:45 #: backends/platform/wince/CEActionsPocket.cpp:45 #: backends/platform/wince/CEActionsSmartphone.cpp:46 msgid "Skip" msgstr "Hopp over" -#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:50 +#: base/main.cpp:318 backends/platform/symbian/src/SymbianActions.cpp:50 #: backends/platform/wince/CEActionsPocket.cpp:42 msgid "Pause" msgstr "Pause" -#: base/main.cpp:318 +#: base/main.cpp:321 msgid "Skip line" msgstr "Hopp over linje" -#: base/main.cpp:510 +#: base/main.cpp:520 msgid "Error running game:" msgstr "Problem ved kjųring av spill:" -#: base/main.cpp:557 +#: base/main.cpp:567 msgid "Could not find any engine capable of running the selected game" msgstr "Kunne ikke finne noen motor som kunne kjųre det valgte spillet" @@ -1368,17 +1403,34 @@ msgctxt "lowres" msgid "Hercules Amber" msgstr "Hercules Oransje" -#: engines/advancedDetector.cpp:317 +#: common/updates.cpp:58 +msgid "Daily" +msgstr "" + +#: common/updates.cpp:60 +msgid "Weekly" +msgstr "" + +#: common/updates.cpp:62 +msgid "Monthly" +msgstr "" + +#: common/updates.cpp:64 +#, fuzzy +msgid "<Bad value>" +msgstr "Tųm verdi" + +#: engines/advancedDetector.cpp:334 #, c-format msgid "The game in '%s' seems to be unknown." msgstr "Spillet i '%s' ser ut til å vęre ukjent." -#: engines/advancedDetector.cpp:318 +#: engines/advancedDetector.cpp:335 msgid "Please, report the following data to the ScummVM team along with name" msgstr "" "Vennligst rapporter de fųlgende dataene til ScummVM-teamet sammen med navnet" -#: engines/advancedDetector.cpp:320 +#: engines/advancedDetector.cpp:337 msgid "of the game you tried to add and its version/language/etc.:" msgstr "på spillet du forsųkte å legge til, og dets versjon/språk/etc.:" @@ -1386,11 +1438,11 @@ msgstr "på spillet du forsųkte å legge til, og dets versjon/språk/etc.:" msgid "~R~esume" msgstr "~F~ortsett" -#: engines/dialogs.cpp:87 +#: engines/dialogs.cpp:87 engines/mohawk/dialogs.cpp:113 msgid "~L~oad" msgstr "~Å~pne" -#: engines/dialogs.cpp:91 +#: engines/dialogs.cpp:91 engines/mohawk/dialogs.cpp:114 msgid "~S~ave" msgstr "~L~agre" @@ -1419,9 +1471,9 @@ msgstr "~T~ilbake til oppstarter" #: engines/avalanche/parser.cpp:1899 engines/cge/events.cpp:74 #: engines/cge2/events.cpp:67 engines/cruise/menu.cpp:212 #: engines/drascula/saveload.cpp:336 engines/dreamweb/saveload.cpp:261 -#: engines/hugo/file.cpp:298 engines/neverhood/menumodule.cpp:877 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/hugo/file.cpp:298 engines/mohawk/dialogs.cpp:121 +#: engines/neverhood/menumodule.cpp:877 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save game:" @@ -1436,9 +1488,10 @@ msgstr "Lagret spill:" #: engines/cge/events.cpp:74 engines/cge2/events.cpp:67 #: engines/cruise/menu.cpp:212 engines/drascula/saveload.cpp:336 #: engines/dreamweb/saveload.cpp:261 engines/hugo/file.cpp:298 -#: engines/neverhood/menumodule.cpp:877 engines/parallaction/saveload.cpp:212 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/scumm/dialogs.cpp:188 engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/mohawk/dialogs.cpp:121 engines/neverhood/menumodule.cpp:877 +#: engines/parallaction/saveload.cpp:212 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/scumm/dialogs.cpp:188 +#: engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save" @@ -1463,13 +1516,13 @@ msgstr "" "Lagring av spilltilstand feilet (%s)! Vennligst konsulter README-filen for " "grunnleggende informasjon og instruksjon om hvordan du får ytterligere hjelp." -#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:109 -#: engines/mohawk/dialogs.cpp:170 engines/tsage/dialogs.cpp:106 +#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:117 +#: engines/mohawk/dialogs.cpp:242 engines/tsage/dialogs.cpp:106 msgid "~O~K" msgstr "~O~K" -#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:110 -#: engines/mohawk/dialogs.cpp:171 engines/tsage/dialogs.cpp:107 +#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:118 +#: engines/mohawk/dialogs.cpp:243 engines/tsage/dialogs.cpp:107 msgid "~C~ancel" msgstr "~A~vbryt" @@ -1625,11 +1678,11 @@ msgstr "FM Towns Lyd" msgid "PC-98 Audio" msgstr "PC-98 Lyd" -#: audio/softsynth/mt32.cpp:200 +#: audio/softsynth/mt32.cpp:196 msgid "Initializing MT-32 Emulator" msgstr "Initialiserer MT-32-Emulator" -#: audio/softsynth/mt32.cpp:426 +#: audio/softsynth/mt32.cpp:434 msgid "MT-32 Emulator" msgstr "MT-32 Emulator" @@ -1746,11 +1799,11 @@ msgstr "Auto-dramodus er nå" msgid "Swipe three fingers to the right to toggle." msgstr "Sveip tre fingre til hųyre for å veksle" -#: backends/graphics/opengl/opengl-graphics.cpp:119 +#: backends/graphics/opengl/opengl-graphics.cpp:126 msgid "OpenGL" msgstr "OpenGL" -#: backends/graphics/opengl/opengl-graphics.cpp:120 +#: backends/graphics/opengl/opengl-graphics.cpp:127 msgid "OpenGL (No filtering)" msgstr "OpenGL (Ingen filtrering)" @@ -2303,20 +2356,20 @@ msgstr "" "Ikke glem å koble en tast til handlingen 'Skjul verktųylinje' for å se hele " "inventaret" -#: backends/updates/macosx/macosx-updates.mm:67 +#: backends/updates/macosx/macosx-updates.mm:68 msgid "Check for Updates..." msgstr "Sjekk for oppdateringer..." #: engines/agi/detection.cpp:147 engines/cine/detection.cpp:70 #: engines/drascula/detection.cpp:302 engines/dreamweb/detection.cpp:47 -#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:404 +#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:410 #: engines/toltecs/detection.cpp:200 engines/zvision/detection_tables.h:51 msgid "Use original save/load screens" msgstr "Bruk originale lagre/laste-skjermer" #: engines/agi/detection.cpp:148 engines/cine/detection.cpp:71 #: engines/drascula/detection.cpp:303 engines/dreamweb/detection.cpp:48 -#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:405 +#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:411 #: engines/toltecs/detection.cpp:201 msgid "Use the original save/load screens, instead of the ScummVM ones" msgstr "Bruk de originale lagre/laste-skjermene, istedenfor ScummVM-variantene" @@ -2343,11 +2396,30 @@ msgid "" msgstr "" "Aktiver musstųtte. Tillater å bruke mus for bevegelse og i spillmenyer." +#: engines/agi/detection.cpp:177 +#, fuzzy +msgid "Use Hercules hires font" +msgstr "Hercules Grųnn" + +#: engines/agi/detection.cpp:178 +msgid "Uses Hercules hires font, when font file is available." +msgstr "" + +#: engines/agi/detection.cpp:187 +msgid "Pause when entering commands" +msgstr "" + +#: engines/agi/detection.cpp:188 +msgid "" +"Shows a command prompt window and pauses the game (like in SCI) instead of a " +"real-time prompt." +msgstr "" + #: engines/agi/saveload.cpp:777 engines/avalanche/parser.cpp:1887 #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore game:" @@ -2357,13 +2429,13 @@ msgstr "Gjennopprett spill:" #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore" msgstr "Gjenopprett" -#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2377 +#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2374 #, c-format msgid "" "Failed to load game state from file:\n" @@ -2374,7 +2446,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2370 +#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2367 #, c-format msgid "" "Failed to save game state to file:\n" @@ -2385,7 +2457,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2388 +#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2385 #, c-format msgid "" "Successfully saved game state in file:\n" @@ -2630,29 +2702,39 @@ msgstr "" "ScummVM debugkonsollen og bruke kommandoen «import_savefile»\n" "\n" +#: engines/mohawk/detection.cpp:168 +msgid "Play the Myst fly by movie" +msgstr "" + +#: engines/mohawk/detection.cpp:169 +msgid "The Myst fly by movie was not played by the original engine." +msgstr "" + #. I18N: Option for fast scene switching -#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:167 +#: engines/mohawk/dialogs.cpp:96 engines/mohawk/dialogs.cpp:239 msgid "~Z~ip Mode Activated" msgstr "~Z~ipmodus aktivert" -#: engines/mohawk/dialogs.cpp:93 +#: engines/mohawk/dialogs.cpp:97 msgid "~T~ransitions Enabled" msgstr "~O~verganger aktivert" #. I18N: Drop book page -#: engines/mohawk/dialogs.cpp:95 +#: engines/mohawk/dialogs.cpp:99 msgid "~D~rop Page" msgstr "~D~ropp Side" -#: engines/mohawk/dialogs.cpp:99 -msgid "~S~how Map" +#: engines/mohawk/dialogs.cpp:103 +#, fuzzy +msgid "Show ~M~ap" msgstr "Vi~s~ Kart" -#: engines/mohawk/dialogs.cpp:105 -msgid "~M~ain Menu" +#: engines/mohawk/dialogs.cpp:109 +#, fuzzy +msgid "Main Men~u~" msgstr "Hoved~m~eny" -#: engines/mohawk/dialogs.cpp:168 +#: engines/mohawk/dialogs.cpp:240 msgid "~W~ater Effect Enabled" msgstr "~V~anneffekt aktivert" @@ -2774,35 +2856,35 @@ msgstr "Alternativ intro" msgid "Use an alternative game intro (CD version only)" msgstr "Bruk en alternativ intro (Kun for CD-versjon)" -#: engines/sci/detection.cpp:374 +#: engines/sci/detection.cpp:380 msgid "Skip EGA dithering pass (full color backgrounds)" msgstr "Hopp over EGA dithering (fullfarge bakgrunner)" -#: engines/sci/detection.cpp:375 +#: engines/sci/detection.cpp:381 msgid "Skip dithering pass in EGA games, graphics are shown with full colors" msgstr "" -#: engines/sci/detection.cpp:384 +#: engines/sci/detection.cpp:390 msgid "Enable high resolution graphics" msgstr "Aktiver hųyopplųselig grafikk" -#: engines/sci/detection.cpp:385 +#: engines/sci/detection.cpp:391 msgid "Enable high resolution graphics/content" msgstr "Aktiver hųyopplųselig grafikk/innhold" -#: engines/sci/detection.cpp:394 +#: engines/sci/detection.cpp:400 msgid "Prefer digital sound effects" msgstr "Foretrekk digitale lydeffekter" -#: engines/sci/detection.cpp:395 +#: engines/sci/detection.cpp:401 msgid "Prefer digital sound effects instead of synthesized ones" msgstr "Foretrekk digitale lydeffekter fremfor syntetiske" -#: engines/sci/detection.cpp:414 +#: engines/sci/detection.cpp:420 msgid "Use IMF/Yamaha FB-01 for MIDI output" msgstr "Bruk IMF/Yamaha-FB-01 for MIDI-output" -#: engines/sci/detection.cpp:415 +#: engines/sci/detection.cpp:421 msgid "" "Use an IBM Music Feature card or a Yamaha FB-01 FM synth module for MIDI " "output" @@ -2810,33 +2892,42 @@ msgstr "" "Bruk et IBM Music Feature-kort eller en Yamaha FB-01 FM-synthmodul til MIDI " "output" -#: engines/sci/detection.cpp:425 +#: engines/sci/detection.cpp:431 msgid "Use CD audio" msgstr "Bruk CD-lyd" -#: engines/sci/detection.cpp:426 +#: engines/sci/detection.cpp:432 msgid "Use CD audio instead of in-game audio, if available" msgstr "Bruk CD-lyd istedenfor spillets lyd, hvis tilgjengelig" -#: engines/sci/detection.cpp:436 +#: engines/sci/detection.cpp:442 msgid "Use Windows cursors" msgstr "Bruk Windows-muspekere" -#: engines/sci/detection.cpp:437 +#: engines/sci/detection.cpp:443 msgid "" "Use the Windows cursors (smaller and monochrome) instead of the DOS ones" msgstr "Bruk Windows-muspekerene (mindre, og monokrome) isteden" -#: engines/sci/detection.cpp:447 +#: engines/sci/detection.cpp:453 msgid "Use silver cursors" msgstr "Bruk sųlvmuspekere" -#: engines/sci/detection.cpp:448 +#: engines/sci/detection.cpp:454 msgid "" "Use the alternate set of silver cursors, instead of the normal golden ones" msgstr "" "Bruk det alternative settet med sųlvmuspekere, istedenfor de normale gylne." +#: engines/scumm/detection.cpp:1335 +#, fuzzy +msgid "Show Object Line" +msgstr "Vis objektmerkelapper" + +#: engines/scumm/detection.cpp:1336 +msgid "Show the names of objects at the bottom of the screen" +msgstr "" + #: engines/scumm/dialogs.cpp:176 #, c-format msgid "Insert Disk %c and Press Button to Continue." @@ -3502,7 +3593,7 @@ msgstr "Musikkvolum: " msgid "Subtitle speed: " msgstr "Teksthastighet: " -#: engines/scumm/scumm.cpp:1832 +#: engines/scumm/scumm.cpp:1829 #, c-format msgid "" "Native MIDI support requires the Roland Upgrade from LucasArts,\n" @@ -3511,7 +3602,7 @@ msgstr "" "Ekte MIDI-stųtte krever «Roland Upgrade» fra LucasArts,\n" "men %s mangler. Bruker AdLib istedet." -#: engines/scumm/scumm.cpp:2644 +#: engines/scumm/scumm.cpp:2645 msgid "" "Usually, Maniac Mansion would start now. But for that to work, the game " "files for Maniac Mansion have to be in the 'Maniac' directory inside the " @@ -3688,6 +3779,15 @@ msgstr "Vis objektmerkelapper" msgid "Show labels for objects on mouse hover" msgstr "Vis merkelapper for objekter når musa står over dem" +#: engines/sword25/detection.cpp:46 +msgid "Use English speech" +msgstr "" + +#: engines/sword25/detection.cpp:47 +msgid "" +"Use English speech instead of German for every language other than German" +msgstr "" + #: engines/teenagent/resources.cpp:95 msgid "" "You're missing the 'teenagent.dat' file. Get it from the ScummVM website" diff --git a/po/nl_NL.po b/po/nl_NL.po index 99d1400b04..032daf4590 100644 --- a/po/nl_NL.po +++ b/po/nl_NL.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ScummVM 1.8.0git\n" "Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n" -"POT-Creation-Date: 2016-02-20 21:22+0000\n" +"POT-Creation-Date: 2016-04-07 08:55+0100\n" "PO-Revision-Date: 2016-02-21 13:05+0100\n" "Last-Translator: Ben Castricum <scummvm@bencastricum.nl>\n" "Language-Team: Ben Castricum <scummvm@bencastricum.nl>\n" @@ -56,10 +56,11 @@ msgstr "Ga omhoog" #: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editrecorddialog.cpp:67 #: gui/filebrowser-dialog.cpp:64 gui/fluidsynth-dialog.cpp:152 #: gui/KeysDialog.cpp:43 gui/launcher.cpp:351 gui/massadd.cpp:95 -#: gui/options.cpp:1237 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 +#: gui/options.cpp:1255 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 #: gui/recorderdialog.cpp:156 gui/saveload-dialog.cpp:216 #: gui/saveload-dialog.cpp:276 gui/saveload-dialog.cpp:547 -#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 engines/engine.cpp:546 +#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 +#: gui/updates-dialog.cpp:113 engines/engine.cpp:546 #: backends/events/default/default-events.cpp:196 #: backends/events/default/default-events.cpp:218 #: backends/platform/wii/options.cpp:48 engines/drascula/saveload.cpp:49 @@ -173,7 +174,7 @@ msgstr "Sinus" msgid "Triangle" msgstr "Driehoek" -#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1168 +#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1170 msgid "Misc" msgstr "Misc" @@ -207,12 +208,12 @@ msgstr "Alle FluidSynth instellingen terugzetten naar de standaard waarden." #: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:352 #: gui/launcher.cpp:1050 gui/launcher.cpp:1054 gui/massadd.cpp:92 -#: gui/options.cpp:1238 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 +#: gui/options.cpp:1256 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 #: engines/engine.cpp:476 backends/platform/wii/options.cpp:47 #: backends/platform/wince/CELauncherDialog.cpp:54 #: engines/agos/animation.cpp:558 engines/drascula/saveload.cpp:49 #: engines/groovie/script.cpp:408 engines/parallaction/saveload.cpp:274 -#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1834 +#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1831 #: engines/scumm/players/player_v3m.cpp:130 #: engines/scumm/players/player_v5m.cpp:108 engines/sky/compact.cpp:131 #: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:524 @@ -242,15 +243,15 @@ msgstr "Sluiten" msgid "Mouse click" msgstr "Muisklik" -#: gui/gui-manager.cpp:126 base/main.cpp:322 +#: gui/gui-manager.cpp:126 base/main.cpp:325 msgid "Display keyboard" msgstr "Toon toetsenbord" -#: gui/gui-manager.cpp:130 base/main.cpp:326 +#: gui/gui-manager.cpp:130 base/main.cpp:329 msgid "Remap keys" msgstr "Toetsen opnieuw koppelen" -#: gui/gui-manager.cpp:133 base/main.cpp:329 engines/scumm/help.cpp:87 +#: gui/gui-manager.cpp:133 base/main.cpp:332 engines/scumm/help.cpp:87 msgid "Toggle fullscreen" msgstr "Volledig scherm in-/uitschakelen" @@ -326,8 +327,8 @@ msgstr "" "De taal van het spel. Dit verandert een Engels spel niet naar een " "Nederlandse." -#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:87 -#: gui/options.cpp:735 gui/options.cpp:748 gui/options.cpp:1208 +#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:89 +#: gui/options.cpp:737 gui/options.cpp:750 gui/options.cpp:1210 #: audio/null.cpp:41 msgid "<default>" msgstr "<standaard>" @@ -349,11 +350,11 @@ msgstr "Platform:" msgid "Engine" msgstr "Engine" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "Graphics" msgstr "Beeld" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "GFX" msgstr "GFX" @@ -366,7 +367,7 @@ msgctxt "lowres" msgid "Override global graphic settings" msgstr "Negeer algemene grafische instellingen" -#: gui/launcher.cpp:257 gui/options.cpp:1094 +#: gui/launcher.cpp:257 gui/options.cpp:1096 msgid "Audio" msgstr "Geluid" @@ -379,11 +380,11 @@ msgctxt "lowres" msgid "Override global audio settings" msgstr "Negeer algemene audio instellingen" -#: gui/launcher.cpp:271 gui/options.cpp:1099 +#: gui/launcher.cpp:271 gui/options.cpp:1101 msgid "Volume" msgstr "Volume" -#: gui/launcher.cpp:273 gui/options.cpp:1101 +#: gui/launcher.cpp:273 gui/options.cpp:1103 msgctxt "lowres" msgid "Volume" msgstr "Volume" @@ -397,7 +398,7 @@ msgctxt "lowres" msgid "Override global volume settings" msgstr "Negeer algemene volume instellingen" -#: gui/launcher.cpp:286 gui/options.cpp:1109 +#: gui/launcher.cpp:286 gui/options.cpp:1111 msgid "MIDI" msgstr "MIDI" @@ -410,7 +411,7 @@ msgctxt "lowres" msgid "Override global MIDI settings" msgstr "Negeer algemene MIDI instellingen" -#: gui/launcher.cpp:300 gui/options.cpp:1115 +#: gui/launcher.cpp:300 gui/options.cpp:1117 msgid "MT-32" msgstr "MT-32" @@ -423,11 +424,11 @@ msgctxt "lowres" msgid "Override global MT-32 settings" msgstr "Negeer algemene MT-32 instellingen" -#: gui/launcher.cpp:314 gui/options.cpp:1122 +#: gui/launcher.cpp:314 gui/options.cpp:1124 msgid "Paths" msgstr "Paden" -#: gui/launcher.cpp:316 gui/options.cpp:1124 +#: gui/launcher.cpp:316 gui/options.cpp:1126 msgctxt "lowres" msgid "Paths" msgstr "Paden" @@ -441,7 +442,7 @@ msgctxt "lowres" msgid "Game Path:" msgstr "Spel Pad:" -#: gui/launcher.cpp:330 gui/options.cpp:1148 +#: gui/launcher.cpp:330 gui/options.cpp:1150 msgid "Extra Path:" msgstr "Extra Pad:" @@ -449,42 +450,42 @@ msgstr "Extra Pad:" msgid "Specifies path to additional data used by the game" msgstr "Specificeer pad naar additionele data voor het spel" -#: gui/launcher.cpp:332 gui/options.cpp:1150 +#: gui/launcher.cpp:332 gui/options.cpp:1152 msgctxt "lowres" msgid "Extra Path:" msgstr "Extra Pad:" -#: gui/launcher.cpp:339 gui/options.cpp:1132 +#: gui/launcher.cpp:339 gui/options.cpp:1134 msgid "Save Path:" msgstr "Bewaar Pad:" #: gui/launcher.cpp:339 gui/launcher.cpp:341 gui/launcher.cpp:342 -#: gui/options.cpp:1132 gui/options.cpp:1134 gui/options.cpp:1135 +#: gui/options.cpp:1134 gui/options.cpp:1136 gui/options.cpp:1137 msgid "Specifies where your saved games are put" msgstr "Bepaalt waar opgeslagen spellen worden bewaard." -#: gui/launcher.cpp:341 gui/options.cpp:1134 +#: gui/launcher.cpp:341 gui/options.cpp:1136 msgctxt "lowres" msgid "Save Path:" msgstr "Bewaar Pad:" #: gui/launcher.cpp:360 gui/launcher.cpp:459 gui/launcher.cpp:517 -#: gui/launcher.cpp:571 gui/options.cpp:1143 gui/options.cpp:1151 -#: gui/options.cpp:1160 gui/options.cpp:1275 gui/options.cpp:1281 -#: gui/options.cpp:1289 gui/options.cpp:1319 gui/options.cpp:1325 -#: gui/options.cpp:1332 gui/options.cpp:1425 gui/options.cpp:1428 -#: gui/options.cpp:1440 +#: gui/launcher.cpp:571 gui/options.cpp:1145 gui/options.cpp:1153 +#: gui/options.cpp:1162 gui/options.cpp:1293 gui/options.cpp:1299 +#: gui/options.cpp:1307 gui/options.cpp:1337 gui/options.cpp:1343 +#: gui/options.cpp:1350 gui/options.cpp:1456 gui/options.cpp:1459 +#: gui/options.cpp:1471 msgctxt "path" msgid "None" msgstr "Geen" #: gui/launcher.cpp:365 gui/launcher.cpp:465 gui/launcher.cpp:575 -#: gui/options.cpp:1269 gui/options.cpp:1313 gui/options.cpp:1431 +#: gui/options.cpp:1287 gui/options.cpp:1331 gui/options.cpp:1462 #: backends/platform/wii/options.cpp:56 msgid "Default" msgstr "Standaard" -#: gui/launcher.cpp:510 gui/options.cpp:1434 +#: gui/launcher.cpp:510 gui/options.cpp:1465 msgid "Select SoundFont" msgstr "Selecteer SoundFont" @@ -496,7 +497,7 @@ msgstr "Selecteer map met speldata" msgid "Select additional game directory" msgstr "Selecteer additionele speldatamap" -#: gui/launcher.cpp:559 gui/options.cpp:1377 +#: gui/launcher.cpp:559 gui/options.cpp:1408 msgid "Select directory for saved games" msgstr "Selecteer map voor opgeslagen spellen" @@ -504,7 +505,7 @@ msgstr "Selecteer map voor opgeslagen spellen" msgid "This game ID is already taken. Please choose another one." msgstr "Dit spel-ID is al in gebruik. Kies a.u.b. een andere." -#: gui/launcher.cpp:626 engines/dialogs.cpp:111 +#: gui/launcher.cpp:626 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:115 msgid "~Q~uit" msgstr "~S~toppen" @@ -594,17 +595,18 @@ msgid "Search:" msgstr "Zoeken:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214 -#: engines/mohawk/riven.cpp:718 engines/pegasus/pegasus.cpp:353 -#: engines/tsage/scenes.cpp:600 +#: engines/mohawk/dialogs.cpp:120 engines/mohawk/riven.cpp:718 +#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:600 msgid "Load game:" msgstr "Laad spel:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 #: backends/platform/wince/CEActionsPocket.cpp:267 #: backends/platform/wince/CEActionsSmartphone.cpp:231 -#: engines/cruise/menu.cpp:214 engines/mohawk/riven.cpp:718 -#: engines/parallaction/saveload.cpp:197 engines/pegasus/pegasus.cpp:353 -#: engines/scumm/dialogs.cpp:189 engines/tsage/scenes.cpp:600 +#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:120 +#: engines/mohawk/riven.cpp:718 engines/parallaction/saveload.cpp:197 +#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:189 +#: engines/tsage/scenes.cpp:600 msgid "Load" msgstr "Laden" @@ -697,132 +699,132 @@ msgstr "Schakel naar Spel" msgid "Fast replay" msgstr "Snelle herhaling" -#: gui/options.cpp:85 +#: gui/options.cpp:87 common/updates.cpp:56 msgid "Never" msgstr "Nooit" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 5 mins" msgstr "elke 5 minuten" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 10 mins" msgstr "elke 10 minuten" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 15 mins" msgstr "elke 15 minuten" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 30 mins" msgstr "elke 30 minuten" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "8 kHz" msgstr "8 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "11 kHz" msgstr "11 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "22 kHz" msgstr "22 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "44 kHz" msgstr "44 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "48 kHz" msgstr "48 kHz" -#: gui/options.cpp:255 gui/options.cpp:479 gui/options.cpp:580 -#: gui/options.cpp:649 gui/options.cpp:857 +#: gui/options.cpp:257 gui/options.cpp:481 gui/options.cpp:582 +#: gui/options.cpp:651 gui/options.cpp:859 msgctxt "soundfont" msgid "None" msgstr "Geen" -#: gui/options.cpp:389 +#: gui/options.cpp:391 msgid "Failed to apply some of the graphic options changes:" msgstr "Sommige grafische opties konden niet worden toegepast:" -#: gui/options.cpp:401 +#: gui/options.cpp:403 msgid "the video mode could not be changed." msgstr "de videomodus kon niet veranderd worden." -#: gui/options.cpp:407 +#: gui/options.cpp:409 msgid "the fullscreen setting could not be changed" msgstr "de volledig-scherminstelling kon niet veranderd worden" -#: gui/options.cpp:413 +#: gui/options.cpp:415 msgid "the aspect ratio setting could not be changed" msgstr "de pixelverhoudinginstelling kon niet veranderd worden" -#: gui/options.cpp:732 +#: gui/options.cpp:734 msgid "Graphics mode:" msgstr "Grafische modus:" -#: gui/options.cpp:746 +#: gui/options.cpp:748 msgid "Render mode:" msgstr "Render modus:" -#: gui/options.cpp:746 gui/options.cpp:747 +#: gui/options.cpp:748 gui/options.cpp:749 msgid "Special dithering modes supported by some games" msgstr "Speciale ditheringmodi die door sommige games ondersteund worden." -#: gui/options.cpp:758 +#: gui/options.cpp:760 #: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2316 msgid "Fullscreen mode" msgstr "Volledig-scherm modus" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Aspect ratio correction" msgstr "Pixelverhoudingcorrectie" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Correct aspect ratio for 320x200 games" msgstr "Corrigeer de pixelverhouding voor 320x200 spellen." -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Preferred Device:" msgstr "Voorkeursapparaat:" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Music Device:" msgstr "Muziekapparaat:" -#: gui/options.cpp:769 gui/options.cpp:771 +#: gui/options.cpp:771 gui/options.cpp:773 msgid "Specifies preferred sound device or sound card emulator" msgstr "Specificeert het voorkeurs geluidsapparaat of geluidskaartemulator" -#: gui/options.cpp:769 gui/options.cpp:771 gui/options.cpp:772 +#: gui/options.cpp:771 gui/options.cpp:773 gui/options.cpp:774 msgid "Specifies output sound device or sound card emulator" msgstr "Specificeert geluidsapparaat of geluidskaartemulator" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Preferred Dev.:" msgstr "Voorkeursapparaat:" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Music Device:" msgstr "Muziekapparaat:" -#: gui/options.cpp:798 +#: gui/options.cpp:800 msgid "AdLib emulator:" msgstr "AdLib emulator:" -#: gui/options.cpp:798 gui/options.cpp:799 +#: gui/options.cpp:800 gui/options.cpp:801 msgid "AdLib is used for music in many games" msgstr "AdLib word in vele spelen voor muziek gebruikt" -#: gui/options.cpp:809 +#: gui/options.cpp:811 msgid "Output rate:" msgstr "Output snelheid:" -#: gui/options.cpp:809 gui/options.cpp:810 +#: gui/options.cpp:811 gui/options.cpp:812 msgid "" "Higher value specifies better sound quality but may be not supported by your " "soundcard" @@ -830,67 +832,67 @@ msgstr "" "Hogere waarden geven betere geluidskwaliteit maar worden mogelijk niet " "ondersteund door uw geluidskaart." -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "GM Device:" msgstr "GM Apparaat:" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "Specifies default sound device for General MIDI output" msgstr "Specificeert het standaard geluidsapparaat voor General MIDI" -#: gui/options.cpp:831 +#: gui/options.cpp:833 msgid "Don't use General MIDI music" msgstr "Geen General MIDI muziek gebruiken" -#: gui/options.cpp:842 gui/options.cpp:908 +#: gui/options.cpp:844 gui/options.cpp:910 msgid "Use first available device" msgstr "Gebruik eerst beschikbare apparaat" -#: gui/options.cpp:854 +#: gui/options.cpp:856 msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:854 gui/options.cpp:856 gui/options.cpp:857 +#: 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 wordt ondersteund door FluidSynth en Timidity en sommige " "geluidskaarten." -#: gui/options.cpp:856 +#: gui/options.cpp:858 msgctxt "lowres" msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Mixed AdLib/MIDI mode" msgstr "Gemengde AdLib/MIDI modus" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Use both MIDI and AdLib sound generation" msgstr "Gebruik zowel MIDI als AdLib geluid" -#: gui/options.cpp:865 +#: gui/options.cpp:867 msgid "MIDI gain:" msgstr "MIDI gain:" -#: gui/options.cpp:872 +#: gui/options.cpp:874 msgid "FluidSynth Settings" msgstr "FluidSynth Instellingen" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "MT-32 Device:" msgstr "MT-32 Apparaat:" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output" msgstr "" "Specificeert het standaard geluidsapparaat voor Roland MT-32/LAPC1/CM32l/CM64" -#: gui/options.cpp:884 +#: gui/options.cpp:886 msgid "True Roland MT-32 (disable GM emulation)" msgstr "Waarheidsgetrouwe Roland MT-32 (GM emulatie uitschakelen)" -#: gui/options.cpp:884 gui/options.cpp:886 +#: gui/options.cpp:886 gui/options.cpp:888 msgid "" "Check if you want to use your real hardware Roland-compatible sound device " "connected to your computer" @@ -898,16 +900,16 @@ msgstr "" "Selecteer als u een hardware Roland-compatible geluidsapparaat gekoppeld aan " "uw computer wilt gebruiken" -#: gui/options.cpp:886 +#: gui/options.cpp:888 msgctxt "lowres" msgid "True Roland MT-32 (no GM emulation)" msgstr "Echte Roland MT-32 (geen GM emulatie)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "Roland GS Device (enable MT-32 mappings)" msgstr "Roland GS Device (met MT-32 mappings)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "" "Check if you want to enable patch mappings to emulate an MT-32 on a Roland " "GS device" @@ -915,171 +917,183 @@ msgstr "" "Selecteer dit als u patchmappings wilt om een MT-32 op een Roland GS " "apparaat te emuleren." -#: gui/options.cpp:898 +#: gui/options.cpp:900 msgid "Don't use Roland MT-32 music" msgstr "Geen Roland MT-32 muziek gebruiken" -#: gui/options.cpp:925 +#: gui/options.cpp:927 msgid "Text and Speech:" msgstr "Spraak en/of tekst:" -#: gui/options.cpp:929 gui/options.cpp:939 +#: gui/options.cpp:931 gui/options.cpp:941 msgid "Speech" msgstr "Spraak" -#: gui/options.cpp:930 gui/options.cpp:940 +#: gui/options.cpp:932 gui/options.cpp:942 msgid "Subtitles" msgstr "Tekst" -#: gui/options.cpp:931 +#: gui/options.cpp:933 msgid "Both" msgstr "Beide" -#: gui/options.cpp:933 +#: gui/options.cpp:935 msgid "Subtitle speed:" msgstr "Snelheid tekst:" -#: gui/options.cpp:935 +#: gui/options.cpp:937 msgctxt "lowres" msgid "Text and Speech:" msgstr "Spraak en/of text:" -#: gui/options.cpp:939 +#: gui/options.cpp:941 msgid "Spch" msgstr "Sprk" -#: gui/options.cpp:940 +#: gui/options.cpp:942 msgid "Subs" msgstr "Text" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgctxt "lowres" msgid "Both" msgstr "Beide" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgid "Show subtitles and play speech" msgstr "Toon tekst en speel spraak af" -#: gui/options.cpp:943 +#: gui/options.cpp:945 msgctxt "lowres" msgid "Subtitle speed:" msgstr "Snelheid text:" -#: gui/options.cpp:959 +#: gui/options.cpp:961 msgid "Music volume:" msgstr "Muziek volume:" -#: gui/options.cpp:961 +#: gui/options.cpp:963 msgctxt "lowres" msgid "Music volume:" msgstr "Muziek volume:" -#: gui/options.cpp:968 +#: gui/options.cpp:970 msgid "Mute All" msgstr "Alles Dempen" -#: gui/options.cpp:971 +#: gui/options.cpp:973 msgid "SFX volume:" msgstr "SFX volume:" -#: gui/options.cpp:971 gui/options.cpp:973 gui/options.cpp:974 +#: gui/options.cpp:973 gui/options.cpp:975 gui/options.cpp:976 msgid "Special sound effects volume" msgstr "Volume voor speciale geluidseffecten" -#: gui/options.cpp:973 +#: gui/options.cpp:975 msgctxt "lowres" msgid "SFX volume:" msgstr "SFX volume:" -#: gui/options.cpp:981 +#: gui/options.cpp:983 msgid "Speech volume:" msgstr "Spraak volume:" -#: gui/options.cpp:983 +#: gui/options.cpp:985 msgctxt "lowres" msgid "Speech volume:" msgstr "Spraak volume:" -#: gui/options.cpp:1140 +#: gui/options.cpp:1142 msgid "Theme Path:" msgstr "Thema Pad:" -#: gui/options.cpp:1142 +#: gui/options.cpp:1144 msgctxt "lowres" msgid "Theme Path:" msgstr "Thema Pad:" -#: gui/options.cpp:1148 gui/options.cpp:1150 gui/options.cpp:1151 +#: gui/options.cpp:1150 gui/options.cpp:1152 gui/options.cpp:1153 msgid "Specifies path to additional data used by all games or ScummVM" msgstr "" "Specificeert het pad for aanvullende data voor ScummVM zelf of de spellen." -#: gui/options.cpp:1157 +#: gui/options.cpp:1159 msgid "Plugins Path:" msgstr "Plugins Pad:" -#: gui/options.cpp:1159 +#: gui/options.cpp:1161 msgctxt "lowres" msgid "Plugins Path:" msgstr "Plugins Pad:" -#: gui/options.cpp:1170 +#: gui/options.cpp:1172 msgctxt "lowres" msgid "Misc" msgstr "Misc" -#: gui/options.cpp:1172 +#: gui/options.cpp:1174 msgid "Theme:" msgstr "Thema:" -#: gui/options.cpp:1176 +#: gui/options.cpp:1178 msgid "GUI Renderer:" msgstr "GUI Renderer:" -#: gui/options.cpp:1188 +#: gui/options.cpp:1190 msgid "Autosave:" msgstr "Autosave:" -#: gui/options.cpp:1190 +#: gui/options.cpp:1192 msgctxt "lowres" msgid "Autosave:" msgstr "Autosave:" -#: gui/options.cpp:1198 +#: gui/options.cpp:1200 msgid "Keys" msgstr "Toetsen" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "GUI Language:" msgstr "GUI Taal:" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "Language of ScummVM GUI" msgstr "Taal van de ScummVM GUI" -#: gui/options.cpp:1364 +#: gui/options.cpp:1235 +msgid "Update check:" +msgstr "" + +#: gui/options.cpp:1235 +msgid "How often to check ScummVM updates" +msgstr "" + +#: gui/options.cpp:1247 +msgid "Check now" +msgstr "" + +#: gui/options.cpp:1382 msgid "You have to restart ScummVM before your changes will take effect." msgstr "U dient ScummVM opnieuw op te starten om de wijzigingen te activeren." -#: gui/options.cpp:1384 +#: gui/options.cpp:1415 msgid "The chosen directory cannot be written to. Please select another one." msgstr "" "Er kan niet worden geschreven in de gekozen map. Selecteer a.u.b. een andere." -#: gui/options.cpp:1393 +#: gui/options.cpp:1424 msgid "Select directory for GUI themes" msgstr "Selecteer map voor GUI themas" -#: gui/options.cpp:1403 +#: gui/options.cpp:1434 msgid "Select directory for extra files" msgstr "Selecteer map voor extra bestanden" -#: gui/options.cpp:1414 +#: gui/options.cpp:1445 msgid "Select directory for plugins" msgstr "Selecteer map voor plugins" -#: gui/options.cpp:1467 +#: gui/options.cpp:1498 msgid "" "The theme you selected does not support your current language. If you want " "to use this theme you need to switch to another language first." @@ -1252,39 +1266,60 @@ msgstr "Antialiased Renderer" msgid "Antialiased" msgstr "Antialiased" -#: gui/widget.cpp:323 gui/widget.cpp:325 gui/widget.cpp:331 gui/widget.cpp:333 +#: gui/updates-dialog.cpp:51 +msgid "" +"ScummVM now supports automatic check for updates\n" +"which requires access to the Internet.\n" +"\n" +"Would you like to enable this feature?" +msgstr "" + +#: gui/updates-dialog.cpp:55 +msgid "(You can always enable it in the options dialog on the Misc tab)" +msgstr "" + +#: gui/updates-dialog.cpp:92 +#, fuzzy +msgid "Check for updates automatically" +msgstr "Controleren op updates..." + +#: gui/updates-dialog.cpp:111 +msgid "Proceed" +msgstr "" + +#: gui/widget.cpp:327 gui/widget.cpp:329 gui/widget.cpp:335 gui/widget.cpp:337 msgid "Clear value" msgstr "Veld leegmaken" -#: base/main.cpp:237 +#: base/main.cpp:240 #, c-format msgid "Engine does not support debug level '%s'" msgstr "Engine ondersteunt debug level '%s' niet" -#: base/main.cpp:309 +#: base/main.cpp:312 msgid "Menu" msgstr "Menu" -#: base/main.cpp:312 backends/platform/symbian/src/SymbianActions.cpp:45 +#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:45 #: backends/platform/wince/CEActionsPocket.cpp:45 #: backends/platform/wince/CEActionsSmartphone.cpp:46 msgid "Skip" msgstr "Overslaan" -#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:50 +#: base/main.cpp:318 backends/platform/symbian/src/SymbianActions.cpp:50 #: backends/platform/wince/CEActionsPocket.cpp:42 msgid "Pause" msgstr "Pauze" -#: base/main.cpp:318 +#: base/main.cpp:321 msgid "Skip line" msgstr "Regel overslaan" -#: base/main.cpp:510 +#: base/main.cpp:520 msgid "Error running game:" msgstr "Fout tijdens het starten van spel:" -#: base/main.cpp:557 +#: base/main.cpp:567 msgid "Could not find any engine capable of running the selected game" msgstr "" "Kon geen engine vinden die in staat was het geselecteerde spel te spelen" @@ -1380,17 +1415,34 @@ msgctxt "lowres" msgid "Hercules Amber" msgstr "Hercules Amber" -#: engines/advancedDetector.cpp:317 +#: common/updates.cpp:58 +msgid "Daily" +msgstr "" + +#: common/updates.cpp:60 +msgid "Weekly" +msgstr "" + +#: common/updates.cpp:62 +msgid "Monthly" +msgstr "" + +#: common/updates.cpp:64 +#, fuzzy +msgid "<Bad value>" +msgstr "Veld leegmaken" + +#: engines/advancedDetector.cpp:334 #, c-format msgid "The game in '%s' seems to be unknown." msgstr "Het spel in '%s' lijkt onbekend te zijn." -#: engines/advancedDetector.cpp:318 +#: engines/advancedDetector.cpp:335 msgid "Please, report the following data to the ScummVM team along with name" msgstr "" "Raporteer a.u.b. de volgende gegevens aan het ScummVM team samen met de naam" -#: engines/advancedDetector.cpp:320 +#: engines/advancedDetector.cpp:337 msgid "of the game you tried to add and its version/language/etc.:" msgstr "van het spel die u probeerde toe te voegen, en haar versie/taal/etc.:" @@ -1398,11 +1450,11 @@ msgstr "van het spel die u probeerde toe te voegen, en haar versie/taal/etc.:" msgid "~R~esume" msgstr "~H~ervatten" -#: engines/dialogs.cpp:87 +#: engines/dialogs.cpp:87 engines/mohawk/dialogs.cpp:113 msgid "~L~oad" msgstr "~L~aden" -#: engines/dialogs.cpp:91 +#: engines/dialogs.cpp:91 engines/mohawk/dialogs.cpp:114 msgid "~S~ave" msgstr "Op~s~laan" @@ -1431,9 +1483,9 @@ msgstr "S~t~artmenu" #: engines/avalanche/parser.cpp:1899 engines/cge/events.cpp:74 #: engines/cge2/events.cpp:67 engines/cruise/menu.cpp:212 #: engines/drascula/saveload.cpp:336 engines/dreamweb/saveload.cpp:261 -#: engines/hugo/file.cpp:298 engines/neverhood/menumodule.cpp:877 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/hugo/file.cpp:298 engines/mohawk/dialogs.cpp:121 +#: engines/neverhood/menumodule.cpp:877 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save game:" @@ -1448,9 +1500,10 @@ msgstr "Spel opslaan:" #: engines/cge/events.cpp:74 engines/cge2/events.cpp:67 #: engines/cruise/menu.cpp:212 engines/drascula/saveload.cpp:336 #: engines/dreamweb/saveload.cpp:261 engines/hugo/file.cpp:298 -#: engines/neverhood/menumodule.cpp:877 engines/parallaction/saveload.cpp:212 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/scumm/dialogs.cpp:188 engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/mohawk/dialogs.cpp:121 engines/neverhood/menumodule.cpp:877 +#: engines/parallaction/saveload.cpp:212 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/scumm/dialogs.cpp:188 +#: engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save" @@ -1476,13 +1529,13 @@ msgstr "" "basisinformatie, en voor instructies voor het verkrijgen van verdere " "assistentie." -#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:109 -#: engines/mohawk/dialogs.cpp:170 engines/tsage/dialogs.cpp:106 +#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:117 +#: engines/mohawk/dialogs.cpp:242 engines/tsage/dialogs.cpp:106 msgid "~O~K" msgstr "~O~K" -#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:110 -#: engines/mohawk/dialogs.cpp:171 engines/tsage/dialogs.cpp:107 +#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:118 +#: engines/mohawk/dialogs.cpp:243 engines/tsage/dialogs.cpp:107 msgid "~C~ancel" msgstr "~A~nnuleer" @@ -1640,11 +1693,11 @@ msgstr "FM-Towns Geluid" msgid "PC-98 Audio" msgstr "PC-98 Geluid" -#: audio/softsynth/mt32.cpp:200 +#: audio/softsynth/mt32.cpp:196 msgid "Initializing MT-32 Emulator" msgstr "MT-32 Emulator initialiseren" -#: audio/softsynth/mt32.cpp:426 +#: audio/softsynth/mt32.cpp:434 msgid "MT-32 Emulator" msgstr "MT-32 Emulator" @@ -1761,11 +1814,11 @@ msgstr "Auto-sleep modus is nu" msgid "Swipe three fingers to the right to toggle." msgstr "Swipe drie vingers naar rechts om te schakelen." -#: backends/graphics/opengl/opengl-graphics.cpp:119 +#: backends/graphics/opengl/opengl-graphics.cpp:126 msgid "OpenGL" msgstr "OpenGL" -#: backends/graphics/opengl/opengl-graphics.cpp:120 +#: backends/graphics/opengl/opengl-graphics.cpp:127 msgid "OpenGL (No filtering)" msgstr "OpenGL (geen filters)" @@ -2319,20 +2372,20 @@ msgstr "" "Vergeet niet de 'Verberg werkbalk' te koppelen aan een toets om de hele " "inventaris te zien." -#: backends/updates/macosx/macosx-updates.mm:67 +#: backends/updates/macosx/macosx-updates.mm:68 msgid "Check for Updates..." msgstr "Controleren op updates..." #: engines/agi/detection.cpp:147 engines/cine/detection.cpp:70 #: engines/drascula/detection.cpp:302 engines/dreamweb/detection.cpp:47 -#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:404 +#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:410 #: engines/toltecs/detection.cpp:200 engines/zvision/detection_tables.h:51 msgid "Use original save/load screens" msgstr "Gebruik originele opslaan/laad schermen" #: engines/agi/detection.cpp:148 engines/cine/detection.cpp:71 #: engines/drascula/detection.cpp:303 engines/dreamweb/detection.cpp:48 -#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:405 +#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:411 #: engines/toltecs/detection.cpp:201 msgid "Use the original save/load screens, instead of the ScummVM ones" msgstr "" @@ -2361,11 +2414,30 @@ msgstr "" "Zet muis ondersteuning aan. Maakt het mogelijk om de muis te gebruiken voor " "bewegen en in spelmenus." +#: engines/agi/detection.cpp:177 +#, fuzzy +msgid "Use Hercules hires font" +msgstr "Hercules Groen" + +#: engines/agi/detection.cpp:178 +msgid "Uses Hercules hires font, when font file is available." +msgstr "" + +#: engines/agi/detection.cpp:187 +msgid "Pause when entering commands" +msgstr "" + +#: engines/agi/detection.cpp:188 +msgid "" +"Shows a command prompt window and pauses the game (like in SCI) instead of a " +"real-time prompt." +msgstr "" + #: engines/agi/saveload.cpp:777 engines/avalanche/parser.cpp:1887 #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore game:" @@ -2375,13 +2447,13 @@ msgstr "Laad opgeslagen spel:" #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore" msgstr "Laad" -#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2377 +#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2374 #, c-format msgid "" "Failed to load game state from file:\n" @@ -2392,7 +2464,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2370 +#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2367 #, c-format msgid "" "Failed to save game state to file:\n" @@ -2403,7 +2475,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2388 +#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2385 #, c-format msgid "" "Successfully saved game state in file:\n" @@ -2649,29 +2721,39 @@ msgstr "" "gebruiken.\n" "\n" +#: engines/mohawk/detection.cpp:168 +msgid "Play the Myst fly by movie" +msgstr "" + +#: engines/mohawk/detection.cpp:169 +msgid "The Myst fly by movie was not played by the original engine." +msgstr "" + #. I18N: Option for fast scene switching -#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:167 +#: engines/mohawk/dialogs.cpp:96 engines/mohawk/dialogs.cpp:239 msgid "~Z~ip Mode Activated" msgstr "~Z~ip Modus Aangezet" -#: engines/mohawk/dialogs.cpp:93 +#: engines/mohawk/dialogs.cpp:97 msgid "~T~ransitions Enabled" msgstr "~O~vergangen Aangezet" #. I18N: Drop book page -#: engines/mohawk/dialogs.cpp:95 +#: engines/mohawk/dialogs.cpp:99 msgid "~D~rop Page" msgstr "Laat Pagina ~V~allen" -#: engines/mohawk/dialogs.cpp:99 -msgid "~S~how Map" +#: engines/mohawk/dialogs.cpp:103 +#, fuzzy +msgid "Show ~M~ap" msgstr "~T~oon Map" -#: engines/mohawk/dialogs.cpp:105 -msgid "~M~ain Menu" +#: engines/mohawk/dialogs.cpp:109 +#, fuzzy +msgid "Main Men~u~" msgstr "~H~oofdmenu" -#: engines/mohawk/dialogs.cpp:168 +#: engines/mohawk/dialogs.cpp:240 msgid "~W~ater Effect Enabled" msgstr "~W~ater Effect Aangezet" @@ -2796,37 +2878,37 @@ msgid "Use an alternative game intro (CD version only)" msgstr "" "Gebruik een alternatieve versie van de intro (alleen voor de CD versie)" -#: engines/sci/detection.cpp:374 +#: engines/sci/detection.cpp:380 msgid "Skip EGA dithering pass (full color backgrounds)" msgstr "Sla EGA dithering stap over (volledige kleuren achtergronden)" -#: engines/sci/detection.cpp:375 +#: engines/sci/detection.cpp:381 msgid "Skip dithering pass in EGA games, graphics are shown with full colors" msgstr "" "Sla dithering stap in EGA spellen over, beelden worden getoond met volledige " "kleuren" -#: engines/sci/detection.cpp:384 +#: engines/sci/detection.cpp:390 msgid "Enable high resolution graphics" msgstr "Gebruik hoge resolutie beelden" -#: engines/sci/detection.cpp:385 +#: engines/sci/detection.cpp:391 msgid "Enable high resolution graphics/content" msgstr "Gebruik hoge resolutie beelden" -#: engines/sci/detection.cpp:394 +#: engines/sci/detection.cpp:400 msgid "Prefer digital sound effects" msgstr "Geef de voorkeur aan digitale geluidseffecten" -#: engines/sci/detection.cpp:395 +#: engines/sci/detection.cpp:401 msgid "Prefer digital sound effects instead of synthesized ones" msgstr "Geef de voorkeur aan digitale geluidseffecten boven gesynthetiseerde" -#: engines/sci/detection.cpp:414 +#: engines/sci/detection.cpp:420 msgid "Use IMF/Yamaha FB-01 for MIDI output" msgstr "Gebruik IMF/Yamaha FB-01 voor MIDI" -#: engines/sci/detection.cpp:415 +#: engines/sci/detection.cpp:421 msgid "" "Use an IBM Music Feature card or a Yamaha FB-01 FM synth module for MIDI " "output" @@ -2834,36 +2916,45 @@ msgstr "" "Gebruik een IBM Music Feature kaart of eem Yamaha FB-01 FM synth module voor " "MIDI" -#: engines/sci/detection.cpp:425 +#: engines/sci/detection.cpp:431 msgid "Use CD audio" msgstr "Gebruik CD audio" -#: engines/sci/detection.cpp:426 +#: engines/sci/detection.cpp:432 msgid "Use CD audio instead of in-game audio, if available" msgstr "Gebruik CD audio in plaats van in-game audio, als dat beschikbaar is." -#: engines/sci/detection.cpp:436 +#: engines/sci/detection.cpp:442 msgid "Use Windows cursors" msgstr "Gebruik Windows muisaanwijzers" -#: engines/sci/detection.cpp:437 +#: engines/sci/detection.cpp:443 msgid "" "Use the Windows cursors (smaller and monochrome) instead of the DOS ones" msgstr "" "Gebruik Windows muisaanwijzers (kleiner en monochrome) in plaats van de DOS " "muisaanwijzers" -#: engines/sci/detection.cpp:447 +#: engines/sci/detection.cpp:453 msgid "Use silver cursors" msgstr "Gebruik zilveren muisaanwijzers" -#: engines/sci/detection.cpp:448 +#: engines/sci/detection.cpp:454 msgid "" "Use the alternate set of silver cursors, instead of the normal golden ones" msgstr "" "Gebruik de alternative set van zilveren cursors, in plaats van de normale " "gouden" +#: engines/scumm/detection.cpp:1335 +#, fuzzy +msgid "Show Object Line" +msgstr "Toon objectnamen" + +#: engines/scumm/detection.cpp:1336 +msgid "Show the names of objects at the bottom of the screen" +msgstr "" + #: engines/scumm/dialogs.cpp:176 #, c-format msgid "Insert Disk %c and Press Button to Continue." @@ -3529,7 +3620,7 @@ msgstr "Muziek volume:" msgid "Subtitle speed: " msgstr "Snelheid ondertitels:" -#: engines/scumm/scumm.cpp:1832 +#: engines/scumm/scumm.cpp:1829 #, c-format msgid "" "Native MIDI support requires the Roland Upgrade from LucasArts,\n" @@ -3538,7 +3629,7 @@ msgstr "" "Voor MIDI support is de Roland Upgrade van Lucasarts vereist,\n" "maar %s ontbreekt. Er wordt nu AdLib gebruikt." -#: engines/scumm/scumm.cpp:2644 +#: engines/scumm/scumm.cpp:2645 msgid "" "Usually, Maniac Mansion would start now. But for that to work, the game " "files for Maniac Mansion have to be in the 'Maniac' directory inside the " @@ -3719,6 +3810,15 @@ msgstr "Toon objectnamen" msgid "Show labels for objects on mouse hover" msgstr "Toon labels voor objecten als de muis er over zweeft" +#: engines/sword25/detection.cpp:46 +msgid "Use English speech" +msgstr "" + +#: engines/sword25/detection.cpp:47 +msgid "" +"Use English speech instead of German for every language other than German" +msgstr "" + #: engines/teenagent/resources.cpp:95 msgid "" "You're missing the 'teenagent.dat' file. Get it from the ScummVM website" diff --git a/po/nn_NO.po b/po/nn_NO.po index 62f7c07beb..e09e138dcc 100644 --- a/po/nn_NO.po +++ b/po/nn_NO.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ScummVM 1.3.0svn\n" "Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n" -"POT-Creation-Date: 2016-02-20 21:22+0000\n" +"POT-Creation-Date: 2016-04-07 08:55+0100\n" "PO-Revision-Date: 2016-02-26 00:37+0100\n" "Last-Translator: Einar Johan TrĆøan SĆømĆ„en <einarjohants@gmail.com>\n" "Language-Team: somaen <einarjohants@gmail.com>\n" @@ -56,10 +56,11 @@ msgstr "Oppover" #: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editrecorddialog.cpp:67 #: gui/filebrowser-dialog.cpp:64 gui/fluidsynth-dialog.cpp:152 #: gui/KeysDialog.cpp:43 gui/launcher.cpp:351 gui/massadd.cpp:95 -#: gui/options.cpp:1237 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 +#: gui/options.cpp:1255 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 #: gui/recorderdialog.cpp:156 gui/saveload-dialog.cpp:216 #: gui/saveload-dialog.cpp:276 gui/saveload-dialog.cpp:547 -#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 engines/engine.cpp:546 +#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 +#: gui/updates-dialog.cpp:113 engines/engine.cpp:546 #: backends/events/default/default-events.cpp:196 #: backends/events/default/default-events.cpp:218 #: backends/platform/wii/options.cpp:48 engines/drascula/saveload.cpp:49 @@ -173,7 +174,7 @@ msgstr "Sinus" msgid "Triangle" msgstr "Triangel" -#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1168 +#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1170 msgid "Misc" msgstr "Diverse" @@ -207,12 +208,12 @@ msgstr "Nullstill alle FluidSynth-instillingar til standardverdiar" #: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:352 #: gui/launcher.cpp:1050 gui/launcher.cpp:1054 gui/massadd.cpp:92 -#: gui/options.cpp:1238 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 +#: gui/options.cpp:1256 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 #: engines/engine.cpp:476 backends/platform/wii/options.cpp:47 #: backends/platform/wince/CELauncherDialog.cpp:54 #: engines/agos/animation.cpp:558 engines/drascula/saveload.cpp:49 #: engines/groovie/script.cpp:408 engines/parallaction/saveload.cpp:274 -#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1834 +#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1831 #: engines/scumm/players/player_v3m.cpp:130 #: engines/scumm/players/player_v5m.cpp:108 engines/sky/compact.cpp:131 #: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:524 @@ -241,15 +242,15 @@ msgstr "Steng" msgid "Mouse click" msgstr "Musklikk" -#: gui/gui-manager.cpp:126 base/main.cpp:322 +#: gui/gui-manager.cpp:126 base/main.cpp:325 msgid "Display keyboard" msgstr "Syn Tastatur" -#: gui/gui-manager.cpp:130 base/main.cpp:326 +#: gui/gui-manager.cpp:130 base/main.cpp:329 msgid "Remap keys" msgstr "Omkople tastar" -#: gui/gui-manager.cpp:133 base/main.cpp:329 engines/scumm/help.cpp:87 +#: gui/gui-manager.cpp:133 base/main.cpp:332 engines/scumm/help.cpp:87 msgid "Toggle fullscreen" msgstr "Veksle fullskjerm" @@ -325,8 +326,8 @@ msgstr "" "Spelets språk. Dette vil ikkje gjere den spanske versjonen av spelet til ein " "engelsk versjon" -#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:87 -#: gui/options.cpp:735 gui/options.cpp:748 gui/options.cpp:1208 +#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:89 +#: gui/options.cpp:737 gui/options.cpp:750 gui/options.cpp:1210 #: audio/null.cpp:41 msgid "<default>" msgstr "<standard>" @@ -348,11 +349,11 @@ msgstr "Plattform:" msgid "Engine" msgstr "Motor" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "Graphics" msgstr "Grafikk" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "GFX" msgstr "GFX" @@ -365,7 +366,7 @@ msgctxt "lowres" msgid "Override global graphic settings" msgstr "Overstyr globale grafikkinstillingar" -#: gui/launcher.cpp:257 gui/options.cpp:1094 +#: gui/launcher.cpp:257 gui/options.cpp:1096 msgid "Audio" msgstr "Lyd" @@ -378,11 +379,11 @@ msgctxt "lowres" msgid "Override global audio settings" msgstr "Overstyr globale lydinstillingar" -#: gui/launcher.cpp:271 gui/options.cpp:1099 +#: gui/launcher.cpp:271 gui/options.cpp:1101 msgid "Volume" msgstr "Volum" -#: gui/launcher.cpp:273 gui/options.cpp:1101 +#: gui/launcher.cpp:273 gui/options.cpp:1103 msgctxt "lowres" msgid "Volume" msgstr "Volum" @@ -396,7 +397,7 @@ msgctxt "lowres" msgid "Override global volume settings" msgstr "Overstyr globale voluminstillingar" -#: gui/launcher.cpp:286 gui/options.cpp:1109 +#: gui/launcher.cpp:286 gui/options.cpp:1111 msgid "MIDI" msgstr "MIDI" @@ -409,7 +410,7 @@ msgctxt "lowres" msgid "Override global MIDI settings" msgstr "Overstyr globale MIDI-instillingar" -#: gui/launcher.cpp:300 gui/options.cpp:1115 +#: gui/launcher.cpp:300 gui/options.cpp:1117 msgid "MT-32" msgstr "MT-32" @@ -422,11 +423,11 @@ msgctxt "lowres" msgid "Override global MT-32 settings" msgstr "Overstyr globale MT-32-instillingar" -#: gui/launcher.cpp:314 gui/options.cpp:1122 +#: gui/launcher.cpp:314 gui/options.cpp:1124 msgid "Paths" msgstr "Stiar" -#: gui/launcher.cpp:316 gui/options.cpp:1124 +#: gui/launcher.cpp:316 gui/options.cpp:1126 msgctxt "lowres" msgid "Paths" msgstr "Stiar" @@ -440,7 +441,7 @@ msgctxt "lowres" msgid "Game Path:" msgstr "Spelsti:" -#: gui/launcher.cpp:330 gui/options.cpp:1148 +#: gui/launcher.cpp:330 gui/options.cpp:1150 msgid "Extra Path:" msgstr "Ekstrasti:" @@ -448,42 +449,42 @@ msgstr "Ekstrasti:" msgid "Specifies path to additional data used by the game" msgstr "Veljer sti til tilleggsdata nytta av spelet" -#: gui/launcher.cpp:332 gui/options.cpp:1150 +#: gui/launcher.cpp:332 gui/options.cpp:1152 msgctxt "lowres" msgid "Extra Path:" msgstr "Ekstrasti:" -#: gui/launcher.cpp:339 gui/options.cpp:1132 +#: gui/launcher.cpp:339 gui/options.cpp:1134 msgid "Save Path:" msgstr "Lagringssti:" #: gui/launcher.cpp:339 gui/launcher.cpp:341 gui/launcher.cpp:342 -#: gui/options.cpp:1132 gui/options.cpp:1134 gui/options.cpp:1135 +#: gui/options.cpp:1134 gui/options.cpp:1136 gui/options.cpp:1137 msgid "Specifies where your saved games are put" msgstr "Veljer kor lagra spel vert lagra" -#: gui/launcher.cpp:341 gui/options.cpp:1134 +#: gui/launcher.cpp:341 gui/options.cpp:1136 msgctxt "lowres" msgid "Save Path:" msgstr "Lagringssti:" #: gui/launcher.cpp:360 gui/launcher.cpp:459 gui/launcher.cpp:517 -#: gui/launcher.cpp:571 gui/options.cpp:1143 gui/options.cpp:1151 -#: gui/options.cpp:1160 gui/options.cpp:1275 gui/options.cpp:1281 -#: gui/options.cpp:1289 gui/options.cpp:1319 gui/options.cpp:1325 -#: gui/options.cpp:1332 gui/options.cpp:1425 gui/options.cpp:1428 -#: gui/options.cpp:1440 +#: gui/launcher.cpp:571 gui/options.cpp:1145 gui/options.cpp:1153 +#: gui/options.cpp:1162 gui/options.cpp:1293 gui/options.cpp:1299 +#: gui/options.cpp:1307 gui/options.cpp:1337 gui/options.cpp:1343 +#: gui/options.cpp:1350 gui/options.cpp:1456 gui/options.cpp:1459 +#: gui/options.cpp:1471 msgctxt "path" msgid "None" msgstr "Ingen" #: gui/launcher.cpp:365 gui/launcher.cpp:465 gui/launcher.cpp:575 -#: gui/options.cpp:1269 gui/options.cpp:1313 gui/options.cpp:1431 +#: gui/options.cpp:1287 gui/options.cpp:1331 gui/options.cpp:1462 #: backends/platform/wii/options.cpp:56 msgid "Default" msgstr "Standard" -#: gui/launcher.cpp:510 gui/options.cpp:1434 +#: gui/launcher.cpp:510 gui/options.cpp:1465 msgid "Select SoundFont" msgstr "Vel SoundFont" @@ -495,7 +496,7 @@ msgstr "Vel mappe med speldata" msgid "Select additional game directory" msgstr "Vel mappe med tileggsdata for spelet" -#: gui/launcher.cpp:559 gui/options.cpp:1377 +#: gui/launcher.cpp:559 gui/options.cpp:1408 msgid "Select directory for saved games" msgstr "Vel mappe for lagra spel" @@ -503,7 +504,7 @@ msgstr "Vel mappe for lagra spel" msgid "This game ID is already taken. Please choose another one." msgstr "Denne spel-IDen er allerede teken. Vęr vennleg og vel ein anna." -#: gui/launcher.cpp:626 engines/dialogs.cpp:111 +#: gui/launcher.cpp:626 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:115 msgid "~Q~uit" msgstr "~A~vslutt" @@ -591,17 +592,18 @@ msgid "Search:" msgstr "Sųk:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214 -#: engines/mohawk/riven.cpp:718 engines/pegasus/pegasus.cpp:353 -#: engines/tsage/scenes.cpp:600 +#: engines/mohawk/dialogs.cpp:120 engines/mohawk/riven.cpp:718 +#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:600 msgid "Load game:" msgstr "Åpne spel:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 #: backends/platform/wince/CEActionsPocket.cpp:267 #: backends/platform/wince/CEActionsSmartphone.cpp:231 -#: engines/cruise/menu.cpp:214 engines/mohawk/riven.cpp:718 -#: engines/parallaction/saveload.cpp:197 engines/pegasus/pegasus.cpp:353 -#: engines/scumm/dialogs.cpp:189 engines/tsage/scenes.cpp:600 +#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:120 +#: engines/mohawk/riven.cpp:718 engines/parallaction/saveload.cpp:197 +#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:189 +#: engines/tsage/scenes.cpp:600 msgid "Load" msgstr "Åpne" @@ -689,132 +691,132 @@ msgstr "Bytt til spel" msgid "Fast replay" msgstr "" -#: gui/options.cpp:85 +#: gui/options.cpp:87 common/updates.cpp:56 msgid "Never" msgstr "Aldri" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 5 mins" msgstr "kvart 5. min" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 10 mins" msgstr "kvart 10. min" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 15 mins" msgstr "kvart 15. min" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 30 mins" msgstr "kvart 30. min" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "8 kHz" msgstr "8 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "11 kHz" msgstr "11 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "22 kHz" msgstr "22 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "44 kHz" msgstr "44 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "48 kHz" msgstr "48 kHz" -#: gui/options.cpp:255 gui/options.cpp:479 gui/options.cpp:580 -#: gui/options.cpp:649 gui/options.cpp:857 +#: gui/options.cpp:257 gui/options.cpp:481 gui/options.cpp:582 +#: gui/options.cpp:651 gui/options.cpp:859 msgctxt "soundfont" msgid "None" msgstr "Ingen" -#: gui/options.cpp:389 +#: gui/options.cpp:391 msgid "Failed to apply some of the graphic options changes:" msgstr "Klarte ikkje å aktivere nokre av grafikkvalendringane:" -#: gui/options.cpp:401 +#: gui/options.cpp:403 msgid "the video mode could not be changed." msgstr "Kunne ikkje endre videomodus." -#: gui/options.cpp:407 +#: gui/options.cpp:409 msgid "the fullscreen setting could not be changed" msgstr "Fullskjerminstillinga kunne ikkje endrast" -#: gui/options.cpp:413 +#: gui/options.cpp:415 msgid "the aspect ratio setting could not be changed" msgstr "aspektrate-innstillinga kunne ikkje endrast" -#: gui/options.cpp:732 +#: gui/options.cpp:734 msgid "Graphics mode:" msgstr "Grafikkmodus:" -#: gui/options.cpp:746 +#: gui/options.cpp:748 msgid "Render mode:" msgstr "Teiknemodus:" -#: gui/options.cpp:746 gui/options.cpp:747 +#: gui/options.cpp:748 gui/options.cpp:749 msgid "Special dithering modes supported by some games" msgstr "Spesielle dithering-modus som stųttast av nokre spel" -#: gui/options.cpp:758 +#: gui/options.cpp:760 #: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2316 msgid "Fullscreen mode" msgstr "Fullskjermsmodus" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Aspect ratio correction" msgstr "Aspekt-korrigering" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Correct aspect ratio for 320x200 games" msgstr "Rett opp aspekt for 320x200 spel" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Preferred Device:" msgstr "Fųretrukken eining:" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Music Device:" msgstr "Musikkeining:" -#: gui/options.cpp:769 gui/options.cpp:771 +#: gui/options.cpp:771 gui/options.cpp:773 msgid "Specifies preferred sound device or sound card emulator" msgstr "" -#: gui/options.cpp:769 gui/options.cpp:771 gui/options.cpp:772 +#: gui/options.cpp:771 gui/options.cpp:773 gui/options.cpp:774 msgid "Specifies output sound device or sound card emulator" msgstr "" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Preferred Dev.:" msgstr "" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Music Device:" msgstr "Musikkeining:" -#: gui/options.cpp:798 +#: gui/options.cpp:800 msgid "AdLib emulator:" msgstr "AdLib emulator:" -#: gui/options.cpp:798 gui/options.cpp:799 +#: gui/options.cpp:800 gui/options.cpp:801 msgid "AdLib is used for music in many games" msgstr "AdLib nyttast til musikk i mange spel" -#: gui/options.cpp:809 +#: gui/options.cpp:811 msgid "Output rate:" msgstr "" -#: gui/options.cpp:809 gui/options.cpp:810 +#: gui/options.cpp:811 gui/options.cpp:812 msgid "" "Higher value specifies better sound quality but may be not supported by your " "soundcard" @@ -822,64 +824,64 @@ msgstr "" "Hųgare verdier gir betre lydkvalitet, men stųttast kanskje ikkje av " "lydkortet ditt" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "GM Device:" msgstr "GM Eining:" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "Specifies default sound device for General MIDI output" msgstr "Veljer standard lydeining for General MIDI avspeling" -#: gui/options.cpp:831 +#: gui/options.cpp:833 msgid "Don't use General MIDI music" msgstr "Ikkje nytt General MIDI musikk" -#: gui/options.cpp:842 gui/options.cpp:908 +#: gui/options.cpp:844 gui/options.cpp:910 msgid "Use first available device" msgstr "Nytt fųrste tilgjengelege eining" -#: gui/options.cpp:854 +#: gui/options.cpp:856 msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:854 gui/options.cpp:856 gui/options.cpp:857 +#: 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 stųttast av enkelte lydkort, FluidSynth og Timidity" -#: gui/options.cpp:856 +#: gui/options.cpp:858 msgctxt "lowres" msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Mixed AdLib/MIDI mode" msgstr "Blanda AdLib/MIDI-modus" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Use both MIDI and AdLib sound generation" msgstr "Nytt båe MIDI og AdLib lydskaping" -#: gui/options.cpp:865 +#: gui/options.cpp:867 msgid "MIDI gain:" msgstr "MIDI gain:" -#: gui/options.cpp:872 +#: gui/options.cpp:874 msgid "FluidSynth Settings" msgstr "FluidSynth instillingar" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "MT-32 Device:" msgstr "MT-32 Eining:" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output" msgstr "Veljer standard lydeining for Roland MT-32/LAPC1/CM32l/CM64 avspeling" -#: gui/options.cpp:884 +#: gui/options.cpp:886 msgid "True Roland MT-32 (disable GM emulation)" msgstr "Ekte Roland MT-32 (deaktiver GM-emulering)" -#: gui/options.cpp:884 gui/options.cpp:886 +#: gui/options.cpp:886 gui/options.cpp:888 msgid "" "Check if you want to use your real hardware Roland-compatible sound device " "connected to your computer" @@ -887,184 +889,196 @@ msgstr "" "Vel om du vil nytte din Roland-kompatible lydeining som du har tilkopla " "datamaskina di." -#: gui/options.cpp:886 +#: gui/options.cpp:888 msgctxt "lowres" msgid "True Roland MT-32 (no GM emulation)" msgstr "Ekte Roland MT-32 (ingen GS-emulering)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "Roland GS Device (enable MT-32 mappings)" msgstr "" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "" "Check if you want to enable patch mappings to emulate an MT-32 on a Roland " "GS device" msgstr "" -#: gui/options.cpp:898 +#: gui/options.cpp:900 msgid "Don't use Roland MT-32 music" msgstr "Ikkje nytt Roland MT-32 musikk" -#: gui/options.cpp:925 +#: gui/options.cpp:927 msgid "Text and Speech:" msgstr "Tekst og Tale:" -#: gui/options.cpp:929 gui/options.cpp:939 +#: gui/options.cpp:931 gui/options.cpp:941 msgid "Speech" msgstr "Tale" -#: gui/options.cpp:930 gui/options.cpp:940 +#: gui/options.cpp:932 gui/options.cpp:942 msgid "Subtitles" msgstr "Teksting" -#: gui/options.cpp:931 +#: gui/options.cpp:933 msgid "Both" msgstr "Begge" -#: gui/options.cpp:933 +#: gui/options.cpp:935 msgid "Subtitle speed:" msgstr "Undertekstfart:" -#: gui/options.cpp:935 +#: gui/options.cpp:937 msgctxt "lowres" msgid "Text and Speech:" msgstr "Tekst og Tale:" -#: gui/options.cpp:939 +#: gui/options.cpp:941 msgid "Spch" msgstr "Tale" -#: gui/options.cpp:940 +#: gui/options.cpp:942 msgid "Subs" msgstr "Tekst" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgctxt "lowres" msgid "Both" msgstr "Båe" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgid "Show subtitles and play speech" msgstr "Vis teksting og spel av tale" -#: gui/options.cpp:943 +#: gui/options.cpp:945 msgctxt "lowres" msgid "Subtitle speed:" msgstr "Undertekstfart:" -#: gui/options.cpp:959 +#: gui/options.cpp:961 msgid "Music volume:" msgstr "Musikkvolum:" -#: gui/options.cpp:961 +#: gui/options.cpp:963 msgctxt "lowres" msgid "Music volume:" msgstr "Musikkvolum:" -#: gui/options.cpp:968 +#: gui/options.cpp:970 msgid "Mute All" msgstr "Demp alle" -#: gui/options.cpp:971 +#: gui/options.cpp:973 msgid "SFX volume:" msgstr "Lydeffektvolum:" -#: gui/options.cpp:971 gui/options.cpp:973 gui/options.cpp:974 +#: gui/options.cpp:973 gui/options.cpp:975 gui/options.cpp:976 msgid "Special sound effects volume" msgstr "Spesiallydeffekt volum" -#: gui/options.cpp:973 +#: gui/options.cpp:975 msgctxt "lowres" msgid "SFX volume:" msgstr "Lydeffektvolum:" -#: gui/options.cpp:981 +#: gui/options.cpp:983 msgid "Speech volume:" msgstr "Talevolum:" -#: gui/options.cpp:983 +#: gui/options.cpp:985 msgctxt "lowres" msgid "Speech volume:" msgstr "Talevolum:" -#: gui/options.cpp:1140 +#: gui/options.cpp:1142 msgid "Theme Path:" msgstr "Temasti:" -#: gui/options.cpp:1142 +#: gui/options.cpp:1144 msgctxt "lowres" msgid "Theme Path:" msgstr "Temasti:" -#: gui/options.cpp:1148 gui/options.cpp:1150 gui/options.cpp:1151 +#: gui/options.cpp:1150 gui/options.cpp:1152 gui/options.cpp:1153 msgid "Specifies path to additional data used by all games or ScummVM" msgstr "" -#: gui/options.cpp:1157 +#: gui/options.cpp:1159 msgid "Plugins Path:" msgstr "Pluginsti:" -#: gui/options.cpp:1159 +#: gui/options.cpp:1161 msgctxt "lowres" msgid "Plugins Path:" msgstr "Pluginsti:" -#: gui/options.cpp:1170 +#: gui/options.cpp:1172 msgctxt "lowres" msgid "Misc" msgstr "Div" -#: gui/options.cpp:1172 +#: gui/options.cpp:1174 msgid "Theme:" msgstr "Tema:" -#: gui/options.cpp:1176 +#: gui/options.cpp:1178 msgid "GUI Renderer:" msgstr "GUI-teiknar:" -#: gui/options.cpp:1188 +#: gui/options.cpp:1190 msgid "Autosave:" msgstr "Autolagre:" -#: gui/options.cpp:1190 +#: gui/options.cpp:1192 msgctxt "lowres" msgid "Autosave:" msgstr "Autolagre:" -#: gui/options.cpp:1198 +#: gui/options.cpp:1200 msgid "Keys" msgstr "Tastar" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "GUI Language:" msgstr "GUI-språk:" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "Language of ScummVM GUI" msgstr "Språk i ScummVM-GUIet" -#: gui/options.cpp:1364 +#: gui/options.cpp:1235 +msgid "Update check:" +msgstr "" + +#: gui/options.cpp:1235 +msgid "How often to check ScummVM updates" +msgstr "" + +#: gui/options.cpp:1247 +msgid "Check now" +msgstr "" + +#: gui/options.cpp:1382 msgid "You have to restart ScummVM before your changes will take effect." msgstr "Du må starte ScummVM på nytt for at endringane skal tre i kraft." -#: gui/options.cpp:1384 +#: gui/options.cpp:1415 msgid "The chosen directory cannot be written to. Please select another one." msgstr "Den velde mappa kan ikkje skrivast til. Vennlegst vel ein annan." -#: gui/options.cpp:1393 +#: gui/options.cpp:1424 msgid "Select directory for GUI themes" msgstr "Vel ei mappe for GUI-tema:" -#: gui/options.cpp:1403 +#: gui/options.cpp:1434 msgid "Select directory for extra files" msgstr "Vel ei mappe for ekstra filer" -#: gui/options.cpp:1414 +#: gui/options.cpp:1445 msgid "Select directory for plugins" msgstr "Vel ei mappe for plugins" -#: gui/options.cpp:1467 +#: gui/options.cpp:1498 msgid "" "The theme you selected does not support your current language. If you want " "to use this theme you need to switch to another language first." @@ -1237,39 +1251,60 @@ msgstr "Kantutjevna teiknar" msgid "Antialiased" msgstr "Kantutjevna" -#: gui/widget.cpp:323 gui/widget.cpp:325 gui/widget.cpp:331 gui/widget.cpp:333 +#: gui/updates-dialog.cpp:51 +msgid "" +"ScummVM now supports automatic check for updates\n" +"which requires access to the Internet.\n" +"\n" +"Would you like to enable this feature?" +msgstr "" + +#: gui/updates-dialog.cpp:55 +msgid "(You can always enable it in the options dialog on the Misc tab)" +msgstr "" + +#: gui/updates-dialog.cpp:92 +#, fuzzy +msgid "Check for updates automatically" +msgstr "SJå etter oppdateringar..." + +#: gui/updates-dialog.cpp:111 +msgid "Proceed" +msgstr "" + +#: gui/widget.cpp:327 gui/widget.cpp:329 gui/widget.cpp:335 gui/widget.cpp:337 msgid "Clear value" msgstr "Tųm verdi" -#: base/main.cpp:237 +#: base/main.cpp:240 #, c-format msgid "Engine does not support debug level '%s'" msgstr "Motoren stųttar ikkje debug-nivå '%s'" -#: base/main.cpp:309 +#: base/main.cpp:312 msgid "Menu" msgstr "Meny" -#: base/main.cpp:312 backends/platform/symbian/src/SymbianActions.cpp:45 +#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:45 #: backends/platform/wince/CEActionsPocket.cpp:45 #: backends/platform/wince/CEActionsSmartphone.cpp:46 msgid "Skip" msgstr "Hopp over" -#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:50 +#: base/main.cpp:318 backends/platform/symbian/src/SymbianActions.cpp:50 #: backends/platform/wince/CEActionsPocket.cpp:42 msgid "Pause" msgstr "Pause" -#: base/main.cpp:318 +#: base/main.cpp:321 msgid "Skip line" msgstr "Hopp over linje" -#: base/main.cpp:510 +#: base/main.cpp:520 msgid "Error running game:" msgstr "Feil under kųyring av spel:" -#: base/main.cpp:557 +#: base/main.cpp:567 msgid "Could not find any engine capable of running the selected game" msgstr "Kunne ikkje finne nokon motor som kunne kųyre det velde spelet." @@ -1364,17 +1399,34 @@ msgctxt "lowres" msgid "Hercules Amber" msgstr "Hercules Raudgul" -#: engines/advancedDetector.cpp:317 +#: common/updates.cpp:58 +msgid "Daily" +msgstr "" + +#: common/updates.cpp:60 +msgid "Weekly" +msgstr "" + +#: common/updates.cpp:62 +msgid "Monthly" +msgstr "" + +#: common/updates.cpp:64 +#, fuzzy +msgid "<Bad value>" +msgstr "Tųm verdi" + +#: engines/advancedDetector.cpp:334 #, c-format msgid "The game in '%s' seems to be unknown." msgstr "Spelet i '%s' ser ut til å vere ukjend." -#: engines/advancedDetector.cpp:318 +#: engines/advancedDetector.cpp:335 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 +#: engines/advancedDetector.cpp:337 msgid "of the game you tried to add and its version/language/etc.:" msgstr "på spelet du prųvde å leggje til, samt versjon/språk/etc.:" @@ -1382,11 +1434,11 @@ msgstr "på spelet du prųvde å leggje til, samt versjon/språk/etc.:" msgid "~R~esume" msgstr "~F~ortsett" -#: engines/dialogs.cpp:87 +#: engines/dialogs.cpp:87 engines/mohawk/dialogs.cpp:113 msgid "~L~oad" msgstr "~Å~pne" -#: engines/dialogs.cpp:91 +#: engines/dialogs.cpp:91 engines/mohawk/dialogs.cpp:114 msgid "~S~ave" msgstr "~L~agre" @@ -1415,9 +1467,9 @@ msgstr "Tilbake til Oppsta~r~tar" #: engines/avalanche/parser.cpp:1899 engines/cge/events.cpp:74 #: engines/cge2/events.cpp:67 engines/cruise/menu.cpp:212 #: engines/drascula/saveload.cpp:336 engines/dreamweb/saveload.cpp:261 -#: engines/hugo/file.cpp:298 engines/neverhood/menumodule.cpp:877 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/hugo/file.cpp:298 engines/mohawk/dialogs.cpp:121 +#: engines/neverhood/menumodule.cpp:877 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save game:" @@ -1432,9 +1484,10 @@ msgstr "Lagra spel:" #: engines/cge/events.cpp:74 engines/cge2/events.cpp:67 #: engines/cruise/menu.cpp:212 engines/drascula/saveload.cpp:336 #: engines/dreamweb/saveload.cpp:261 engines/hugo/file.cpp:298 -#: engines/neverhood/menumodule.cpp:877 engines/parallaction/saveload.cpp:212 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/scumm/dialogs.cpp:188 engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/mohawk/dialogs.cpp:121 engines/neverhood/menumodule.cpp:877 +#: engines/parallaction/saveload.cpp:212 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/scumm/dialogs.cpp:188 +#: engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save" @@ -1460,13 +1513,13 @@ msgstr "" "grunnlegjande informasjon, og for instruskjonar om korleis du kan få " "ytterlegare hjelp." -#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:109 -#: engines/mohawk/dialogs.cpp:170 engines/tsage/dialogs.cpp:106 +#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:117 +#: engines/mohawk/dialogs.cpp:242 engines/tsage/dialogs.cpp:106 msgid "~O~K" msgstr "~O~K" -#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:110 -#: engines/mohawk/dialogs.cpp:171 engines/tsage/dialogs.cpp:107 +#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:118 +#: engines/mohawk/dialogs.cpp:243 engines/tsage/dialogs.cpp:107 msgid "~C~ancel" msgstr "~A~vbryt" @@ -1618,11 +1671,11 @@ msgstr "FM-Towns Lyd" msgid "PC-98 Audio" msgstr "PC-98 Lyd" -#: audio/softsynth/mt32.cpp:200 +#: audio/softsynth/mt32.cpp:196 msgid "Initializing MT-32 Emulator" msgstr "Initialiserar MT-32 Emulator" -#: audio/softsynth/mt32.cpp:426 +#: audio/softsynth/mt32.cpp:434 msgid "MT-32 Emulator" msgstr "MT-32 Emulator" @@ -1739,11 +1792,11 @@ msgstr "" msgid "Swipe three fingers to the right to toggle." msgstr "Sveip tre fingre til hųgre for å veksle" -#: backends/graphics/opengl/opengl-graphics.cpp:119 +#: backends/graphics/opengl/opengl-graphics.cpp:126 msgid "OpenGL" msgstr "OpenGL" -#: backends/graphics/opengl/opengl-graphics.cpp:120 +#: backends/graphics/opengl/opengl-graphics.cpp:127 msgid "OpenGL (No filtering)" msgstr "OpenGL (Ingen filtrering)" @@ -2294,20 +2347,20 @@ msgstr "" "Ikkje glųym å kople ein tast til 'Skjul verktųylinje' for å se heile " "inventaret" -#: backends/updates/macosx/macosx-updates.mm:67 +#: backends/updates/macosx/macosx-updates.mm:68 msgid "Check for Updates..." msgstr "SJå etter oppdateringar..." #: engines/agi/detection.cpp:147 engines/cine/detection.cpp:70 #: engines/drascula/detection.cpp:302 engines/dreamweb/detection.cpp:47 -#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:404 +#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:410 #: engines/toltecs/detection.cpp:200 engines/zvision/detection_tables.h:51 msgid "Use original save/load screens" msgstr "Nytt opprinnelege skjermar for lagring/lasting" #: engines/agi/detection.cpp:148 engines/cine/detection.cpp:71 #: engines/drascula/detection.cpp:303 engines/dreamweb/detection.cpp:48 -#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:405 +#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:411 #: engines/toltecs/detection.cpp:201 msgid "Use the original save/load screens, instead of the ScummVM ones" msgstr "" @@ -2331,11 +2384,30 @@ msgid "" "Enables mouse support. Allows to use mouse for movement and in game menus." msgstr "" +#: engines/agi/detection.cpp:177 +#, fuzzy +msgid "Use Hercules hires font" +msgstr "Hercules Grųnn" + +#: engines/agi/detection.cpp:178 +msgid "Uses Hercules hires font, when font file is available." +msgstr "" + +#: engines/agi/detection.cpp:187 +msgid "Pause when entering commands" +msgstr "" + +#: engines/agi/detection.cpp:188 +msgid "" +"Shows a command prompt window and pauses the game (like in SCI) instead of a " +"real-time prompt." +msgstr "" + #: engines/agi/saveload.cpp:777 engines/avalanche/parser.cpp:1887 #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore game:" @@ -2345,13 +2417,13 @@ msgstr "Gjenopprett spel:" #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore" msgstr "Gjenopprett" -#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2377 +#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2374 #, c-format msgid "" "Failed to load game state from file:\n" @@ -2359,7 +2431,7 @@ msgid "" "%s" msgstr "" -#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2370 +#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2367 #, c-format msgid "" "Failed to save game state to file:\n" @@ -2367,7 +2439,7 @@ msgid "" "%s" msgstr "" -#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2388 +#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2385 #, c-format msgid "" "Successfully saved game state in file:\n" @@ -2592,29 +2664,39 @@ msgid "" "\n" msgstr "" +#: engines/mohawk/detection.cpp:168 +msgid "Play the Myst fly by movie" +msgstr "" + +#: engines/mohawk/detection.cpp:169 +msgid "The Myst fly by movie was not played by the original engine." +msgstr "" + #. I18N: Option for fast scene switching -#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:167 +#: engines/mohawk/dialogs.cpp:96 engines/mohawk/dialogs.cpp:239 msgid "~Z~ip Mode Activated" msgstr "~Z~ipmodus aktivert" -#: engines/mohawk/dialogs.cpp:93 +#: engines/mohawk/dialogs.cpp:97 msgid "~T~ransitions Enabled" msgstr "~O~vergangar aktivert" #. I18N: Drop book page -#: engines/mohawk/dialogs.cpp:95 +#: engines/mohawk/dialogs.cpp:99 msgid "~D~rop Page" msgstr "" -#: engines/mohawk/dialogs.cpp:99 -msgid "~S~how Map" +#: engines/mohawk/dialogs.cpp:103 +#, fuzzy +msgid "Show ~M~ap" msgstr "~S~yn Kart" -#: engines/mohawk/dialogs.cpp:105 -msgid "~M~ain Menu" +#: engines/mohawk/dialogs.cpp:109 +#, fuzzy +msgid "Main Men~u~" msgstr "Hoved~m~eny" -#: engines/mohawk/dialogs.cpp:168 +#: engines/mohawk/dialogs.cpp:240 msgid "~W~ater Effect Enabled" msgstr "~V~anneffekt aktivert" @@ -2725,35 +2807,35 @@ msgstr "Alternativ intro" msgid "Use an alternative game intro (CD version only)" msgstr "Nytt alternativ spillåpning (Kun CD-versjon)" -#: engines/sci/detection.cpp:374 +#: engines/sci/detection.cpp:380 msgid "Skip EGA dithering pass (full color backgrounds)" msgstr "" -#: engines/sci/detection.cpp:375 +#: engines/sci/detection.cpp:381 msgid "Skip dithering pass in EGA games, graphics are shown with full colors" msgstr "" -#: engines/sci/detection.cpp:384 +#: engines/sci/detection.cpp:390 msgid "Enable high resolution graphics" msgstr "Nytt hųgopplųyseleg grafikk" -#: engines/sci/detection.cpp:385 +#: engines/sci/detection.cpp:391 msgid "Enable high resolution graphics/content" msgstr "Nytt hųgopplųyseleg grafikk/innhald" -#: engines/sci/detection.cpp:394 +#: engines/sci/detection.cpp:400 msgid "Prefer digital sound effects" msgstr "Foretrekk digitale lydeffekter" -#: engines/sci/detection.cpp:395 +#: engines/sci/detection.cpp:401 msgid "Prefer digital sound effects instead of synthesized ones" msgstr "" -#: engines/sci/detection.cpp:414 +#: engines/sci/detection.cpp:420 msgid "Use IMF/Yamaha FB-01 for MIDI output" msgstr "Nytt IMF/Yamaha FB-01 til MIDI-output" -#: engines/sci/detection.cpp:415 +#: engines/sci/detection.cpp:421 msgid "" "Use an IBM Music Feature card or a Yamaha FB-01 FM synth module for MIDI " "output" @@ -2761,32 +2843,41 @@ msgstr "" "Nytt eit IBM Music Feature-kort eller ein Yamaha FB-01 FM synth modul for " "MIDI avspeling" -#: engines/sci/detection.cpp:425 +#: engines/sci/detection.cpp:431 msgid "Use CD audio" msgstr "Nytt CD-lyd" -#: engines/sci/detection.cpp:426 +#: engines/sci/detection.cpp:432 msgid "Use CD audio instead of in-game audio, if available" msgstr "Nytt CD-lyd istaden for spellyd, om den er tilgjengeleg" -#: engines/sci/detection.cpp:436 +#: engines/sci/detection.cpp:442 msgid "Use Windows cursors" msgstr "Nytt Windospeikarar" -#: engines/sci/detection.cpp:437 +#: engines/sci/detection.cpp:443 msgid "" "Use the Windows cursors (smaller and monochrome) instead of the DOS ones" msgstr "Nytt windowspeikarane (mindre og monokrome) istaden for DOS-peikarane" -#: engines/sci/detection.cpp:447 +#: engines/sci/detection.cpp:453 msgid "Use silver cursors" msgstr "Nytt sųlvpeikarar" -#: engines/sci/detection.cpp:448 +#: engines/sci/detection.cpp:454 msgid "" "Use the alternate set of silver cursors, instead of the normal golden ones" msgstr "Nytt det alternative settet med sųlvpeikarar, istaden for dei gylne" +#: engines/scumm/detection.cpp:1335 +#, fuzzy +msgid "Show Object Line" +msgstr "Syn objektmerkelappar" + +#: engines/scumm/detection.cpp:1336 +msgid "Show the names of objects at the bottom of the screen" +msgstr "" + #: engines/scumm/dialogs.cpp:176 #, c-format msgid "Insert Disk %c and Press Button to Continue." @@ -3452,14 +3543,14 @@ msgstr "Musikkvolum:" msgid "Subtitle speed: " msgstr "Subtitle speed: " -#: engines/scumm/scumm.cpp:1832 +#: engines/scumm/scumm.cpp:1829 #, c-format msgid "" "Native MIDI support requires the Roland Upgrade from LucasArts,\n" "but %s is missing. Using AdLib instead." msgstr "" -#: engines/scumm/scumm.cpp:2644 +#: engines/scumm/scumm.cpp:2645 msgid "" "Usually, Maniac Mansion would start now. But for that to work, the game " "files for Maniac Mansion have to be in the 'Maniac' directory inside the " @@ -3631,6 +3722,15 @@ msgstr "Syn objektmerkelappar" msgid "Show labels for objects on mouse hover" msgstr "Syn merkelappar for objekt når musa er over dei" +#: engines/sword25/detection.cpp:46 +msgid "Use English speech" +msgstr "" + +#: engines/sword25/detection.cpp:47 +msgid "" +"Use English speech instead of German for every language other than German" +msgstr "" + #: engines/teenagent/resources.cpp:95 msgid "" "You're missing the 'teenagent.dat' file. Get it from the ScummVM website" diff --git a/po/pl_PL.po b/po/pl_PL.po index 6546259ade..3ed207efea 100644 --- a/po/pl_PL.po +++ b/po/pl_PL.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ScummVM 1.3.0\n" "Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n" -"POT-Creation-Date: 2016-02-20 21:22+0000\n" +"POT-Creation-Date: 2016-04-07 08:55+0100\n" "PO-Revision-Date: 2016-02-20 23:43+0100\n" "Last-Translator: Micha³ Zi±bkowski <mziab@o2.pl>\n" "Language-Team: Grajpopolsku.pl <grajpopolsku@gmail.com>\n" @@ -59,10 +59,11 @@ msgstr "W górź" #: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editrecorddialog.cpp:67 #: gui/filebrowser-dialog.cpp:64 gui/fluidsynth-dialog.cpp:152 #: gui/KeysDialog.cpp:43 gui/launcher.cpp:351 gui/massadd.cpp:95 -#: gui/options.cpp:1237 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 +#: gui/options.cpp:1255 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 #: gui/recorderdialog.cpp:156 gui/saveload-dialog.cpp:216 #: gui/saveload-dialog.cpp:276 gui/saveload-dialog.cpp:547 -#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 engines/engine.cpp:546 +#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 +#: gui/updates-dialog.cpp:113 engines/engine.cpp:546 #: backends/events/default/default-events.cpp:196 #: backends/events/default/default-events.cpp:218 #: backends/platform/wii/options.cpp:48 engines/drascula/saveload.cpp:49 @@ -176,7 +177,7 @@ msgstr "Sinus" msgid "Triangle" msgstr "Trójk±t" -#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1168 +#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1170 msgid "Misc" msgstr "Róæne" @@ -210,12 +211,12 @@ msgstr "Przywróę domy¶lne warto¶ci wszystkich ustawień FluidSynth." #: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:352 #: gui/launcher.cpp:1050 gui/launcher.cpp:1054 gui/massadd.cpp:92 -#: gui/options.cpp:1238 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 +#: gui/options.cpp:1256 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 #: engines/engine.cpp:476 backends/platform/wii/options.cpp:47 #: backends/platform/wince/CELauncherDialog.cpp:54 #: engines/agos/animation.cpp:558 engines/drascula/saveload.cpp:49 #: engines/groovie/script.cpp:408 engines/parallaction/saveload.cpp:274 -#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1834 +#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1831 #: engines/scumm/players/player_v3m.cpp:130 #: engines/scumm/players/player_v5m.cpp:108 engines/sky/compact.cpp:131 #: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:524 @@ -244,15 +245,15 @@ msgstr "Zamknij" msgid "Mouse click" msgstr "Klikniźcie" -#: gui/gui-manager.cpp:126 base/main.cpp:322 +#: gui/gui-manager.cpp:126 base/main.cpp:325 msgid "Display keyboard" msgstr "Wy¶wietl klawiaturź" -#: gui/gui-manager.cpp:130 base/main.cpp:326 +#: gui/gui-manager.cpp:130 base/main.cpp:329 msgid "Remap keys" msgstr "Dostosuj klawisze" -#: gui/gui-manager.cpp:133 base/main.cpp:329 engines/scumm/help.cpp:87 +#: gui/gui-manager.cpp:133 base/main.cpp:332 engines/scumm/help.cpp:87 msgid "Toggle fullscreen" msgstr "W³±cz/wy³±cz pe³ny ekran" @@ -326,8 +327,8 @@ msgid "" "English" msgstr "Jźzyk gry. Nie zmieni to hiszpańskiej wersji gry w angielsk±." -#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:87 -#: gui/options.cpp:735 gui/options.cpp:748 gui/options.cpp:1208 +#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:89 +#: gui/options.cpp:737 gui/options.cpp:750 gui/options.cpp:1210 #: audio/null.cpp:41 msgid "<default>" msgstr "<domy¶lne>" @@ -349,11 +350,11 @@ msgstr "Platforma:" msgid "Engine" msgstr "Silnik" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "Graphics" msgstr "Grafika" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "GFX" msgstr "Grafika" @@ -366,7 +367,7 @@ msgctxt "lowres" msgid "Override global graphic settings" msgstr "Uæyj w³asnych ustawień grafiki" -#: gui/launcher.cpp:257 gui/options.cpp:1094 +#: gui/launcher.cpp:257 gui/options.cpp:1096 msgid "Audio" msgstr "D¼wiźk" @@ -379,11 +380,11 @@ msgctxt "lowres" msgid "Override global audio settings" msgstr "Uæyj w³asnych ustawień d¼wiźku" -#: gui/launcher.cpp:271 gui/options.cpp:1099 +#: gui/launcher.cpp:271 gui/options.cpp:1101 msgid "Volume" msgstr "G³o¶no¶ę" -#: gui/launcher.cpp:273 gui/options.cpp:1101 +#: gui/launcher.cpp:273 gui/options.cpp:1103 msgctxt "lowres" msgid "Volume" msgstr "G³o¶no¶ę" @@ -397,7 +398,7 @@ msgctxt "lowres" msgid "Override global volume settings" msgstr "Uæyj w³asnych ustawień g³o¶no¶ci" -#: gui/launcher.cpp:286 gui/options.cpp:1109 +#: gui/launcher.cpp:286 gui/options.cpp:1111 msgid "MIDI" msgstr "MIDI" @@ -410,7 +411,7 @@ msgctxt "lowres" msgid "Override global MIDI settings" msgstr "Uæyj w³asnych ustawień MIDI" -#: gui/launcher.cpp:300 gui/options.cpp:1115 +#: gui/launcher.cpp:300 gui/options.cpp:1117 msgid "MT-32" msgstr "MT-32" @@ -423,11 +424,11 @@ msgctxt "lowres" msgid "Override global MT-32 settings" msgstr "Uæyj w³asnych ustawień MT-32" -#: gui/launcher.cpp:314 gui/options.cpp:1122 +#: gui/launcher.cpp:314 gui/options.cpp:1124 msgid "Paths" msgstr "¦cieæki" -#: gui/launcher.cpp:316 gui/options.cpp:1124 +#: gui/launcher.cpp:316 gui/options.cpp:1126 msgctxt "lowres" msgid "Paths" msgstr "¦cieæki" @@ -441,7 +442,7 @@ msgctxt "lowres" msgid "Game Path:" msgstr "¦cieæka gry:" -#: gui/launcher.cpp:330 gui/options.cpp:1148 +#: gui/launcher.cpp:330 gui/options.cpp:1150 msgid "Extra Path:" msgstr "¦c. dodatków:" @@ -449,42 +450,42 @@ msgstr "¦c. dodatków:" msgid "Specifies path to additional data used by the game" msgstr "Okre¶la ¶cieækź dodatkowych danych gry" -#: gui/launcher.cpp:332 gui/options.cpp:1150 +#: gui/launcher.cpp:332 gui/options.cpp:1152 msgctxt "lowres" msgid "Extra Path:" msgstr "¦c. dodatków:" -#: gui/launcher.cpp:339 gui/options.cpp:1132 +#: gui/launcher.cpp:339 gui/options.cpp:1134 msgid "Save Path:" msgstr "¦cieæka zapisów:" #: gui/launcher.cpp:339 gui/launcher.cpp:341 gui/launcher.cpp:342 -#: gui/options.cpp:1132 gui/options.cpp:1134 gui/options.cpp:1135 +#: gui/options.cpp:1134 gui/options.cpp:1136 gui/options.cpp:1137 msgid "Specifies where your saved games are put" msgstr "Okre¶la gdzie zapisywaę stan gry" -#: gui/launcher.cpp:341 gui/options.cpp:1134 +#: gui/launcher.cpp:341 gui/options.cpp:1136 msgctxt "lowres" msgid "Save Path:" msgstr "¦cieæka zapisów:" #: gui/launcher.cpp:360 gui/launcher.cpp:459 gui/launcher.cpp:517 -#: gui/launcher.cpp:571 gui/options.cpp:1143 gui/options.cpp:1151 -#: gui/options.cpp:1160 gui/options.cpp:1275 gui/options.cpp:1281 -#: gui/options.cpp:1289 gui/options.cpp:1319 gui/options.cpp:1325 -#: gui/options.cpp:1332 gui/options.cpp:1425 gui/options.cpp:1428 -#: gui/options.cpp:1440 +#: gui/launcher.cpp:571 gui/options.cpp:1145 gui/options.cpp:1153 +#: gui/options.cpp:1162 gui/options.cpp:1293 gui/options.cpp:1299 +#: gui/options.cpp:1307 gui/options.cpp:1337 gui/options.cpp:1343 +#: gui/options.cpp:1350 gui/options.cpp:1456 gui/options.cpp:1459 +#: gui/options.cpp:1471 msgctxt "path" msgid "None" msgstr "Brak" #: gui/launcher.cpp:365 gui/launcher.cpp:465 gui/launcher.cpp:575 -#: gui/options.cpp:1269 gui/options.cpp:1313 gui/options.cpp:1431 +#: gui/options.cpp:1287 gui/options.cpp:1331 gui/options.cpp:1462 #: backends/platform/wii/options.cpp:56 msgid "Default" msgstr "Domy¶lnie" -#: gui/launcher.cpp:510 gui/options.cpp:1434 +#: gui/launcher.cpp:510 gui/options.cpp:1465 msgid "Select SoundFont" msgstr "Wybierz SoundFont" @@ -496,7 +497,7 @@ msgstr "Wybierz katalog z plikami gry" msgid "Select additional game directory" msgstr "Wybierz dodatkowy katalog gry" -#: gui/launcher.cpp:559 gui/options.cpp:1377 +#: gui/launcher.cpp:559 gui/options.cpp:1408 msgid "Select directory for saved games" msgstr "Wybierz katalog dla zapisów" @@ -504,7 +505,7 @@ msgstr "Wybierz katalog dla zapisów" msgid "This game ID is already taken. Please choose another one." msgstr "Identyfikator jest juæ zajźty. Wybierz inny." -#: gui/launcher.cpp:626 engines/dialogs.cpp:111 +#: gui/launcher.cpp:626 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:115 msgid "~Q~uit" msgstr "~Z~akończ" @@ -592,17 +593,18 @@ msgid "Search:" msgstr "Szukaj" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214 -#: engines/mohawk/riven.cpp:718 engines/pegasus/pegasus.cpp:353 -#: engines/tsage/scenes.cpp:600 +#: engines/mohawk/dialogs.cpp:120 engines/mohawk/riven.cpp:718 +#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:600 msgid "Load game:" msgstr "Wczytaj grź:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 #: backends/platform/wince/CEActionsPocket.cpp:267 #: backends/platform/wince/CEActionsSmartphone.cpp:231 -#: engines/cruise/menu.cpp:214 engines/mohawk/riven.cpp:718 -#: engines/parallaction/saveload.cpp:197 engines/pegasus/pegasus.cpp:353 -#: engines/scumm/dialogs.cpp:189 engines/tsage/scenes.cpp:600 +#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:120 +#: engines/mohawk/riven.cpp:718 engines/parallaction/saveload.cpp:197 +#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:189 +#: engines/tsage/scenes.cpp:600 msgid "Load" msgstr "Wczytaj" @@ -688,132 +690,132 @@ msgstr "Prze³±cz do gry" msgid "Fast replay" msgstr "Szybka powtórka" -#: gui/options.cpp:85 +#: gui/options.cpp:87 common/updates.cpp:56 msgid "Never" msgstr "Nigdy" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 5 mins" msgstr "co 5 min" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 10 mins" msgstr "co 10 min" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 15 mins" msgstr "co 15 min" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 30 mins" msgstr "co 30 min" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "8 kHz" msgstr "8 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "11 kHz" msgstr "11 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "22 kHz" msgstr "22 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "44 kHz" msgstr "44 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "48 kHz" msgstr "48 kHz" -#: gui/options.cpp:255 gui/options.cpp:479 gui/options.cpp:580 -#: gui/options.cpp:649 gui/options.cpp:857 +#: gui/options.cpp:257 gui/options.cpp:481 gui/options.cpp:582 +#: gui/options.cpp:651 gui/options.cpp:859 msgctxt "soundfont" msgid "None" msgstr "Brak" -#: gui/options.cpp:389 +#: gui/options.cpp:391 msgid "Failed to apply some of the graphic options changes:" msgstr "Nie uda³o siź zastosowaę czź¶ci zmian opcji grafiki:" -#: gui/options.cpp:401 +#: gui/options.cpp:403 msgid "the video mode could not be changed." msgstr "nie uda³o siź zmienię trybu wideo." -#: gui/options.cpp:407 +#: gui/options.cpp:409 msgid "the fullscreen setting could not be changed" msgstr "nie uda³o siź zmienię trybu pe³noekranowego" -#: gui/options.cpp:413 +#: gui/options.cpp:415 msgid "the aspect ratio setting could not be changed" msgstr "nie uda³o siź zmienię formatu obrazu" -#: gui/options.cpp:732 +#: gui/options.cpp:734 msgid "Graphics mode:" msgstr "Tryb grafiki:" -#: gui/options.cpp:746 +#: gui/options.cpp:748 msgid "Render mode:" msgstr "Renderer:" -#: gui/options.cpp:746 gui/options.cpp:747 +#: gui/options.cpp:748 gui/options.cpp:749 msgid "Special dithering modes supported by some games" msgstr "Specjalne tryby ditheringu wspierane przez niektóre gry" -#: gui/options.cpp:758 +#: gui/options.cpp:760 #: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2316 msgid "Fullscreen mode" msgstr "Pe³ny ekran" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Aspect ratio correction" msgstr "Korekcja formatu obrazu" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Correct aspect ratio for 320x200 games" msgstr "Korekcja formatu obrazu dla gier 320x200" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Preferred Device:" msgstr "Pref. urz±dzenie:" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Music Device:" msgstr "Urz. muzyczne:" -#: gui/options.cpp:769 gui/options.cpp:771 +#: gui/options.cpp:771 gui/options.cpp:773 msgid "Specifies preferred sound device or sound card emulator" msgstr "Okre¶la preferowane urz±dzenie d¼wiźkowe lub emulator karty d¼wiźkowej" -#: gui/options.cpp:769 gui/options.cpp:771 gui/options.cpp:772 +#: gui/options.cpp:771 gui/options.cpp:773 gui/options.cpp:774 msgid "Specifies output sound device or sound card emulator" msgstr "Okre¶la wyj¶ciowe urz±dzenie d¼wiźkowe lub emulator karty d¼wiźkowej" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Preferred Dev.:" msgstr "Pref. urz±dzenie:" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Music Device:" msgstr "Urz. muzyczne:" -#: gui/options.cpp:798 +#: gui/options.cpp:800 msgid "AdLib emulator:" msgstr "Emulator AdLib:" -#: gui/options.cpp:798 gui/options.cpp:799 +#: gui/options.cpp:800 gui/options.cpp:801 msgid "AdLib is used for music in many games" msgstr "AdLib jest uæywany do muzyki w wielu grach" -#: gui/options.cpp:809 +#: gui/options.cpp:811 msgid "Output rate:" msgstr "Czźst. wyj.:" -#: gui/options.cpp:809 gui/options.cpp:810 +#: gui/options.cpp:811 gui/options.cpp:812 msgid "" "Higher value specifies better sound quality but may be not supported by your " "soundcard" @@ -821,67 +823,67 @@ msgstr "" "Wyæsze warto¶ci daj± lepsz± jako¶ę d¼wiźku, ale mog± byę nieobs³ugiwane " "przez twoj± kartź d¼wiźkow±" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "GM Device:" msgstr "Urz±dzenie GM:" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "Specifies default sound device for General MIDI output" msgstr "Okre¶la domy¶lne urz±dzenie d¼wiźkowe dla wyj¶cia General MIDI" -#: gui/options.cpp:831 +#: gui/options.cpp:833 msgid "Don't use General MIDI music" msgstr "Nie uæywaj muzyki General MIDI" -#: gui/options.cpp:842 gui/options.cpp:908 +#: gui/options.cpp:844 gui/options.cpp:910 msgid "Use first available device" msgstr "Uæyj pierwszego dostźpnego urz±dzenia" -#: gui/options.cpp:854 +#: gui/options.cpp:856 msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:854 gui/options.cpp:856 gui/options.cpp:857 +#: 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 jest wspierany przez niektóre karty d¼wiźkowe, FluidSynth i " "Timidity" -#: gui/options.cpp:856 +#: gui/options.cpp:858 msgctxt "lowres" msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Mixed AdLib/MIDI mode" msgstr "Tryb miksowanego AdLib/MIDI" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Use both MIDI and AdLib sound generation" msgstr "Uæywaj obu generatorów d¼wiźku, MIDI i AdLib, jednocze¶nie" -#: gui/options.cpp:865 +#: gui/options.cpp:867 msgid "MIDI gain:" msgstr "Wzm. MIDI:" -#: gui/options.cpp:872 +#: gui/options.cpp:874 msgid "FluidSynth Settings" msgstr "Ustawienia FluidSynth" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "MT-32 Device:" msgstr "Urz±dzenie MT-32:" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output" msgstr "" "Okre¶la domy¶lne urz±dzenie d¼wiźku dla wyj¶cia Roland MT-32/LAPC1/CM32l/CM64" -#: gui/options.cpp:884 +#: gui/options.cpp:886 msgid "True Roland MT-32 (disable GM emulation)" msgstr "Prawdziwy Roland MT-32 (wy³±cz emulacjź GM)" -#: gui/options.cpp:884 gui/options.cpp:886 +#: gui/options.cpp:886 gui/options.cpp:888 msgid "" "Check if you want to use your real hardware Roland-compatible sound device " "connected to your computer" @@ -889,16 +891,16 @@ msgstr "" "Zaznacz, je¶li chcesz uæywaę swojej prawdziwej karty kompatybilnej z Roland " "pod³±czonej do twojego komputera" -#: gui/options.cpp:886 +#: gui/options.cpp:888 msgctxt "lowres" msgid "True Roland MT-32 (no GM emulation)" msgstr "Prawdziwy Roland MT-32 (brak emulacji GM)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "Roland GS Device (enable MT-32 mappings)" msgstr "Roland w trybie GS (w³±cz mapowanie MT-32)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "" "Check if you want to enable patch mappings to emulate an MT-32 on a Roland " "GS device" @@ -906,169 +908,181 @@ msgstr "" "Zaznacz, je¶li chcesz w³±czyę ³atki mapowania pozwalaj±ce na emulacjź MT-32 " "na urz±dzeniu Roland GS" -#: gui/options.cpp:898 +#: gui/options.cpp:900 msgid "Don't use Roland MT-32 music" msgstr "Nie uæywaj muzyki Roland MT-32" -#: gui/options.cpp:925 +#: gui/options.cpp:927 msgid "Text and Speech:" msgstr "Tekst i mowa:" -#: gui/options.cpp:929 gui/options.cpp:939 +#: gui/options.cpp:931 gui/options.cpp:941 msgid "Speech" msgstr "Mowa" -#: gui/options.cpp:930 gui/options.cpp:940 +#: gui/options.cpp:932 gui/options.cpp:942 msgid "Subtitles" msgstr "Napisy" -#: gui/options.cpp:931 +#: gui/options.cpp:933 msgid "Both" msgstr "Oba" -#: gui/options.cpp:933 +#: gui/options.cpp:935 msgid "Subtitle speed:" msgstr "Prźd. napisów:" -#: gui/options.cpp:935 +#: gui/options.cpp:937 msgctxt "lowres" msgid "Text and Speech:" msgstr "Tekst i mowa:" -#: gui/options.cpp:939 +#: gui/options.cpp:941 msgid "Spch" msgstr "Mowa" -#: gui/options.cpp:940 +#: gui/options.cpp:942 msgid "Subs" msgstr "Napisy" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgctxt "lowres" msgid "Both" msgstr "Oba" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgid "Show subtitles and play speech" msgstr "Wy¶wietlaj napisy i odtwarzaj mowź" -#: gui/options.cpp:943 +#: gui/options.cpp:945 msgctxt "lowres" msgid "Subtitle speed:" msgstr "Prźd. napisów:" -#: gui/options.cpp:959 +#: gui/options.cpp:961 msgid "Music volume:" msgstr "G³o¶no¶ę muzyki:" -#: gui/options.cpp:961 +#: gui/options.cpp:963 msgctxt "lowres" msgid "Music volume:" msgstr "G³o¶no¶ę muzyki:" -#: gui/options.cpp:968 +#: gui/options.cpp:970 msgid "Mute All" msgstr "Wycisz" -#: gui/options.cpp:971 +#: gui/options.cpp:973 msgid "SFX volume:" msgstr "G³. efekt. d¼w.:" -#: gui/options.cpp:971 gui/options.cpp:973 gui/options.cpp:974 +#: gui/options.cpp:973 gui/options.cpp:975 gui/options.cpp:976 msgid "Special sound effects volume" msgstr "G³o¶no¶ę efektów d¼w." -#: gui/options.cpp:973 +#: gui/options.cpp:975 msgctxt "lowres" msgid "SFX volume:" msgstr "G³. efekt. d¼w.:" -#: gui/options.cpp:981 +#: gui/options.cpp:983 msgid "Speech volume:" msgstr "G³o¶no¶ę mowy:" -#: gui/options.cpp:983 +#: gui/options.cpp:985 msgctxt "lowres" msgid "Speech volume:" msgstr "G³o¶no¶ę mowy:" -#: gui/options.cpp:1140 +#: gui/options.cpp:1142 msgid "Theme Path:" msgstr "¦cieæka stylu:" -#: gui/options.cpp:1142 +#: gui/options.cpp:1144 msgctxt "lowres" msgid "Theme Path:" msgstr "¦cieæka stylu:" -#: gui/options.cpp:1148 gui/options.cpp:1150 gui/options.cpp:1151 +#: gui/options.cpp:1150 gui/options.cpp:1152 gui/options.cpp:1153 msgid "Specifies path to additional data used by all games or ScummVM" msgstr "Okre¶la ¶cieækź dla dodatkowych danych dla wszystkich gier lub ScummVM" -#: gui/options.cpp:1157 +#: gui/options.cpp:1159 msgid "Plugins Path:" msgstr "¦cieæka wtyczek:" -#: gui/options.cpp:1159 +#: gui/options.cpp:1161 msgctxt "lowres" msgid "Plugins Path:" msgstr "¦cieæka wtyczek:" -#: gui/options.cpp:1170 +#: gui/options.cpp:1172 msgctxt "lowres" msgid "Misc" msgstr "Róæne" -#: gui/options.cpp:1172 +#: gui/options.cpp:1174 msgid "Theme:" msgstr "Styl:" -#: gui/options.cpp:1176 +#: gui/options.cpp:1178 msgid "GUI Renderer:" msgstr "Renderer interf.:" -#: gui/options.cpp:1188 +#: gui/options.cpp:1190 msgid "Autosave:" msgstr "Autozapis:" -#: gui/options.cpp:1190 +#: gui/options.cpp:1192 msgctxt "lowres" msgid "Autosave:" msgstr "Autozapis:" -#: gui/options.cpp:1198 +#: gui/options.cpp:1200 msgid "Keys" msgstr "Klawisze" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "GUI Language:" msgstr "Jźzyk interfejsu:" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "Language of ScummVM GUI" msgstr "Jźzyk interfejsu ScummVM" -#: gui/options.cpp:1364 +#: gui/options.cpp:1235 +msgid "Update check:" +msgstr "" + +#: gui/options.cpp:1235 +msgid "How often to check ScummVM updates" +msgstr "" + +#: gui/options.cpp:1247 +msgid "Check now" +msgstr "" + +#: gui/options.cpp:1382 msgid "You have to restart ScummVM before your changes will take effect." msgstr "Musisz zrestartowaę ScummVM, by zmiany zosta³y uwzglźdnione." -#: gui/options.cpp:1384 +#: gui/options.cpp:1415 msgid "The chosen directory cannot be written to. Please select another one." msgstr "Ten katalog jest zabezpieczony przed zapisem. Wybierz inny." -#: gui/options.cpp:1393 +#: gui/options.cpp:1424 msgid "Select directory for GUI themes" msgstr "Wybierz katalog dla stylów GUI." -#: gui/options.cpp:1403 +#: gui/options.cpp:1434 msgid "Select directory for extra files" msgstr "Wybierz katalog dla dodatkowych plików" -#: gui/options.cpp:1414 +#: gui/options.cpp:1445 msgid "Select directory for plugins" msgstr "Wybierz katalog dla wtyczek" -#: gui/options.cpp:1467 +#: gui/options.cpp:1498 msgid "" "The theme you selected does not support your current language. If you want " "to use this theme you need to switch to another language first." @@ -1241,39 +1255,60 @@ msgstr "Wyg³adzany renderer" msgid "Antialiased" msgstr "Wyg³adzany" -#: gui/widget.cpp:323 gui/widget.cpp:325 gui/widget.cpp:331 gui/widget.cpp:333 +#: gui/updates-dialog.cpp:51 +msgid "" +"ScummVM now supports automatic check for updates\n" +"which requires access to the Internet.\n" +"\n" +"Would you like to enable this feature?" +msgstr "" + +#: gui/updates-dialog.cpp:55 +msgid "(You can always enable it in the options dialog on the Misc tab)" +msgstr "" + +#: gui/updates-dialog.cpp:92 +#, fuzzy +msgid "Check for updates automatically" +msgstr "Sprawd¼ aktualizacjź..." + +#: gui/updates-dialog.cpp:111 +msgid "Proceed" +msgstr "" + +#: gui/widget.cpp:327 gui/widget.cpp:329 gui/widget.cpp:335 gui/widget.cpp:337 msgid "Clear value" msgstr "Wyczy¶ę" -#: base/main.cpp:237 +#: base/main.cpp:240 #, c-format msgid "Engine does not support debug level '%s'" msgstr "Silnik nie wspiera poziomu debugowania '%s'" -#: base/main.cpp:309 +#: base/main.cpp:312 msgid "Menu" msgstr "Menu" -#: base/main.cpp:312 backends/platform/symbian/src/SymbianActions.cpp:45 +#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:45 #: backends/platform/wince/CEActionsPocket.cpp:45 #: backends/platform/wince/CEActionsSmartphone.cpp:46 msgid "Skip" msgstr "Pomiń" -#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:50 +#: base/main.cpp:318 backends/platform/symbian/src/SymbianActions.cpp:50 #: backends/platform/wince/CEActionsPocket.cpp:42 msgid "Pause" msgstr "Wstrzymaj" -#: base/main.cpp:318 +#: base/main.cpp:321 msgid "Skip line" msgstr "Pomiń liniź" -#: base/main.cpp:510 +#: base/main.cpp:520 msgid "Error running game:" msgstr "B³±d podczas uruchamiania gry:" -#: base/main.cpp:557 +#: base/main.cpp:567 msgid "Could not find any engine capable of running the selected game" msgstr "Nie uda³o siź znale¼ę silnika zdolnego do uruchomienia zaznaczonej gry" @@ -1368,16 +1403,33 @@ msgctxt "lowres" msgid "Hercules Amber" msgstr "Bursztynowy Hercules" -#: engines/advancedDetector.cpp:317 +#: common/updates.cpp:58 +msgid "Daily" +msgstr "" + +#: common/updates.cpp:60 +msgid "Weekly" +msgstr "" + +#: common/updates.cpp:62 +msgid "Monthly" +msgstr "" + +#: common/updates.cpp:64 +#, fuzzy +msgid "<Bad value>" +msgstr "Wyczy¶ę" + +#: engines/advancedDetector.cpp:334 #, c-format msgid "The game in '%s' seems to be unknown." msgstr "Gra w '%s' wygl±da na nieznan±." -#: engines/advancedDetector.cpp:318 +#: engines/advancedDetector.cpp:335 msgid "Please, report the following data to the ScummVM team along with name" msgstr "Przekaæ poniæsze dane zespo³owi ScummVM razem z nazw±" -#: engines/advancedDetector.cpp:320 +#: engines/advancedDetector.cpp:337 msgid "of the game you tried to add and its version/language/etc.:" msgstr "gry, któr± próbowa³e¶ dodaę oraz jej wersj±, jźzykiem itd.:" @@ -1385,11 +1437,11 @@ msgstr "gry, któr± próbowa³e¶ dodaę oraz jej wersj±, jźzykiem itd.:" msgid "~R~esume" msgstr "~W~znów" -#: engines/dialogs.cpp:87 +#: engines/dialogs.cpp:87 engines/mohawk/dialogs.cpp:113 msgid "~L~oad" msgstr "~W~czytaj" -#: engines/dialogs.cpp:91 +#: engines/dialogs.cpp:91 engines/mohawk/dialogs.cpp:114 msgid "~S~ave" msgstr "~Z~apisz" @@ -1418,9 +1470,9 @@ msgstr "~P~owrót do launchera" #: engines/avalanche/parser.cpp:1899 engines/cge/events.cpp:74 #: engines/cge2/events.cpp:67 engines/cruise/menu.cpp:212 #: engines/drascula/saveload.cpp:336 engines/dreamweb/saveload.cpp:261 -#: engines/hugo/file.cpp:298 engines/neverhood/menumodule.cpp:877 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/hugo/file.cpp:298 engines/mohawk/dialogs.cpp:121 +#: engines/neverhood/menumodule.cpp:877 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save game:" @@ -1435,9 +1487,10 @@ msgstr "Zapis:" #: engines/cge/events.cpp:74 engines/cge2/events.cpp:67 #: engines/cruise/menu.cpp:212 engines/drascula/saveload.cpp:336 #: engines/dreamweb/saveload.cpp:261 engines/hugo/file.cpp:298 -#: engines/neverhood/menumodule.cpp:877 engines/parallaction/saveload.cpp:212 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/scumm/dialogs.cpp:188 engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/mohawk/dialogs.cpp:121 engines/neverhood/menumodule.cpp:877 +#: engines/parallaction/saveload.cpp:212 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/scumm/dialogs.cpp:188 +#: engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save" @@ -1462,13 +1515,13 @@ msgstr "" "Zapis stanu gry nie powiód³ siź (%s)! Aby uzyskaę podstawowe informacje oraz " "dowiedzieę jak szukaę dalszej pomocy, sprawd¼ plik README." -#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:109 -#: engines/mohawk/dialogs.cpp:170 engines/tsage/dialogs.cpp:106 +#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:117 +#: engines/mohawk/dialogs.cpp:242 engines/tsage/dialogs.cpp:106 msgid "~O~K" msgstr "~O~K" -#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:110 -#: engines/mohawk/dialogs.cpp:171 engines/tsage/dialogs.cpp:107 +#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:118 +#: engines/mohawk/dialogs.cpp:243 engines/tsage/dialogs.cpp:107 msgid "~C~ancel" msgstr "~A~nuluj" @@ -1620,11 +1673,11 @@ msgstr "D¼wiźk FM-Towns" msgid "PC-98 Audio" msgstr "D¼wiźk PC-98" -#: audio/softsynth/mt32.cpp:200 +#: audio/softsynth/mt32.cpp:196 msgid "Initializing MT-32 Emulator" msgstr "Inicjalizacja emulatora MT-32" -#: audio/softsynth/mt32.cpp:426 +#: audio/softsynth/mt32.cpp:434 msgid "MT-32 Emulator" msgstr "Emulator MT-32" @@ -1741,11 +1794,11 @@ msgstr "Tryb automatycznego przeci±gania jest" msgid "Swipe three fingers to the right to toggle." msgstr "Przesuń trzema palcami, æeby zmienię." -#: backends/graphics/opengl/opengl-graphics.cpp:119 +#: backends/graphics/opengl/opengl-graphics.cpp:126 msgid "OpenGL" msgstr "OpenGL" -#: backends/graphics/opengl/opengl-graphics.cpp:120 +#: backends/graphics/opengl/opengl-graphics.cpp:127 msgid "OpenGL (No filtering)" msgstr "OpenGL (bez filtrowania)" @@ -2295,20 +2348,20 @@ msgstr "" "Nie zapomnij przypisaę klawisza 'Ukryj pasek narzździ', by widzieę ca³y " "ekwipunek" -#: backends/updates/macosx/macosx-updates.mm:67 +#: backends/updates/macosx/macosx-updates.mm:68 msgid "Check for Updates..." msgstr "Sprawd¼ aktualizacjź..." #: engines/agi/detection.cpp:147 engines/cine/detection.cpp:70 #: engines/drascula/detection.cpp:302 engines/dreamweb/detection.cpp:47 -#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:404 +#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:410 #: engines/toltecs/detection.cpp:200 engines/zvision/detection_tables.h:51 msgid "Use original save/load screens" msgstr "Uæyj oryginalnych ekranów odczytu/zapisu" #: engines/agi/detection.cpp:148 engines/cine/detection.cpp:71 #: engines/drascula/detection.cpp:303 engines/dreamweb/detection.cpp:48 -#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:405 +#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:411 #: engines/toltecs/detection.cpp:201 msgid "Use the original save/load screens, instead of the ScummVM ones" msgstr "Uæyj oryginalnych ekranów odczytu/zapisu zamiast tych ze ScummVM" @@ -2336,11 +2389,30 @@ msgstr "" "W³±cza obs³ugź myszki. Pozwala na uæycie myszki do przemieszczania i w menu " "gry." +#: engines/agi/detection.cpp:177 +#, fuzzy +msgid "Use Hercules hires font" +msgstr "Zielony Hercules" + +#: engines/agi/detection.cpp:178 +msgid "Uses Hercules hires font, when font file is available." +msgstr "" + +#: engines/agi/detection.cpp:187 +msgid "Pause when entering commands" +msgstr "" + +#: engines/agi/detection.cpp:188 +msgid "" +"Shows a command prompt window and pauses the game (like in SCI) instead of a " +"real-time prompt." +msgstr "" + #: engines/agi/saveload.cpp:777 engines/avalanche/parser.cpp:1887 #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore game:" @@ -2350,13 +2422,13 @@ msgstr "Wznów grź:" #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore" msgstr "Wznów" -#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2377 +#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2374 #, c-format msgid "" "Failed to load game state from file:\n" @@ -2367,7 +2439,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2370 +#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2367 #, c-format msgid "" "Failed to save game state to file:\n" @@ -2378,7 +2450,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2388 +#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2385 #, c-format msgid "" "Successfully saved game state in file:\n" @@ -2621,29 +2693,39 @@ msgstr "" "debugowania ScummVM i uæyę komendy 'import_savefile'.\n" "\n" +#: engines/mohawk/detection.cpp:168 +msgid "Play the Myst fly by movie" +msgstr "" + +#: engines/mohawk/detection.cpp:169 +msgid "The Myst fly by movie was not played by the original engine." +msgstr "" + #. I18N: Option for fast scene switching -#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:167 +#: engines/mohawk/dialogs.cpp:96 engines/mohawk/dialogs.cpp:239 msgid "~Z~ip Mode Activated" msgstr "~T~ryb turbo aktywny" -#: engines/mohawk/dialogs.cpp:93 +#: engines/mohawk/dialogs.cpp:97 msgid "~T~ransitions Enabled" msgstr "~P~rzej¶cia w³±czone" #. I18N: Drop book page -#: engines/mohawk/dialogs.cpp:95 +#: engines/mohawk/dialogs.cpp:99 msgid "~D~rop Page" msgstr "~O~pu¶ę stronź" -#: engines/mohawk/dialogs.cpp:99 -msgid "~S~how Map" +#: engines/mohawk/dialogs.cpp:103 +#, fuzzy +msgid "Show ~M~ap" msgstr "~P~okaæ mapź" -#: engines/mohawk/dialogs.cpp:105 -msgid "~M~ain Menu" +#: engines/mohawk/dialogs.cpp:109 +#, fuzzy +msgid "Main Men~u~" msgstr "~M~enu g³ówne" -#: engines/mohawk/dialogs.cpp:168 +#: engines/mohawk/dialogs.cpp:240 msgid "~W~ater Effect Enabled" msgstr "~E~fekty wody w³±czone" @@ -2764,36 +2846,36 @@ msgstr "Alternatywne intro" msgid "Use an alternative game intro (CD version only)" msgstr "Uæyj alternatywnego intra (tylko dla wersji CD)" -#: engines/sci/detection.cpp:374 +#: engines/sci/detection.cpp:380 msgid "Skip EGA dithering pass (full color backgrounds)" msgstr "Pomiń dithering EGA (t³a w pe³nym kolorze)" -#: engines/sci/detection.cpp:375 +#: engines/sci/detection.cpp:381 msgid "Skip dithering pass in EGA games, graphics are shown with full colors" msgstr "" "Pomiń dithering w grach EGA, grafika bździe wy¶wietlana w pe³nym kolorze" -#: engines/sci/detection.cpp:384 +#: engines/sci/detection.cpp:390 msgid "Enable high resolution graphics" msgstr "W³±cz grafikź wysokiej rozdzielczo¶ci" -#: engines/sci/detection.cpp:385 +#: engines/sci/detection.cpp:391 msgid "Enable high resolution graphics/content" msgstr "W³±cz grafikź/zawarto¶ę wysokiej rozdzielczo¶ci" -#: engines/sci/detection.cpp:394 +#: engines/sci/detection.cpp:400 msgid "Prefer digital sound effects" msgstr "Preferuj cyfrowe efekty d¼wiźkowe" -#: engines/sci/detection.cpp:395 +#: engines/sci/detection.cpp:401 msgid "Prefer digital sound effects instead of synthesized ones" msgstr "Preferuj cyfrowe efekty d¼wiźkowe zamiast syntezowanych" -#: engines/sci/detection.cpp:414 +#: engines/sci/detection.cpp:420 msgid "Use IMF/Yamaha FB-01 for MIDI output" msgstr "Uæyj IMF/Yamaha FB-01 dla wyj¶cia MIDI" -#: engines/sci/detection.cpp:415 +#: engines/sci/detection.cpp:421 msgid "" "Use an IBM Music Feature card or a Yamaha FB-01 FM synth module for MIDI " "output" @@ -2801,34 +2883,43 @@ msgstr "" "Uæyj karty IBM Music Feature lub modu³u syntezy FM Yamaha FB-01 dla wyj¶cia " "MIDI" -#: engines/sci/detection.cpp:425 +#: engines/sci/detection.cpp:431 msgid "Use CD audio" msgstr "Uæyj CD audio" -#: engines/sci/detection.cpp:426 +#: engines/sci/detection.cpp:432 msgid "Use CD audio instead of in-game audio, if available" msgstr "Uæyj CD audio zamiast muzyki w grze, je¶li jest dostźpne" -#: engines/sci/detection.cpp:436 +#: engines/sci/detection.cpp:442 msgid "Use Windows cursors" msgstr "Uæyj windowsowych kursorów" -#: engines/sci/detection.cpp:437 +#: engines/sci/detection.cpp:443 msgid "" "Use the Windows cursors (smaller and monochrome) instead of the DOS ones" msgstr "" "Uæyj windowsowych kursorów (mniejsze i monochromatyczne) zamiast DOS-owych" -#: engines/sci/detection.cpp:447 +#: engines/sci/detection.cpp:453 msgid "Use silver cursors" msgstr "Uæyj srebrnych kursorów" -#: engines/sci/detection.cpp:448 +#: engines/sci/detection.cpp:454 msgid "" "Use the alternate set of silver cursors, instead of the normal golden ones" msgstr "" "Uæyj alternatywnego zestawu srebrnych kursorów zamiast zwyk³ych z³otych" +#: engines/scumm/detection.cpp:1335 +#, fuzzy +msgid "Show Object Line" +msgstr "Pokaæ etykiety obiektów" + +#: engines/scumm/detection.cpp:1336 +msgid "Show the names of objects at the bottom of the screen" +msgstr "" + #: engines/scumm/dialogs.cpp:176 #, c-format msgid "Insert Disk %c and Press Button to Continue." @@ -3494,7 +3585,7 @@ msgstr "G³o¶no¶ę muzyki: " msgid "Subtitle speed: " msgstr "Prźd. napisów: " -#: engines/scumm/scumm.cpp:1832 +#: engines/scumm/scumm.cpp:1829 #, c-format msgid "" "Native MIDI support requires the Roland Upgrade from LucasArts,\n" @@ -3503,7 +3594,7 @@ msgstr "" "Natywne wsparcie MIDI wymaga aktualizacji Rolanda od LucasArts,\n" "ale brakuje %s. Prze³±czam na tryb AdLib." -#: engines/scumm/scumm.cpp:2644 +#: engines/scumm/scumm.cpp:2645 msgid "" "Usually, Maniac Mansion would start now. But for that to work, the game " "files for Maniac Mansion have to be in the 'Maniac' directory inside the " @@ -3688,6 +3779,15 @@ msgstr "Pokaæ etykiety obiektów" msgid "Show labels for objects on mouse hover" msgstr "Pokaæ etykiety obiektów przy najechaniu myszk±" +#: engines/sword25/detection.cpp:46 +msgid "Use English speech" +msgstr "" + +#: engines/sword25/detection.cpp:47 +msgid "" +"Use English speech instead of German for every language other than German" +msgstr "" + #: engines/teenagent/resources.cpp:95 msgid "" "You're missing the 'teenagent.dat' file. Get it from the ScummVM website" diff --git a/po/pt_BR.po b/po/pt_BR.po index b42ccf2bff..adf05bbf79 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ScummVM 1.3.0svn\n" "Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n" -"POT-Creation-Date: 2016-02-20 21:22+0000\n" +"POT-Creation-Date: 2016-04-07 08:55+0100\n" "PO-Revision-Date: 2011-10-21 21:30-0300\n" "Last-Translator: Saulo Benigno <saulobenigno@gmail.com>\n" "Language-Team: ScummBR (www.scummbr.com) <scummbr@yahoo.com.br>\n" @@ -58,10 +58,11 @@ msgstr "Acima" #: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editrecorddialog.cpp:67 #: gui/filebrowser-dialog.cpp:64 gui/fluidsynth-dialog.cpp:152 #: gui/KeysDialog.cpp:43 gui/launcher.cpp:351 gui/massadd.cpp:95 -#: gui/options.cpp:1237 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 +#: gui/options.cpp:1255 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 #: gui/recorderdialog.cpp:156 gui/saveload-dialog.cpp:216 #: gui/saveload-dialog.cpp:276 gui/saveload-dialog.cpp:547 -#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 engines/engine.cpp:546 +#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 +#: gui/updates-dialog.cpp:113 engines/engine.cpp:546 #: backends/events/default/default-events.cpp:196 #: backends/events/default/default-events.cpp:218 #: backends/platform/wii/options.cpp:48 engines/drascula/saveload.cpp:49 @@ -179,7 +180,7 @@ msgstr "" msgid "Triangle" msgstr "" -#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1168 +#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1170 msgid "Misc" msgstr "Outros" @@ -213,12 +214,12 @@ msgstr "" #: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:352 #: gui/launcher.cpp:1050 gui/launcher.cpp:1054 gui/massadd.cpp:92 -#: gui/options.cpp:1238 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 +#: gui/options.cpp:1256 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 #: engines/engine.cpp:476 backends/platform/wii/options.cpp:47 #: backends/platform/wince/CELauncherDialog.cpp:54 #: engines/agos/animation.cpp:558 engines/drascula/saveload.cpp:49 #: engines/groovie/script.cpp:408 engines/parallaction/saveload.cpp:274 -#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1834 +#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1831 #: engines/scumm/players/player_v3m.cpp:130 #: engines/scumm/players/player_v5m.cpp:108 engines/sky/compact.cpp:131 #: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:524 @@ -247,15 +248,15 @@ msgstr "Fechar" msgid "Mouse click" msgstr "Clique do mouse" -#: gui/gui-manager.cpp:126 base/main.cpp:322 +#: gui/gui-manager.cpp:126 base/main.cpp:325 msgid "Display keyboard" msgstr "Mostrar teclado" -#: gui/gui-manager.cpp:130 base/main.cpp:326 +#: gui/gui-manager.cpp:130 base/main.cpp:329 msgid "Remap keys" msgstr "Remapear teclas" -#: gui/gui-manager.cpp:133 base/main.cpp:329 engines/scumm/help.cpp:87 +#: gui/gui-manager.cpp:133 base/main.cpp:332 engines/scumm/help.cpp:87 #, fuzzy msgid "Toggle fullscreen" msgstr "Habilita Tela Cheia" @@ -330,8 +331,8 @@ msgid "" "English" msgstr "Idioma do jogo. Isto nćo irį passar seu jogo Inglźs para Portuguźs" -#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:87 -#: gui/options.cpp:735 gui/options.cpp:748 gui/options.cpp:1208 +#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:89 +#: gui/options.cpp:737 gui/options.cpp:750 gui/options.cpp:1210 #: audio/null.cpp:41 msgid "<default>" msgstr "<padrćo>" @@ -354,11 +355,11 @@ msgstr "Sistema:" msgid "Engine" msgstr "Examinar" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "Graphics" msgstr "Grįficos" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "GFX" msgstr "GFX" @@ -371,7 +372,7 @@ msgctxt "lowres" msgid "Override global graphic settings" msgstr "Sobrepor configuraēćo global de grįficos" -#: gui/launcher.cpp:257 gui/options.cpp:1094 +#: gui/launcher.cpp:257 gui/options.cpp:1096 msgid "Audio" msgstr "Įudio" @@ -384,11 +385,11 @@ msgctxt "lowres" msgid "Override global audio settings" msgstr "Sobrepor configuraēćo global de įudio" -#: gui/launcher.cpp:271 gui/options.cpp:1099 +#: gui/launcher.cpp:271 gui/options.cpp:1101 msgid "Volume" msgstr "Volume" -#: gui/launcher.cpp:273 gui/options.cpp:1101 +#: gui/launcher.cpp:273 gui/options.cpp:1103 msgctxt "lowres" msgid "Volume" msgstr "Volume" @@ -402,7 +403,7 @@ msgctxt "lowres" msgid "Override global volume settings" msgstr "Sobrepor configuraēćo global de volume" -#: gui/launcher.cpp:286 gui/options.cpp:1109 +#: gui/launcher.cpp:286 gui/options.cpp:1111 msgid "MIDI" msgstr "MIDI" @@ -415,7 +416,7 @@ msgctxt "lowres" msgid "Override global MIDI settings" msgstr "Sobrepor configuraēćo global de MIDI" -#: gui/launcher.cpp:300 gui/options.cpp:1115 +#: gui/launcher.cpp:300 gui/options.cpp:1117 msgid "MT-32" msgstr "MT-32" @@ -428,11 +429,11 @@ msgctxt "lowres" msgid "Override global MT-32 settings" msgstr "Sobrepor configuraēćo global de MT-32" -#: gui/launcher.cpp:314 gui/options.cpp:1122 +#: gui/launcher.cpp:314 gui/options.cpp:1124 msgid "Paths" msgstr "Pastas" -#: gui/launcher.cpp:316 gui/options.cpp:1124 +#: gui/launcher.cpp:316 gui/options.cpp:1126 msgctxt "lowres" msgid "Paths" msgstr "Pastas" @@ -446,7 +447,7 @@ msgctxt "lowres" msgid "Game Path:" msgstr "Pasta do Jogo:" -#: gui/launcher.cpp:330 gui/options.cpp:1148 +#: gui/launcher.cpp:330 gui/options.cpp:1150 msgid "Extra Path:" msgstr "Pasta de Extras" @@ -454,42 +455,42 @@ msgstr "Pasta de Extras" msgid "Specifies path to additional data used by the game" msgstr "Especifique a pasta para dados utilizados no jogo" -#: gui/launcher.cpp:332 gui/options.cpp:1150 +#: gui/launcher.cpp:332 gui/options.cpp:1152 msgctxt "lowres" msgid "Extra Path:" msgstr "Pasta de Extras" -#: gui/launcher.cpp:339 gui/options.cpp:1132 +#: gui/launcher.cpp:339 gui/options.cpp:1134 msgid "Save Path:" msgstr "Pasta para Salvar" #: gui/launcher.cpp:339 gui/launcher.cpp:341 gui/launcher.cpp:342 -#: gui/options.cpp:1132 gui/options.cpp:1134 gui/options.cpp:1135 +#: gui/options.cpp:1134 gui/options.cpp:1136 gui/options.cpp:1137 msgid "Specifies where your saved games are put" msgstr "Especifique onde guardar seus jogos salvos" -#: gui/launcher.cpp:341 gui/options.cpp:1134 +#: gui/launcher.cpp:341 gui/options.cpp:1136 msgctxt "lowres" msgid "Save Path:" msgstr "Pasta para Salvar" #: gui/launcher.cpp:360 gui/launcher.cpp:459 gui/launcher.cpp:517 -#: gui/launcher.cpp:571 gui/options.cpp:1143 gui/options.cpp:1151 -#: gui/options.cpp:1160 gui/options.cpp:1275 gui/options.cpp:1281 -#: gui/options.cpp:1289 gui/options.cpp:1319 gui/options.cpp:1325 -#: gui/options.cpp:1332 gui/options.cpp:1425 gui/options.cpp:1428 -#: gui/options.cpp:1440 +#: gui/launcher.cpp:571 gui/options.cpp:1145 gui/options.cpp:1153 +#: gui/options.cpp:1162 gui/options.cpp:1293 gui/options.cpp:1299 +#: gui/options.cpp:1307 gui/options.cpp:1337 gui/options.cpp:1343 +#: gui/options.cpp:1350 gui/options.cpp:1456 gui/options.cpp:1459 +#: gui/options.cpp:1471 msgctxt "path" msgid "None" msgstr "Nenhum(a)" #: gui/launcher.cpp:365 gui/launcher.cpp:465 gui/launcher.cpp:575 -#: gui/options.cpp:1269 gui/options.cpp:1313 gui/options.cpp:1431 +#: gui/options.cpp:1287 gui/options.cpp:1331 gui/options.cpp:1462 #: backends/platform/wii/options.cpp:56 msgid "Default" msgstr "Padrćo" -#: gui/launcher.cpp:510 gui/options.cpp:1434 +#: gui/launcher.cpp:510 gui/options.cpp:1465 msgid "Select SoundFont" msgstr "Selecione o SoundFont" @@ -501,7 +502,7 @@ msgstr "Selecione a pasta com os arquivos do jogo" msgid "Select additional game directory" msgstr "Selecione a pasta adicional do jogo" -#: gui/launcher.cpp:559 gui/options.cpp:1377 +#: gui/launcher.cpp:559 gui/options.cpp:1408 msgid "Select directory for saved games" msgstr "Selecione a pasta para os jogos salvos" @@ -509,7 +510,7 @@ msgstr "Selecione a pasta para os jogos salvos" msgid "This game ID is already taken. Please choose another one." msgstr "Este código jį esta sendo utilizado. Por favor, escolha outro." -#: gui/launcher.cpp:626 engines/dialogs.cpp:111 +#: gui/launcher.cpp:626 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:115 msgid "~Q~uit" msgstr "~S~air" @@ -598,17 +599,18 @@ msgid "Search:" msgstr "Pesquisar:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214 -#: engines/mohawk/riven.cpp:718 engines/pegasus/pegasus.cpp:353 -#: engines/tsage/scenes.cpp:600 +#: engines/mohawk/dialogs.cpp:120 engines/mohawk/riven.cpp:718 +#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:600 msgid "Load game:" msgstr "Carregar jogo:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 #: backends/platform/wince/CEActionsPocket.cpp:267 #: backends/platform/wince/CEActionsSmartphone.cpp:231 -#: engines/cruise/menu.cpp:214 engines/mohawk/riven.cpp:718 -#: engines/parallaction/saveload.cpp:197 engines/pegasus/pegasus.cpp:353 -#: engines/scumm/dialogs.cpp:189 engines/tsage/scenes.cpp:600 +#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:120 +#: engines/mohawk/riven.cpp:718 engines/parallaction/saveload.cpp:197 +#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:189 +#: engines/tsage/scenes.cpp:600 msgid "Load" msgstr "Carregar" @@ -704,132 +706,132 @@ msgstr "Trocar" msgid "Fast replay" msgstr "Modo rįpido" -#: gui/options.cpp:85 +#: gui/options.cpp:87 common/updates.cpp:56 msgid "Never" msgstr "Nunca" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 5 mins" msgstr "a cada 5 mins" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 10 mins" msgstr "a cada 10 mins" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 15 mins" msgstr "a cada 15 mins" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 30 mins" msgstr "a cada 30 mins" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "8 kHz" msgstr "8 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "11 kHz" msgstr "11 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "22 kHz" msgstr "22 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "44 kHz" msgstr "44 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "48 kHz" msgstr "48 kHz" -#: gui/options.cpp:255 gui/options.cpp:479 gui/options.cpp:580 -#: gui/options.cpp:649 gui/options.cpp:857 +#: gui/options.cpp:257 gui/options.cpp:481 gui/options.cpp:582 +#: gui/options.cpp:651 gui/options.cpp:859 msgctxt "soundfont" msgid "None" msgstr "Nenhum(a)" -#: gui/options.cpp:389 +#: gui/options.cpp:391 msgid "Failed to apply some of the graphic options changes:" msgstr "Falha ao aplicar algumas mudanēas nas opēões de grįfico:" -#: gui/options.cpp:401 +#: gui/options.cpp:403 msgid "the video mode could not be changed." msgstr "o modo de vķdeo nćo pōde ser alterado." -#: gui/options.cpp:407 +#: gui/options.cpp:409 msgid "the fullscreen setting could not be changed" msgstr "a configuraēćo de tela cheia nćo pōde ser mudada" -#: gui/options.cpp:413 +#: gui/options.cpp:415 msgid "the aspect ratio setting could not be changed" msgstr "a configuraēćo de proporēćo nćo pōde ser mudada" -#: gui/options.cpp:732 +#: gui/options.cpp:734 msgid "Graphics mode:" msgstr "Modo grįfico:" -#: gui/options.cpp:746 +#: gui/options.cpp:748 msgid "Render mode:" msgstr "Renderizaēćo" -#: gui/options.cpp:746 gui/options.cpp:747 +#: gui/options.cpp:748 gui/options.cpp:749 msgid "Special dithering modes supported by some games" msgstr "Modos especiais de dithering suportados por alguns jogos" -#: gui/options.cpp:758 +#: gui/options.cpp:760 #: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2316 msgid "Fullscreen mode" msgstr "Modo Tela Cheia" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Aspect ratio correction" msgstr "Correēćo de proporēćo" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Correct aspect ratio for 320x200 games" msgstr "Correēćo de proporēćo para jogos 320x200" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Preferred Device:" msgstr "Dispositivo pref.:" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Music Device:" msgstr "Disp. de mśsica:" -#: gui/options.cpp:769 gui/options.cpp:771 +#: gui/options.cpp:771 gui/options.cpp:773 msgid "Specifies preferred sound device or sound card emulator" msgstr "Especifica o dispositivo de som preferido ou emulador de placa de som" -#: gui/options.cpp:769 gui/options.cpp:771 gui/options.cpp:772 +#: gui/options.cpp:771 gui/options.cpp:773 gui/options.cpp:774 msgid "Specifies output sound device or sound card emulator" msgstr "Especifica o dispositivo de saķda de som ou emulador de placa de som" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Preferred Dev.:" msgstr "Dispositivo pref.:" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Music Device:" msgstr "Dispositivo de mśsica:" -#: gui/options.cpp:798 +#: gui/options.cpp:800 msgid "AdLib emulator:" msgstr "Emulador AdLib:" -#: gui/options.cpp:798 gui/options.cpp:799 +#: gui/options.cpp:800 gui/options.cpp:801 msgid "AdLib is used for music in many games" msgstr "AdLib é utilizado para mśsica em vįrios jogos" -#: gui/options.cpp:809 +#: gui/options.cpp:811 msgid "Output rate:" msgstr "Taxa de saķda:" -#: gui/options.cpp:809 gui/options.cpp:810 +#: gui/options.cpp:811 gui/options.cpp:812 msgid "" "Higher value specifies better sound quality but may be not supported by your " "soundcard" @@ -837,66 +839,66 @@ msgstr "" "Maior valor especifica melhor qualidade de som, mas pode nćo ser suportado " "por sua placa de som" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "GM Device:" msgstr "Dispositivo GM:" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "Specifies default sound device for General MIDI output" msgstr "Especifique o dispositivo de som padrćo para a saķda General MIDI" -#: gui/options.cpp:831 +#: gui/options.cpp:833 msgid "Don't use General MIDI music" msgstr "Nćo usar mśsica General MIDI" -#: gui/options.cpp:842 gui/options.cpp:908 +#: gui/options.cpp:844 gui/options.cpp:910 msgid "Use first available device" msgstr "Usar o primeiro dispositivo disponķvel" -#: gui/options.cpp:854 +#: gui/options.cpp:856 msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:854 gui/options.cpp:856 gui/options.cpp:857 +#: 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 é suportado por algumas placas de som, FluidSynth e Timidity" -#: gui/options.cpp:856 +#: gui/options.cpp:858 msgctxt "lowres" msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Mixed AdLib/MIDI mode" msgstr "Mixar AdLib/MIDI" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Use both MIDI and AdLib sound generation" msgstr "Usar MIDI e AdLib juntos na geraēćo de som" -#: gui/options.cpp:865 +#: gui/options.cpp:867 msgid "MIDI gain:" msgstr "Ganho MIDI:" -#: gui/options.cpp:872 +#: gui/options.cpp:874 msgid "FluidSynth Settings" msgstr "" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "MT-32 Device:" msgstr "Dispositivo MT-32:" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output" msgstr "" "Especifique o dispositivo de som padrćo para a saķda Roland MT-32/LAPC1/" "CM32l/CM64" -#: gui/options.cpp:884 +#: gui/options.cpp:886 msgid "True Roland MT-32 (disable GM emulation)" msgstr "Roland MT-32 real (desligar emulaēćo GM)" -#: gui/options.cpp:884 gui/options.cpp:886 +#: gui/options.cpp:886 gui/options.cpp:888 msgid "" "Check if you want to use your real hardware Roland-compatible sound device " "connected to your computer" @@ -904,187 +906,199 @@ msgstr "" "Verifique se vocź quer usar o seu dispositivo de hardware de som compatķvel " "com Roland" -#: gui/options.cpp:886 +#: gui/options.cpp:888 msgctxt "lowres" msgid "True Roland MT-32 (no GM emulation)" msgstr "Roland MT-32 real (sem emulaēćo GM)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 #, fuzzy msgid "Roland GS Device (enable MT-32 mappings)" msgstr "Roland MT-32 real (desligar emulaēćo GM)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "" "Check if you want to enable patch mappings to emulate an MT-32 on a Roland " "GS device" msgstr "" -#: gui/options.cpp:898 +#: gui/options.cpp:900 msgid "Don't use Roland MT-32 music" msgstr "Nćo usar mśsica Roland MT-32" -#: gui/options.cpp:925 +#: gui/options.cpp:927 msgid "Text and Speech:" msgstr "Texto e Voz:" -#: gui/options.cpp:929 gui/options.cpp:939 +#: gui/options.cpp:931 gui/options.cpp:941 msgid "Speech" msgstr "Voz" -#: gui/options.cpp:930 gui/options.cpp:940 +#: gui/options.cpp:932 gui/options.cpp:942 msgid "Subtitles" msgstr "Legendas" -#: gui/options.cpp:931 +#: gui/options.cpp:933 msgid "Both" msgstr "Ambos" -#: gui/options.cpp:933 +#: gui/options.cpp:935 msgid "Subtitle speed:" msgstr "Rapidez legendas:" -#: gui/options.cpp:935 +#: gui/options.cpp:937 msgctxt "lowres" msgid "Text and Speech:" msgstr "Texto e Voz:" -#: gui/options.cpp:939 +#: gui/options.cpp:941 msgid "Spch" msgstr "Voz" -#: gui/options.cpp:940 +#: gui/options.cpp:942 msgid "Subs" msgstr "Legs" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgctxt "lowres" msgid "Both" msgstr "Ambos" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgid "Show subtitles and play speech" msgstr "Mostrar legenda e vozes (dublagem)" -#: gui/options.cpp:943 +#: gui/options.cpp:945 msgctxt "lowres" msgid "Subtitle speed:" msgstr "Velocidade das legendas:" -#: gui/options.cpp:959 +#: gui/options.cpp:961 msgid "Music volume:" msgstr "Volume da Mśsica:" -#: gui/options.cpp:961 +#: gui/options.cpp:963 msgctxt "lowres" msgid "Music volume:" msgstr "Volume da Mśsica:" -#: gui/options.cpp:968 +#: gui/options.cpp:970 msgid "Mute All" msgstr "Mudo" -#: gui/options.cpp:971 +#: gui/options.cpp:973 msgid "SFX volume:" msgstr "Volume dos Sons:" -#: gui/options.cpp:971 gui/options.cpp:973 gui/options.cpp:974 +#: gui/options.cpp:973 gui/options.cpp:975 gui/options.cpp:976 msgid "Special sound effects volume" msgstr "Volume dos efeitos sonoros especiais" -#: gui/options.cpp:973 +#: gui/options.cpp:975 msgctxt "lowres" msgid "SFX volume:" msgstr "Volume dos Sons:" -#: gui/options.cpp:981 +#: gui/options.cpp:983 msgid "Speech volume:" msgstr "Volume da Voz:" -#: gui/options.cpp:983 +#: gui/options.cpp:985 msgctxt "lowres" msgid "Speech volume:" msgstr "Volume da Voz:" -#: gui/options.cpp:1140 +#: gui/options.cpp:1142 msgid "Theme Path:" msgstr "Pasta do Tema" -#: gui/options.cpp:1142 +#: gui/options.cpp:1144 msgctxt "lowres" msgid "Theme Path:" msgstr "Pasta do Tema" -#: gui/options.cpp:1148 gui/options.cpp:1150 gui/options.cpp:1151 +#: gui/options.cpp:1150 gui/options.cpp:1152 gui/options.cpp:1153 msgid "Specifies path to additional data used by all games or ScummVM" msgstr "" "Especifica a pasta para os dados adicionais usados por todos os jogos ou " "ScummVM" -#: gui/options.cpp:1157 +#: gui/options.cpp:1159 msgid "Plugins Path:" msgstr "Pasta de Plugins:" -#: gui/options.cpp:1159 +#: gui/options.cpp:1161 msgctxt "lowres" msgid "Plugins Path:" msgstr "Pasta de Plugins:" -#: gui/options.cpp:1170 +#: gui/options.cpp:1172 msgctxt "lowres" msgid "Misc" msgstr "Outros" -#: gui/options.cpp:1172 +#: gui/options.cpp:1174 msgid "Theme:" msgstr "Tema:" -#: gui/options.cpp:1176 +#: gui/options.cpp:1178 msgid "GUI Renderer:" msgstr "Renderizador GUI:" -#: gui/options.cpp:1188 +#: gui/options.cpp:1190 msgid "Autosave:" msgstr "Auto-Salvar:" -#: gui/options.cpp:1190 +#: gui/options.cpp:1192 msgctxt "lowres" msgid "Autosave:" msgstr "Auto-Salvar:" -#: gui/options.cpp:1198 +#: gui/options.cpp:1200 msgid "Keys" msgstr "Teclas" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "GUI Language:" msgstr "Idioma do GUI:" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "Language of ScummVM GUI" msgstr "Linguagem do ScummVM GUI" -#: gui/options.cpp:1364 +#: gui/options.cpp:1235 +msgid "Update check:" +msgstr "" + +#: gui/options.cpp:1235 +msgid "How often to check ScummVM updates" +msgstr "" + +#: gui/options.cpp:1247 +msgid "Check now" +msgstr "" + +#: gui/options.cpp:1382 msgid "You have to restart ScummVM before your changes will take effect." msgstr "Vocź tem que reiniciar o ScummVM para funcionar." -#: gui/options.cpp:1384 +#: gui/options.cpp:1415 msgid "The chosen directory cannot be written to. Please select another one." msgstr "O diretório escolhido nćo pode ser usado. Por favor, selecione outro." -#: gui/options.cpp:1393 +#: gui/options.cpp:1424 msgid "Select directory for GUI themes" msgstr "Selecione a pasta para os temas da Interface de Uso Grįfico" -#: gui/options.cpp:1403 +#: gui/options.cpp:1434 msgid "Select directory for extra files" msgstr "Selecione a pasta para os arquivos extras" -#: gui/options.cpp:1414 +#: gui/options.cpp:1445 msgid "Select directory for plugins" msgstr "Selecione a pasta para os plugins" -#: gui/options.cpp:1467 +#: gui/options.cpp:1498 msgid "" "The theme you selected does not support your current language. If you want " "to use this theme you need to switch to another language first." @@ -1268,39 +1282,60 @@ msgstr "Renderizador Anti-Serrilhamento (16bpp)" msgid "Antialiased" msgstr "Anti-Serrilhamento (16bpp)" -#: gui/widget.cpp:323 gui/widget.cpp:325 gui/widget.cpp:331 gui/widget.cpp:333 +#: gui/updates-dialog.cpp:51 +msgid "" +"ScummVM now supports automatic check for updates\n" +"which requires access to the Internet.\n" +"\n" +"Would you like to enable this feature?" +msgstr "" + +#: gui/updates-dialog.cpp:55 +msgid "(You can always enable it in the options dialog on the Misc tab)" +msgstr "" + +#: gui/updates-dialog.cpp:92 +#, fuzzy +msgid "Check for updates automatically" +msgstr "Procurar por Atualizaēões..." + +#: gui/updates-dialog.cpp:111 +msgid "Proceed" +msgstr "" + +#: gui/widget.cpp:327 gui/widget.cpp:329 gui/widget.cpp:335 gui/widget.cpp:337 msgid "Clear value" msgstr "Limpar valor" -#: base/main.cpp:237 +#: base/main.cpp:240 #, c-format msgid "Engine does not support debug level '%s'" msgstr "Esse programa nćo suporta o nķvel de debug '%s'" -#: base/main.cpp:309 +#: base/main.cpp:312 msgid "Menu" msgstr "Menu" -#: base/main.cpp:312 backends/platform/symbian/src/SymbianActions.cpp:45 +#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:45 #: backends/platform/wince/CEActionsPocket.cpp:45 #: backends/platform/wince/CEActionsSmartphone.cpp:46 msgid "Skip" msgstr "Pular" -#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:50 +#: base/main.cpp:318 backends/platform/symbian/src/SymbianActions.cpp:50 #: backends/platform/wince/CEActionsPocket.cpp:42 msgid "Pause" msgstr "Pausar" -#: base/main.cpp:318 +#: base/main.cpp:321 msgid "Skip line" msgstr "Pula linha" -#: base/main.cpp:510 +#: base/main.cpp:520 msgid "Error running game:" msgstr "Erro ao executar o jogo:" -#: base/main.cpp:557 +#: base/main.cpp:567 msgid "Could not find any engine capable of running the selected game" msgstr "" "Nćo foi possķvel encontrar qualquer programa capaz de rodar o jogo " @@ -1397,17 +1432,34 @@ msgctxt "lowres" msgid "Hercules Amber" msgstr "Hercules Amber" -#: engines/advancedDetector.cpp:317 +#: common/updates.cpp:58 +msgid "Daily" +msgstr "" + +#: common/updates.cpp:60 +msgid "Weekly" +msgstr "" + +#: common/updates.cpp:62 +msgid "Monthly" +msgstr "" + +#: common/updates.cpp:64 +#, fuzzy +msgid "<Bad value>" +msgstr "Limpar valor" + +#: engines/advancedDetector.cpp:334 #, c-format msgid "The game in '%s' seems to be unknown." msgstr "O jogo em '% s' parece ser desconhecido." -#: engines/advancedDetector.cpp:318 +#: engines/advancedDetector.cpp:335 msgid "Please, report the following data to the ScummVM team along with name" msgstr "" "Por favor, informe os seguintes dados para a equipe ScummVM junto com o nome" -#: engines/advancedDetector.cpp:320 +#: engines/advancedDetector.cpp:337 msgid "of the game you tried to add and its version/language/etc.:" msgstr "do jogo que vocź tentou adicionar e sua versćo/idioma/etc.:" @@ -1415,11 +1467,11 @@ msgstr "do jogo que vocź tentou adicionar e sua versćo/idioma/etc.:" msgid "~R~esume" msgstr "~V~oltar ao jogo" -#: engines/dialogs.cpp:87 +#: engines/dialogs.cpp:87 engines/mohawk/dialogs.cpp:113 msgid "~L~oad" msgstr "~C~arregar" -#: engines/dialogs.cpp:91 +#: engines/dialogs.cpp:91 engines/mohawk/dialogs.cpp:114 msgid "~S~ave" msgstr "~S~alvar" @@ -1448,9 +1500,9 @@ msgstr "~V~oltar ao menu" #: engines/avalanche/parser.cpp:1899 engines/cge/events.cpp:74 #: engines/cge2/events.cpp:67 engines/cruise/menu.cpp:212 #: engines/drascula/saveload.cpp:336 engines/dreamweb/saveload.cpp:261 -#: engines/hugo/file.cpp:298 engines/neverhood/menumodule.cpp:877 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/hugo/file.cpp:298 engines/mohawk/dialogs.cpp:121 +#: engines/neverhood/menumodule.cpp:877 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save game:" @@ -1465,9 +1517,10 @@ msgstr "Salvar jogo:" #: engines/cge/events.cpp:74 engines/cge2/events.cpp:67 #: engines/cruise/menu.cpp:212 engines/drascula/saveload.cpp:336 #: engines/dreamweb/saveload.cpp:261 engines/hugo/file.cpp:298 -#: engines/neverhood/menumodule.cpp:877 engines/parallaction/saveload.cpp:212 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/scumm/dialogs.cpp:188 engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/mohawk/dialogs.cpp:121 engines/neverhood/menumodule.cpp:877 +#: engines/parallaction/saveload.cpp:212 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/scumm/dialogs.cpp:188 +#: engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save" @@ -1493,13 +1546,13 @@ msgstr "" "Por favor, consulte o README para obter informaēões bįsicas, e para obter " "instruēões sobre como obter assistźncia adicional." -#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:109 -#: engines/mohawk/dialogs.cpp:170 engines/tsage/dialogs.cpp:106 +#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:117 +#: engines/mohawk/dialogs.cpp:242 engines/tsage/dialogs.cpp:106 msgid "~O~K" msgstr "~O~K" -#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:110 -#: engines/mohawk/dialogs.cpp:171 engines/tsage/dialogs.cpp:107 +#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:118 +#: engines/mohawk/dialogs.cpp:243 engines/tsage/dialogs.cpp:107 msgid "~C~ancel" msgstr "~C~ancelar" @@ -1658,11 +1711,11 @@ msgstr "Emulador FM Towns" msgid "PC-98 Audio" msgstr "Įudio" -#: audio/softsynth/mt32.cpp:200 +#: audio/softsynth/mt32.cpp:196 msgid "Initializing MT-32 Emulator" msgstr "Inicializando Emulador MT-32" -#: audio/softsynth/mt32.cpp:426 +#: audio/softsynth/mt32.cpp:434 msgid "MT-32 Emulator" msgstr "Emulador MT-32" @@ -1781,12 +1834,12 @@ msgstr "" msgid "Swipe three fingers to the right to toggle." msgstr "" -#: backends/graphics/opengl/opengl-graphics.cpp:119 +#: backends/graphics/opengl/opengl-graphics.cpp:126 #, fuzzy msgid "OpenGL" msgstr "Abrir" -#: backends/graphics/opengl/opengl-graphics.cpp:120 +#: backends/graphics/opengl/opengl-graphics.cpp:127 msgid "OpenGL (No filtering)" msgstr "" @@ -2342,20 +2395,20 @@ msgstr "" "Nćo se esqueēa de mapear uma tecla para \"Ocultar a barra de ferramentas\" " "para ver todo o seu inventįrio" -#: backends/updates/macosx/macosx-updates.mm:67 +#: backends/updates/macosx/macosx-updates.mm:68 msgid "Check for Updates..." msgstr "Procurar por Atualizaēões..." #: engines/agi/detection.cpp:147 engines/cine/detection.cpp:70 #: engines/drascula/detection.cpp:302 engines/dreamweb/detection.cpp:47 -#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:404 +#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:410 #: engines/toltecs/detection.cpp:200 engines/zvision/detection_tables.h:51 msgid "Use original save/load screens" msgstr "" #: engines/agi/detection.cpp:148 engines/cine/detection.cpp:71 #: engines/drascula/detection.cpp:303 engines/dreamweb/detection.cpp:48 -#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:405 +#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:411 #: engines/toltecs/detection.cpp:201 msgid "Use the original save/load screens, instead of the ScummVM ones" msgstr "" @@ -2379,11 +2432,30 @@ msgid "" "Enables mouse support. Allows to use mouse for movement and in game menus." msgstr "" +#: engines/agi/detection.cpp:177 +#, fuzzy +msgid "Use Hercules hires font" +msgstr "Hercules Green" + +#: engines/agi/detection.cpp:178 +msgid "Uses Hercules hires font, when font file is available." +msgstr "" + +#: engines/agi/detection.cpp:187 +msgid "Pause when entering commands" +msgstr "" + +#: engines/agi/detection.cpp:188 +msgid "" +"Shows a command prompt window and pauses the game (like in SCI) instead of a " +"real-time prompt." +msgstr "" + #: engines/agi/saveload.cpp:777 engines/avalanche/parser.cpp:1887 #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore game:" @@ -2393,13 +2465,13 @@ msgstr "Restaurar jogo:" #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore" msgstr "Restaurar" -#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2377 +#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2374 #, c-format msgid "" "Failed to load game state from file:\n" @@ -2410,7 +2482,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2370 +#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2367 #, c-format msgid "" "Failed to save game state to file:\n" @@ -2421,7 +2493,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2388 +#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2385 #, c-format msgid "" "Successfully saved game state in file:\n" @@ -2672,29 +2744,39 @@ msgid "" "\n" msgstr "" +#: engines/mohawk/detection.cpp:168 +msgid "Play the Myst fly by movie" +msgstr "" + +#: engines/mohawk/detection.cpp:169 +msgid "The Myst fly by movie was not played by the original engine." +msgstr "" + #. I18N: Option for fast scene switching -#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:167 +#: engines/mohawk/dialogs.cpp:96 engines/mohawk/dialogs.cpp:239 msgid "~Z~ip Mode Activated" msgstr "Modo ~Z~ip ativado" -#: engines/mohawk/dialogs.cpp:93 +#: engines/mohawk/dialogs.cpp:97 msgid "~T~ransitions Enabled" msgstr "Modo ~T~ransiēões ativado" #. I18N: Drop book page -#: engines/mohawk/dialogs.cpp:95 +#: engines/mohawk/dialogs.cpp:99 msgid "~D~rop Page" msgstr "~S~oltar Pįgina" -#: engines/mohawk/dialogs.cpp:99 -msgid "~S~how Map" +#: engines/mohawk/dialogs.cpp:103 +#, fuzzy +msgid "Show ~M~ap" msgstr "~E~xibir Mapa" -#: engines/mohawk/dialogs.cpp:105 -msgid "~M~ain Menu" +#: engines/mohawk/dialogs.cpp:109 +#, fuzzy +msgid "Main Men~u~" msgstr "~M~enu Principal ScummVM" -#: engines/mohawk/dialogs.cpp:168 +#: engines/mohawk/dialogs.cpp:240 msgid "~W~ater Effect Enabled" msgstr "Modo ~E~feitos de įgua ativado" @@ -2819,68 +2901,76 @@ msgstr "" msgid "Use an alternative game intro (CD version only)" msgstr "" -#: engines/sci/detection.cpp:374 +#: engines/sci/detection.cpp:380 msgid "Skip EGA dithering pass (full color backgrounds)" msgstr "" -#: engines/sci/detection.cpp:375 +#: engines/sci/detection.cpp:381 msgid "Skip dithering pass in EGA games, graphics are shown with full colors" msgstr "" -#: engines/sci/detection.cpp:384 +#: engines/sci/detection.cpp:390 msgid "Enable high resolution graphics" msgstr "" -#: engines/sci/detection.cpp:385 +#: engines/sci/detection.cpp:391 msgid "Enable high resolution graphics/content" msgstr "" -#: engines/sci/detection.cpp:394 +#: engines/sci/detection.cpp:400 #, fuzzy msgid "Prefer digital sound effects" msgstr "Volume dos efeitos sonoros especiais" -#: engines/sci/detection.cpp:395 +#: engines/sci/detection.cpp:401 msgid "Prefer digital sound effects instead of synthesized ones" msgstr "" -#: engines/sci/detection.cpp:414 +#: engines/sci/detection.cpp:420 msgid "Use IMF/Yamaha FB-01 for MIDI output" msgstr "" -#: engines/sci/detection.cpp:415 +#: engines/sci/detection.cpp:421 msgid "" "Use an IBM Music Feature card or a Yamaha FB-01 FM synth module for MIDI " "output" msgstr "" -#: engines/sci/detection.cpp:425 +#: engines/sci/detection.cpp:431 msgid "Use CD audio" msgstr "" -#: engines/sci/detection.cpp:426 +#: engines/sci/detection.cpp:432 msgid "Use CD audio instead of in-game audio, if available" msgstr "" -#: engines/sci/detection.cpp:436 +#: engines/sci/detection.cpp:442 msgid "Use Windows cursors" msgstr "" -#: engines/sci/detection.cpp:437 +#: engines/sci/detection.cpp:443 msgid "" "Use the Windows cursors (smaller and monochrome) instead of the DOS ones" msgstr "" -#: engines/sci/detection.cpp:447 +#: engines/sci/detection.cpp:453 #, fuzzy msgid "Use silver cursors" msgstr "Cursor normal" -#: engines/sci/detection.cpp:448 +#: engines/sci/detection.cpp:454 msgid "" "Use the alternate set of silver cursors, instead of the normal golden ones" msgstr "" +#: engines/scumm/detection.cpp:1335 +msgid "Show Object Line" +msgstr "" + +#: engines/scumm/detection.cpp:1336 +msgid "Show the names of objects at the bottom of the screen" +msgstr "" + #: engines/scumm/dialogs.cpp:176 #, c-format msgid "Insert Disk %c and Press Button to Continue." @@ -3551,7 +3641,7 @@ msgstr "Volume da Mśsica:" msgid "Subtitle speed: " msgstr "Rapidez legendas:" -#: engines/scumm/scumm.cpp:1832 +#: engines/scumm/scumm.cpp:1829 #, c-format msgid "" "Native MIDI support requires the Roland Upgrade from LucasArts,\n" @@ -3561,7 +3651,7 @@ msgstr "" "LucasArts,\n" "mas %s estį faltando. Utilizando AdLib ao invés." -#: engines/scumm/scumm.cpp:2644 +#: engines/scumm/scumm.cpp:2645 #, fuzzy msgid "" "Usually, Maniac Mansion would start now. But for that to work, the game " @@ -3741,6 +3831,15 @@ msgstr "" msgid "Show labels for objects on mouse hover" msgstr "" +#: engines/sword25/detection.cpp:46 +msgid "Use English speech" +msgstr "" + +#: engines/sword25/detection.cpp:47 +msgid "" +"Use English speech instead of German for every language other than German" +msgstr "" + #: engines/teenagent/resources.cpp:95 msgid "" "You're missing the 'teenagent.dat' file. Get it from the ScummVM website" diff --git a/po/ru_RU.po b/po/ru_RU.po index ba91013bb5..514d094e64 100644 --- a/po/ru_RU.po +++ b/po/ru_RU.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ScummVM 1.8.0svn\n" "Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n" -"POT-Creation-Date: 2016-02-20 21:22+0000\n" +"POT-Creation-Date: 2016-04-07 08:55+0100\n" "PO-Revision-Date: 2016-02-21 23:32+0300\n" "Last-Translator: Eugene Sandulenko <sev@scummvm.org>\n" "Language-Team: Russian\n" @@ -56,10 +56,11 @@ msgstr "²ŅÕąå" #: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editrecorddialog.cpp:67 #: gui/filebrowser-dialog.cpp:64 gui/fluidsynth-dialog.cpp:152 #: gui/KeysDialog.cpp:43 gui/launcher.cpp:351 gui/massadd.cpp:95 -#: gui/options.cpp:1237 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 +#: gui/options.cpp:1255 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 #: gui/recorderdialog.cpp:156 gui/saveload-dialog.cpp:216 #: gui/saveload-dialog.cpp:276 gui/saveload-dialog.cpp:547 -#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 engines/engine.cpp:546 +#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 +#: gui/updates-dialog.cpp:113 engines/engine.cpp:546 #: backends/events/default/default-events.cpp:196 #: backends/events/default/default-events.cpp:218 #: backends/platform/wii/options.cpp:48 engines/drascula/saveload.cpp:49 @@ -173,7 +174,7 @@ msgstr "ĮŲŻćįŽŲŌŠ" msgid "Triangle" msgstr "ĀąÕćÓŽŪģŻŠļ" -#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1168 +#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1170 msgid "Misc" msgstr "ĄŠ×ŻŽÕ" @@ -207,12 +208,12 @@ msgstr "ĮŃąŽįŲāģ ŅįÕ ćįāŠŻŽŅŚŲ FluidSynth Ņ ׯŠēÕŻŲļ ߎ ćÜŽŪēŠŻŲī." #: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:352 #: gui/launcher.cpp:1050 gui/launcher.cpp:1054 gui/massadd.cpp:92 -#: gui/options.cpp:1238 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 +#: gui/options.cpp:1256 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 #: engines/engine.cpp:476 backends/platform/wii/options.cpp:47 #: backends/platform/wince/CELauncherDialog.cpp:54 #: engines/agos/animation.cpp:558 engines/drascula/saveload.cpp:49 #: engines/groovie/script.cpp:408 engines/parallaction/saveload.cpp:274 -#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1834 +#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1831 #: engines/scumm/players/player_v3m.cpp:130 #: engines/scumm/players/player_v5m.cpp:108 engines/sky/compact.cpp:131 #: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:524 @@ -242,15 +243,15 @@ msgstr "·ŠŚąėāģ" msgid "Mouse click" msgstr "ŗŪŲŚ Üėčģī" -#: gui/gui-manager.cpp:126 base/main.cpp:322 +#: gui/gui-manager.cpp:126 base/main.cpp:325 msgid "Display keyboard" msgstr "æŽŚŠ×Šāģ ŚŪŠŅŲŠāćąć" -#: gui/gui-manager.cpp:130 base/main.cpp:326 +#: gui/gui-manager.cpp:130 base/main.cpp:329 msgid "Remap keys" msgstr "æÕąÕŻŠ×ŻŠēŲāģ ŚŪŠŅŲčŲ" -#: gui/gui-manager.cpp:133 base/main.cpp:329 engines/scumm/help.cpp:87 +#: gui/gui-manager.cpp:133 base/main.cpp:332 engines/scumm/help.cpp:87 msgid "Toggle fullscreen" msgstr "æÕąÕŚŪīēÕŻŲÕ ŻŠ ŅÕįģ ķŚąŠŻ" @@ -325,8 +326,8 @@ msgid "" msgstr "" "Ļ×ėŚ ŲÓąė. ø×ÜÕŻÕŻŲÕ ķāŽŁ ŻŠįāąŽŁŚŲ ŻÕ ßąÕŅąŠāŲā ŲÓąć ŻŠ ŠŻÓŪŲŁįŚŽÜ Ņ ąćįįŚćī" -#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:87 -#: gui/options.cpp:735 gui/options.cpp:748 gui/options.cpp:1208 +#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:89 +#: gui/options.cpp:737 gui/options.cpp:750 gui/options.cpp:1210 #: audio/null.cpp:41 msgid "<default>" msgstr "<ߎ ćÜŽŪēŠŻŲī>" @@ -348,11 +349,11 @@ msgstr "æŪŠā䎹܊:" msgid "Engine" msgstr "“ŅŲÖŽŚ" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "Graphics" msgstr "³ąŠäŲŚŠ" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "GFX" msgstr "³ąä" @@ -365,7 +366,7 @@ msgctxt "lowres" msgid "Override global graphic settings" msgstr "æÕąÕŚąėāģ ÓŪŽŃŠŪģŻėÕ ćįāŠŻŽŅŚŲ ÓąŠäŲŚŲ" -#: gui/launcher.cpp:257 gui/options.cpp:1094 +#: gui/launcher.cpp:257 gui/options.cpp:1096 msgid "Audio" msgstr "°ćŌŲŽ" @@ -378,11 +379,11 @@ msgctxt "lowres" msgid "Override global audio settings" msgstr "æÕąÕŚąėāģ ÓŪŽŃŠŪģŻėÕ ćįāŠŻŽŅŚŲ ŠćŌŲŽ" -#: gui/launcher.cpp:271 gui/options.cpp:1099 +#: gui/launcher.cpp:271 gui/options.cpp:1101 msgid "Volume" msgstr "³ąŽÜŚŽįāģ" -#: gui/launcher.cpp:273 gui/options.cpp:1101 +#: gui/launcher.cpp:273 gui/options.cpp:1103 msgctxt "lowres" msgid "Volume" msgstr "³ąŽÜŚ" @@ -396,7 +397,7 @@ msgctxt "lowres" msgid "Override global volume settings" msgstr "æÕąÕŚąėāģ ÓŪŽŃŠŪģŻėÕ ćįāŠŻŽŅŚŲ ÓąŽÜŚŽįāŲ" -#: gui/launcher.cpp:286 gui/options.cpp:1109 +#: gui/launcher.cpp:286 gui/options.cpp:1111 msgid "MIDI" msgstr "MIDI" @@ -409,7 +410,7 @@ msgctxt "lowres" msgid "Override global MIDI settings" msgstr "æÕąÕŚąėāģ ÓŪŽŃŠŪģŻėÕ ćįāŠŻŽŅŚŲ MIDI" -#: gui/launcher.cpp:300 gui/options.cpp:1115 +#: gui/launcher.cpp:300 gui/options.cpp:1117 msgid "MT-32" msgstr "MT-32" @@ -422,11 +423,11 @@ msgctxt "lowres" msgid "Override global MT-32 settings" msgstr "æÕąÕŚąėāģ ÓŪŽŃŠŪģŻėÕ ćįāŠŻŽŅŚŲ MT-32" -#: gui/launcher.cpp:314 gui/options.cpp:1122 +#: gui/launcher.cpp:314 gui/options.cpp:1124 msgid "Paths" msgstr "æćāŲ" -#: gui/launcher.cpp:316 gui/options.cpp:1124 +#: gui/launcher.cpp:316 gui/options.cpp:1126 msgctxt "lowres" msgid "Paths" msgstr "æćāŲ" @@ -440,7 +441,7 @@ msgctxt "lowres" msgid "Game Path:" msgstr "³ŌÕ ŲÓąŠ:" -#: gui/launcher.cpp:330 gui/options.cpp:1148 +#: gui/launcher.cpp:330 gui/options.cpp:1150 msgid "Extra Path:" msgstr "“Žß. ßćāģ:" @@ -448,42 +449,42 @@ msgstr "“Žß. ßćāģ:" msgid "Specifies path to additional data used by the game" msgstr "ĆŚŠ×ėŅŠÕā ßćāģ Ś ŌŽßŽŪŻŲāÕŪģŻėÜ äŠŁŪŠÜ ŌŠŻŻėå ŌŪļ ŲÓąė" -#: gui/launcher.cpp:332 gui/options.cpp:1150 +#: gui/launcher.cpp:332 gui/options.cpp:1152 msgctxt "lowres" msgid "Extra Path:" msgstr "“Žß. ßćāģ:" -#: gui/launcher.cpp:339 gui/options.cpp:1132 +#: gui/launcher.cpp:339 gui/options.cpp:1134 msgid "Save Path:" msgstr "ĮŽåąŠŻÕŻŲļ ŲÓą:" #: gui/launcher.cpp:339 gui/launcher.cpp:341 gui/launcher.cpp:342 -#: gui/options.cpp:1132 gui/options.cpp:1134 gui/options.cpp:1135 +#: gui/options.cpp:1134 gui/options.cpp:1136 gui/options.cpp:1137 msgid "Specifies where your saved games are put" msgstr "ĆŚŠ×ėŅŠÕā ßćāģ Ś įŽåąŠŻÕŻŲļÜ ŲÓąė" -#: gui/launcher.cpp:341 gui/options.cpp:1134 +#: gui/launcher.cpp:341 gui/options.cpp:1136 msgctxt "lowres" msgid "Save Path:" msgstr "æćāģ įŽåą:" #: gui/launcher.cpp:360 gui/launcher.cpp:459 gui/launcher.cpp:517 -#: gui/launcher.cpp:571 gui/options.cpp:1143 gui/options.cpp:1151 -#: gui/options.cpp:1160 gui/options.cpp:1275 gui/options.cpp:1281 -#: gui/options.cpp:1289 gui/options.cpp:1319 gui/options.cpp:1325 -#: gui/options.cpp:1332 gui/options.cpp:1425 gui/options.cpp:1428 -#: gui/options.cpp:1440 +#: gui/launcher.cpp:571 gui/options.cpp:1145 gui/options.cpp:1153 +#: gui/options.cpp:1162 gui/options.cpp:1293 gui/options.cpp:1299 +#: gui/options.cpp:1307 gui/options.cpp:1337 gui/options.cpp:1343 +#: gui/options.cpp:1350 gui/options.cpp:1456 gui/options.cpp:1459 +#: gui/options.cpp:1471 msgctxt "path" msgid "None" msgstr "½Õ ׊ŌŠŻ" #: gui/launcher.cpp:365 gui/launcher.cpp:465 gui/launcher.cpp:575 -#: gui/options.cpp:1269 gui/options.cpp:1313 gui/options.cpp:1431 +#: gui/options.cpp:1287 gui/options.cpp:1331 gui/options.cpp:1462 #: backends/platform/wii/options.cpp:56 msgid "Default" msgstr "æŽ ćÜŽŪēŠŻŲī" -#: gui/launcher.cpp:510 gui/options.cpp:1434 +#: gui/launcher.cpp:510 gui/options.cpp:1465 msgid "Select SoundFont" msgstr "²ėŃÕąŲāÕ SoundFont" @@ -495,7 +496,7 @@ msgstr "²ėŃÕąŲāÕ ŌŲąÕŚāŽąŲī į 䊣ŪŠÜŲ ŲÓąė" msgid "Select additional game directory" msgstr "²ėŃÕąŲāÕ ŌŽßŽŪŻŲāÕŪģŻćī ŌŲąÕŚāŽąŲī ŲÓąė" -#: gui/launcher.cpp:559 gui/options.cpp:1377 +#: gui/launcher.cpp:559 gui/options.cpp:1408 msgid "Select directory for saved games" msgstr "²ėŃÕąŲāÕ ŌŲąÕŚāŽąŲī ŌŪļ įŽåąŠŻÕŻŲŁ" @@ -503,7 +504,7 @@ msgstr "²ėŃÕąŲāÕ ŌŲąÕŚāŽąŲī ŌŪļ įŽåąŠŻÕŻŲŁ" msgid "This game ID is already taken. Please choose another one." msgstr "ĶāŽā ID ŲÓąė ćÖÕ ŲįߎŪģ×ćÕāįļ. æŽÖŠŪćŁįāŠ, ŅėŃÕąŲāÕ ŌąćÓŽŁ." -#: gui/launcher.cpp:626 engines/dialogs.cpp:111 +#: gui/launcher.cpp:626 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:115 msgid "~Q~uit" msgstr "~²~ėåŽŌ" @@ -591,17 +592,18 @@ msgid "Search:" msgstr "æŽŲįŚ:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214 -#: engines/mohawk/riven.cpp:718 engines/pegasus/pegasus.cpp:353 -#: engines/tsage/scenes.cpp:600 +#: engines/mohawk/dialogs.cpp:120 engines/mohawk/riven.cpp:718 +#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:600 msgid "Load game:" msgstr "·ŠÓąć×Ųāģ ŲÓąć:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 #: backends/platform/wince/CEActionsPocket.cpp:267 #: backends/platform/wince/CEActionsSmartphone.cpp:231 -#: engines/cruise/menu.cpp:214 engines/mohawk/riven.cpp:718 -#: engines/parallaction/saveload.cpp:197 engines/pegasus/pegasus.cpp:353 -#: engines/scumm/dialogs.cpp:189 engines/tsage/scenes.cpp:600 +#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:120 +#: engines/mohawk/riven.cpp:718 engines/parallaction/saveload.cpp:197 +#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:189 +#: engines/tsage/scenes.cpp:600 msgid "Load" msgstr "·ŠÓąć×Ųāģ" @@ -688,133 +690,133 @@ msgstr "æÕąÕŚŪīēŲāģįļ Ņ ŲÓąć" msgid "Fast replay" msgstr "±ėįāąŽÕ ŅŽįßąŽŲ×ŅÕŌÕŻŲÕ" -#: gui/options.cpp:85 +#: gui/options.cpp:87 common/updates.cpp:56 msgid "Never" msgstr "½ŲŚŽÓŌŠ" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 5 mins" msgstr "ŚŠÖŌėÕ 5 ÜŲŻćā" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 10 mins" msgstr "ŚŠÖŌėÕ 10 ÜŲŻćā" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 15 mins" msgstr "ŚŠÖŌėÕ 15 ÜŲŻćā" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 30 mins" msgstr "ŚŠÖŌėÕ 30 ÜŲŻćā" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "8 kHz" msgstr "8 Ś³ę" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "11 kHz" msgstr "11 Ś³ę" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "22 kHz" msgstr "22 Ś³ę" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "44 kHz" msgstr "44 Ś³ę" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "48 kHz" msgstr "48 Ś³ę" -#: gui/options.cpp:255 gui/options.cpp:479 gui/options.cpp:580 -#: gui/options.cpp:649 gui/options.cpp:857 +#: gui/options.cpp:257 gui/options.cpp:481 gui/options.cpp:582 +#: gui/options.cpp:651 gui/options.cpp:859 msgctxt "soundfont" msgid "None" msgstr "½Õ ׊ŌŠŻ" -#: gui/options.cpp:389 +#: gui/options.cpp:391 msgid "Failed to apply some of the graphic options changes:" msgstr "½Õ ćŌŠŪŽįģ ßąŲÜÕŻŲāģ Ų×ÜÕŻÕŻŲļ ŻÕŚŽāŽąėå ÓąŠäŲēÕįŚŲå ŻŠįāąŽÕŚ:" -#: gui/options.cpp:401 +#: gui/options.cpp:403 msgid "the video mode could not be changed." msgstr "ŅŲŌÕŽąÕÖŲÜ ŻÕ ÜŽÖÕā Ńėāģ Ų×ÜÕŻńŻ." -#: gui/options.cpp:407 +#: gui/options.cpp:409 msgid "the fullscreen setting could not be changed" msgstr "ߎŪŻŽķŚąŠŻŻėŁ ąÕÖŲÜ ŻÕ ÜŽÖÕā Ńėāģ Ų×ÜÕŻńŻ" -#: gui/options.cpp:413 +#: gui/options.cpp:415 msgid "the aspect ratio setting could not be changed" msgstr "ąÕÖŲÜ ŚŽąąÕŚāŲąŽŅŚŲ įŽŽāŻŽčÕŻŲļ įāŽąŽŻ ŻÕ ÜŽÖÕā Ńėāģ Ų×ÜÕŻńŻ" -#: gui/options.cpp:732 +#: gui/options.cpp:734 msgid "Graphics mode:" msgstr "³ąŠä. ąÕÖŲÜ:" -#: gui/options.cpp:746 +#: gui/options.cpp:748 msgid "Render mode:" msgstr "ĄÕÖŲÜ ąŠįāąŠ:" -#: gui/options.cpp:746 gui/options.cpp:747 +#: gui/options.cpp:748 gui/options.cpp:749 msgid "Special dithering modes supported by some games" msgstr "ĮßÕęŲŠŪģŻėÕ ąÕÖŲÜė ąÕŻŌÕąŲŻÓŠ, ߎŌŌÕąÖŲŅŠÕÜėÕ ŻÕŚŽāŽąėÜŲ ŲÓąŠÜŲ" -#: gui/options.cpp:758 +#: gui/options.cpp:760 #: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2316 msgid "Fullscreen mode" msgstr "æŽŪŻŽķŚąŠŻŻėŁ ąÕÖŲÜ" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Aspect ratio correction" msgstr "ŗŽąąÕŚęŲļ įŽŽāŻŽčÕŻŲļ įāŽąŽŻ" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Correct aspect ratio for 320x200 games" msgstr "ŗŽąąÕŚāŲąŽŅŠāģ įŽŽāŻŽčÕŻŲÕ įāŽąŽŻ ŌŪļ ŲÓą į ąŠ×ąÕčÕŻŲÕÜ 320x200" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Preferred Device:" msgstr "æąÕŌߎēŲāŠÕÜŽÕ:" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Music Device:" msgstr "·Ņ挎ŅŽÕ ćįā-ŅŽ:" -#: gui/options.cpp:769 gui/options.cpp:771 +#: gui/options.cpp:771 gui/options.cpp:773 msgid "Specifies preferred sound device or sound card emulator" msgstr "" "ĆŚŠ×ėŅŠÕā ßąÕŌߎēŲāŠÕÜŽÕ ×Ņ挎ŅŽÕ ćįāąŽŁįāŅŽ ŲŪŲ ķÜćŪļāŽą ×Ņ挎ŅŽŁ ŚŠąāė" -#: gui/options.cpp:769 gui/options.cpp:771 gui/options.cpp:772 +#: gui/options.cpp:771 gui/options.cpp:773 gui/options.cpp:774 msgid "Specifies output sound device or sound card emulator" msgstr "ĆŚŠ×ėŅŠÕā ŅėåŽŌŻŽÕ ×Ņ挎ŅŽÕ ćįāąŽŁįāŅŽ ŲŪŲ ķÜćŪļāŽą ×Ņ挎ŅŽŁ ŚŠąāė" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Preferred Dev.:" msgstr "æąÕŌߎēŲāŠÕÜŽÕ:" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Music Device:" msgstr "·Ņ挎ŅŽÕ ćįā-ŅŽ:" -#: gui/options.cpp:798 +#: gui/options.cpp:800 msgid "AdLib emulator:" msgstr "ĶÜćŪļāŽą AdLib:" -#: gui/options.cpp:798 gui/options.cpp:799 +#: gui/options.cpp:800 gui/options.cpp:801 msgid "AdLib is used for music in many games" msgstr "·Ņ挎ŅŠļ ŚŠąāŠ AdLib ŲįߎŪģ×ćÕāįļ ÜŻŽÓŲÜŲ ŲÓąŠÜŲ" -#: gui/options.cpp:809 +#: gui/options.cpp:811 msgid "Output rate:" msgstr "ĒŠįāŽāŠ ×Ņ挊:" -#: gui/options.cpp:809 gui/options.cpp:810 +#: gui/options.cpp:811 gui/options.cpp:812 msgid "" "Higher value specifies better sound quality but may be not supported by your " "soundcard" @@ -822,68 +824,68 @@ msgstr "" "±¾ŪģčŲÕ ×ŻŠēÕŻŲļ ׊ŌŠīā ŪćēčÕÕ ŚŠēÕįāŅŽ ×Ņ挊, ŽŌŻŠŚŽ ŽŻŲ ÜŽÓćā ŻÕ " "ߎŌŌÕąÖŲŅŠāģįļ ŅŠčÕŁ ×Ņ挎ŅŽŁ ŚŠąāŽŁ" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "GM Device:" msgstr "ĆįāąŽŁįāŅŽ GM:" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "Specifies default sound device for General MIDI output" msgstr "ĆŚŠ×ėŅŠÕā ŅėåŽŌŻŽÕ ×Ņ挎ŅŽÕ ćįāąŽŁįāŅŽ ŌŪļ MIDI" -#: gui/options.cpp:831 +#: gui/options.cpp:833 msgid "Don't use General MIDI music" msgstr "½Õ ŲįߎŪģ׎ŅŠāģ Üć×ėŚć ŌŪļ General MIDI" -#: gui/options.cpp:842 gui/options.cpp:908 +#: gui/options.cpp:844 gui/options.cpp:910 msgid "Use first available device" msgstr "øįߎŪģ׎ŅŠāģ ßÕąŅŽÕ ŌŽįāć߯ŽÕ ćįāąŽŁįāŅŽ" -#: gui/options.cpp:854 +#: gui/options.cpp:856 msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:854 gui/options.cpp:856 gui/options.cpp:857 +#: 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" -#: gui/options.cpp:856 +#: gui/options.cpp:858 msgctxt "lowres" msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Mixed AdLib/MIDI mode" msgstr "ĮÜÕ芯ŻėŁ ąÕÖŲÜ AdLib/MIDI" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Use both MIDI and AdLib sound generation" msgstr "øįߎŪģ׎ŅŠāģ Ų MIDI, Ų AdLib ŌŪļ ÓÕŻÕąŠęŲŲ ×Ņ挊" -#: gui/options.cpp:865 +#: gui/options.cpp:867 msgid "MIDI gain:" msgstr "ĆįŲŪÕŻŲÕ MIDI:" -#: gui/options.cpp:872 +#: gui/options.cpp:874 msgid "FluidSynth Settings" msgstr "½ŠįāąŽŁŚŲ FluidSynth" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "MT-32 Device:" msgstr "Ćįāą. MT-32:" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output" msgstr "" "ĆŚŠ×ėŅŠÕā ×Ņ挎ŅŽÕ ćįāąŽŁįāŅŽ ߎ ćÜŽŪēŠŻŲī ŌŪļ ŅėŅŽŌŠ ŻŠ Roland MT-32/LAPC1/" "CM32l/CM64" -#: gui/options.cpp:884 +#: gui/options.cpp:886 msgid "True Roland MT-32 (disable GM emulation)" msgstr "½ŠįāŽļéŲŁ Roland MT-32 (׊߹ÕāŲāģ ķÜćŪļęŲī GM)" -#: gui/options.cpp:884 gui/options.cpp:886 +#: gui/options.cpp:886 gui/options.cpp:888 msgid "" "Check if you want to use your real hardware Roland-compatible sound device " "connected to your computer" @@ -891,16 +893,16 @@ msgstr "" "¾āÜÕāģāÕ, ÕįŪŲ ć ŅŠį ߎŌŚŪīēÕŻŽ Roland-įŽŅÜÕįāŲÜŽÕ ×Ņ挎ŅŽÕ ćįāąŽŁįāŅŽ Ų Ņė " "åŽāŲāÕ ÕÓŽ ŲįߎŪģ׎ŅŠāģ" -#: gui/options.cpp:886 +#: gui/options.cpp:888 msgctxt "lowres" msgid "True Roland MT-32 (no GM emulation)" msgstr "½ŠįāŽļéŲŁ Roland MT-32 (ŃÕ× ķÜćŪļęŲŲ GM)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "Roland GS Device (enable MT-32 mappings)" msgstr "ĆįāąŽŁįāŅŽ Roland GS (ąŠ×ąÕčŲāģ ÜŠßßŲŻÓ MT-32)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "" "Check if you want to enable patch mappings to emulate an MT-32 on a Roland " "GS device" @@ -908,171 +910,183 @@ msgstr "" "¾āÜÕāģāÕ, ÕįŪŲ åŽāŲāÕ ąŠ×ąÕčŲāģ ÜŠßßŲŻÓ ŌŪļ ķÜćŪļęŲŲ MT-32 ŻŠ ćįāąŽŁįāŅÕ " "Roland GS" -#: gui/options.cpp:898 +#: gui/options.cpp:900 msgid "Don't use Roland MT-32 music" msgstr "½Õ ŲįߎŪģ׎ŅŠāģ Üć×ėŚć ŌŪļ MT-32" -#: gui/options.cpp:925 +#: gui/options.cpp:927 msgid "Text and Speech:" msgstr "ĀÕŚįā Ų Ž×ŅćēŚŠ:" -#: gui/options.cpp:929 gui/options.cpp:939 +#: gui/options.cpp:931 gui/options.cpp:941 msgid "Speech" msgstr "¾×ŅćēŚŠ" -#: gui/options.cpp:930 gui/options.cpp:940 +#: gui/options.cpp:932 gui/options.cpp:942 msgid "Subtitles" msgstr "ĮćŃāŲāąė" -#: gui/options.cpp:931 +#: gui/options.cpp:933 msgid "Both" msgstr "¾ŃŠ" -#: gui/options.cpp:933 +#: gui/options.cpp:935 msgid "Subtitle speed:" msgstr "ĮŚŽąŽįāģ āŲāąŽŅ:" -#: gui/options.cpp:935 +#: gui/options.cpp:937 msgctxt "lowres" msgid "Text and Speech:" msgstr "ĀÕŚįā Ų Ž×ŅćēŚŠ:" -#: gui/options.cpp:939 +#: gui/options.cpp:941 msgid "Spch" msgstr "¾×Ņ" -#: gui/options.cpp:940 +#: gui/options.cpp:942 msgid "Subs" msgstr "ĮćŃ" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgctxt "lowres" msgid "Both" msgstr "¾ŃŠ" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgid "Show subtitles and play speech" msgstr "æŽŚŠ×ėŅŠāģ įćŃāŲāąė Ų ŅŽįßąŽŲ×ŅŽŌŲāģ ąÕēģ" -#: gui/options.cpp:943 +#: gui/options.cpp:945 msgctxt "lowres" msgid "Subtitle speed:" msgstr "ĮŚŽąŽįāģ āŲāąŽŅ:" -#: gui/options.cpp:959 +#: gui/options.cpp:961 msgid "Music volume:" msgstr "³ąŽÜŚ. Üć×ėŚŲ:" -#: gui/options.cpp:961 +#: gui/options.cpp:963 msgctxt "lowres" msgid "Music volume:" msgstr "³ąŽÜŚ. Üć×ėŚŲ:" -#: gui/options.cpp:968 +#: gui/options.cpp:970 msgid "Mute All" msgstr "²ėŚŪ. Ņįń" -#: gui/options.cpp:971 +#: gui/options.cpp:973 msgid "SFX volume:" msgstr "³ąŽÜŚŽįāģ SFX:" -#: gui/options.cpp:971 gui/options.cpp:973 gui/options.cpp:974 +#: gui/options.cpp:973 gui/options.cpp:975 gui/options.cpp:976 msgid "Special sound effects volume" msgstr "³ąŽÜŚŽįāģ įßÕęŲŠŪģŻėå ×Ņ挎Ņėå ķääÕŚāŽŅ" -#: gui/options.cpp:973 +#: gui/options.cpp:975 msgctxt "lowres" msgid "SFX volume:" msgstr "³ąŽÜŚ. SFX:" -#: gui/options.cpp:981 +#: gui/options.cpp:983 msgid "Speech volume:" msgstr "³ąŽÜŚ. Ž×ŅćēŚŲ:" -#: gui/options.cpp:983 +#: gui/options.cpp:985 msgctxt "lowres" msgid "Speech volume:" msgstr "³ąŽÜŚ. Ž×ŅćēŚŲ:" -#: gui/options.cpp:1140 +#: gui/options.cpp:1142 msgid "Theme Path:" msgstr "æćāģ Ś āÕÜŠÜ:" -#: gui/options.cpp:1142 +#: gui/options.cpp:1144 msgctxt "lowres" msgid "Theme Path:" msgstr "³ŌÕ āÕÜė:" -#: gui/options.cpp:1148 gui/options.cpp:1150 gui/options.cpp:1151 +#: gui/options.cpp:1150 gui/options.cpp:1152 gui/options.cpp:1153 msgid "Specifies path to additional data used by all games or ScummVM" msgstr "" "ĆŚŠ×ėŅŠÕā ßćāģ Ś ŌŽßŽŪŻŲāÕŪģŻėÜ äŠŁŪŠÜ ŌŠŻŻėå, ŲįߎŪģ×ćÕÜėå ŅįÕÜŲ ŲÓąŠÜŲ " "ŪŲŃŽ ScummVM" -#: gui/options.cpp:1157 +#: gui/options.cpp:1159 msgid "Plugins Path:" msgstr "æćāģ Ś ßŪŠÓŲŻŠÜ:" -#: gui/options.cpp:1159 +#: gui/options.cpp:1161 msgctxt "lowres" msgid "Plugins Path:" msgstr "æćāģ Ś ßŪŠÓŲŻŠÜ:" -#: gui/options.cpp:1170 +#: gui/options.cpp:1172 msgctxt "lowres" msgid "Misc" msgstr "ĄŠ×ŻŽÕ" -#: gui/options.cpp:1172 +#: gui/options.cpp:1174 msgid "Theme:" msgstr "ĀÕÜŠ:" -#: gui/options.cpp:1176 +#: gui/options.cpp:1178 msgid "GUI Renderer:" msgstr "ĄŲįŽŅŠŪŚŠ GUI:" -#: gui/options.cpp:1188 +#: gui/options.cpp:1190 msgid "Autosave:" msgstr "°ŅāŽįŽåąŠŻÕŻŲÕ:" -#: gui/options.cpp:1190 +#: gui/options.cpp:1192 msgctxt "lowres" msgid "Autosave:" msgstr "°ŅāŽįŽåą.:" -#: gui/options.cpp:1198 +#: gui/options.cpp:1200 msgid "Keys" msgstr "ŗŪŠŅŲčŲ" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "GUI Language:" msgstr "Ļ×ėŚ GUI:" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "Language of ScummVM GUI" msgstr "Ļ×ėŚ ÓąŠäŲēÕįŚŽÓŽ ŲŻāÕąäÕŁįŠ ScummVM" -#: gui/options.cpp:1364 +#: gui/options.cpp:1235 +msgid "Update check:" +msgstr "æąŽŅÕąļāģ ŽŃŻŽŅŪÕŻŲļ:" + +#: gui/options.cpp:1235 +msgid "How often to check ScummVM updates" +msgstr "ŗŠŚ ēŠįāŽ ßąŽŅÕąļāģ ŽŃŻŽŅŪÕŻŲļ ScummVM" + +#: gui/options.cpp:1247 +msgid "Check now" +msgstr "æąŽŅÕąŲāģ įÕŁēŠį" + +#: gui/options.cpp:1382 msgid "You have to restart ScummVM before your changes will take effect." msgstr "²ė ŌŽŪÖŻė ßÕąÕ׊ßćįāŲāģ ScummVM, ēāŽŃė ßąŲÜÕŻŲāģ Ų×ÜÕŻÕŻŲļ." -#: gui/options.cpp:1384 +#: gui/options.cpp:1415 msgid "The chosen directory cannot be written to. Please select another one." msgstr "½Õ ÜŽÓć ßŲįŠāģ Ņ ŅėŃąŠŻŻćī ŌŲąÕŚāŽąŲī. æŽÖŠŪćŁįāŠ, 挊ÖŲāÕ ŌąćÓćī." -#: gui/options.cpp:1393 +#: gui/options.cpp:1424 msgid "Select directory for GUI themes" msgstr "²ėŃÕąŲāÕ ŌŲąÕŚāŽąŲī ŌŪļ āÕÜ GUI" -#: gui/options.cpp:1403 +#: gui/options.cpp:1434 msgid "Select directory for extra files" msgstr "²ėŃÕąŲāÕ ŌŲąÕŚāŽąŲī į ŌŽßŽŪŻŲāÕŪģŻėÜŲ 䊣ŪŠÜŲ" -#: gui/options.cpp:1414 +#: gui/options.cpp:1445 msgid "Select directory for plugins" msgstr "²ėŃÕąŲāÕ ŌŲąÕŚāŽąŲī į ßŪŠÓŲŻŠÜŲ" -#: gui/options.cpp:1467 +#: gui/options.cpp:1498 msgid "" "The theme you selected does not support your current language. If you want " "to use this theme you need to switch to another language first." @@ -1245,39 +1259,63 @@ msgstr "ĄŠįāÕąŲ׊āŽą įŽ įÓŪŠÖŲŅŠŻŲÕÜ" msgid "Antialiased" msgstr "ĮŽ įÓŪŠÖŲŅŠŻŲÕÜ" -#: gui/widget.cpp:323 gui/widget.cpp:325 gui/widget.cpp:331 gui/widget.cpp:333 +#: gui/updates-dialog.cpp:51 +msgid "" +"ScummVM now supports automatic check for updates\n" +"which requires access to the Internet.\n" +"\n" +"Would you like to enable this feature?" +msgstr "" +"ScummVM įāŠŪ ߎŌŌÕąÖŲŅŠāģ ŠŅāŽÜŠāŲēÕįŚćī ßąŽŅÕąŚć\n" +"ŽŃŻŽŅŪÕŻŲŁ, ŚŽāŽąŠļ āąÕŃćÕā ŌŽįāćߊ Ņ øŻāÕąŻÕā\n" +"\n" +"ÅŽāÕŪŲ Ńė Ņė ŅŚŪīēŲāģ ķāć ŽßęŲī?" + +#: gui/updates-dialog.cpp:55 +msgid "(You can always enable it in the options dialog on the Misc tab)" +msgstr "(²ė ÜŽÖÕāÕ ŅįÕÓŌŠ Õń ŅŚŪīēėāģ Ņ ¾ßęŲļå ŻŠ ׊ŚŪŠŌŚć “ąćÓŽÕ)" + +#: gui/updates-dialog.cpp:92 +msgid "Check for updates automatically" +msgstr "°ŅāŽÜŠāŲēÕįŚŲ ßąŽŅÕąŲāģ ŽŃŻŽŅŪÕŻŲļ" + +#: gui/updates-dialog.cpp:111 +msgid "Proceed" +msgstr "æąŽŌŽŪÖŲāģ" + +#: gui/widget.cpp:327 gui/widget.cpp:329 gui/widget.cpp:335 gui/widget.cpp:337 msgid "Clear value" msgstr "¾ēŲįāŲāģ ׯŠēÕŻŲÕ" -#: base/main.cpp:237 +#: base/main.cpp:240 #, c-format msgid "Engine does not support debug level '%s'" msgstr "“ŅŲÖŽŚ ŻÕ ߎŌŌÕąÖŲŅŠÕā 湎ŅÕŻģ ŽāŪŠŌŚŲ '%s'" -#: base/main.cpp:309 +#: base/main.cpp:312 msgid "Menu" msgstr "¼ÕŻī" -#: base/main.cpp:312 backends/platform/symbian/src/SymbianActions.cpp:45 +#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:45 #: backends/platform/wince/CEActionsPocket.cpp:45 #: backends/platform/wince/CEActionsSmartphone.cpp:46 msgid "Skip" msgstr "æąŽßćįāŲāģ" -#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:50 +#: base/main.cpp:318 backends/platform/symbian/src/SymbianActions.cpp:50 #: backends/platform/wince/CEActionsPocket.cpp:42 msgid "Pause" msgstr "æŠć׊" -#: base/main.cpp:318 +#: base/main.cpp:321 msgid "Skip line" msgstr "æąŽßćįāŲāģ įāąŽŚć" -#: base/main.cpp:510 +#: base/main.cpp:520 msgid "Error running game:" msgstr "¾čŲŃŚŠ ׊ßćįŚŠ ŲÓąė:" -#: base/main.cpp:557 +#: base/main.cpp:567 msgid "Could not find any engine capable of running the selected game" msgstr "½Õ ÜŽÓć ŻŠŁāŲ ŌŅŲÖŽŚ ŌŪļ ׊ßćįŚŠ ŅėŃąŠŻŻŽŁ ŲÓąė" @@ -1372,17 +1410,33 @@ msgctxt "lowres" msgid "Hercules Amber" msgstr "Hercules ĻŻāŠąŻėŁ" -#: engines/advancedDetector.cpp:317 +#: common/updates.cpp:58 +msgid "Daily" +msgstr "µÖÕŌŻÕŅŻŽ" + +#: common/updates.cpp:60 +msgid "Weekly" +msgstr "µÖÕŻÕŌÕŪģŻŽ" + +#: common/updates.cpp:62 +msgid "Monthly" +msgstr "µÖÕÜÕįļēŻŽ" + +#: common/updates.cpp:64 +msgid "<Bad value>" +msgstr "<½ÕßąŠŅŲŪģŻŽÕ ׯŠēÕŻŲÕ>" + +#: engines/advancedDetector.cpp:334 #, c-format msgid "The game in '%s' seems to be unknown." msgstr "ŗŠÖÕāįļ, ēāŽ ŲÓąŠ '%s' Õéń ŻÕŲ×ŅÕįāŻŠ." -#: engines/advancedDetector.cpp:318 +#: engines/advancedDetector.cpp:335 msgid "Please, report the following data to the ScummVM team along with name" msgstr "" "æŽÖŠŪćŁįāŠ, ßÕąÕŌŠŁāÕ įŪÕŌćīéŲÕ ŌŠŻŻėÕ ŚŽÜŠŻŌÕ ScummVM ŅÜÕįāÕ į ŻŠ×ŅŠŻŲÕÜ" -#: engines/advancedDetector.cpp:320 +#: engines/advancedDetector.cpp:337 msgid "of the game you tried to add and its version/language/etc.:" msgstr "ŲÓąė, ŚŽāŽąćī Ņė ßėāŠÕāÕįģ ŌŽŃŠŅŲāģ, Ų 挊ÖŲāÕ Õń ŅÕąįŲī, ļ×ėŚ Ų ā.Ō." @@ -1390,11 +1444,11 @@ msgstr "ŲÓąė, ŚŽāŽąćī Ņė ßėāŠÕāÕįģ ŌŽŃŠŅŲāģ, Ų 挊ÖŲāÕ Õń ŅÕąįŲī, ļ×ėŚ Ų ā.Ō." msgid "~R~esume" msgstr "æąŽŌŽŪ~Ö~Ųāģ" -#: engines/dialogs.cpp:87 +#: engines/dialogs.cpp:87 engines/mohawk/dialogs.cpp:113 msgid "~L~oad" msgstr "~·~ŠÓąć×Ųāģ" -#: engines/dialogs.cpp:91 +#: engines/dialogs.cpp:91 engines/mohawk/dialogs.cpp:114 msgid "~S~ave" msgstr "~·~ŠßŲįŠāģ" @@ -1423,9 +1477,9 @@ msgstr "~²~ ÓŪŠŅŻŽÕ ÜÕŻī" #: engines/avalanche/parser.cpp:1899 engines/cge/events.cpp:74 #: engines/cge2/events.cpp:67 engines/cruise/menu.cpp:212 #: engines/drascula/saveload.cpp:336 engines/dreamweb/saveload.cpp:261 -#: engines/hugo/file.cpp:298 engines/neverhood/menumodule.cpp:877 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/hugo/file.cpp:298 engines/mohawk/dialogs.cpp:121 +#: engines/neverhood/menumodule.cpp:877 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save game:" @@ -1440,9 +1494,10 @@ msgstr "ĮŽåąŠŻŲāģ ŲÓąć:" #: engines/cge/events.cpp:74 engines/cge2/events.cpp:67 #: engines/cruise/menu.cpp:212 engines/drascula/saveload.cpp:336 #: engines/dreamweb/saveload.cpp:261 engines/hugo/file.cpp:298 -#: engines/neverhood/menumodule.cpp:877 engines/parallaction/saveload.cpp:212 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/scumm/dialogs.cpp:188 engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/mohawk/dialogs.cpp:121 engines/neverhood/menumodule.cpp:877 +#: engines/parallaction/saveload.cpp:212 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/scumm/dialogs.cpp:188 +#: engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save" @@ -1468,13 +1523,13 @@ msgstr "" "ъ׎ŅŽŁ ŲŻäŽąÜŠęŲÕŁ, Š āŠŚÖÕ ŲŻįāąćŚęŲļÜŲ Ž āŽÜ, ŚŠŚ ߎŪćēŲāģ ŌŠŪģŻÕŁčćī " "ߎ܎éģ." -#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:109 -#: engines/mohawk/dialogs.cpp:170 engines/tsage/dialogs.cpp:106 +#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:117 +#: engines/mohawk/dialogs.cpp:242 engines/tsage/dialogs.cpp:106 msgid "~O~K" msgstr "~O~K" -#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:110 -#: engines/mohawk/dialogs.cpp:171 engines/tsage/dialogs.cpp:107 +#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:118 +#: engines/mohawk/dialogs.cpp:243 engines/tsage/dialogs.cpp:107 msgid "~C~ancel" msgstr "¾~ā~ÜÕŻŠ" @@ -1632,11 +1687,11 @@ msgstr "°ćŌŲŽ FM-Towns" msgid "PC-98 Audio" msgstr "°ćŌŲŽ PC-98" -#: audio/softsynth/mt32.cpp:200 +#: audio/softsynth/mt32.cpp:196 msgid "Initializing MT-32 Emulator" msgstr "½ŠįāąŠŲŅŠī ķÜćŪļāŽą MT-32" -#: audio/softsynth/mt32.cpp:426 +#: audio/softsynth/mt32.cpp:434 msgid "MT-32 Emulator" msgstr "ĶÜćŪļāŽą MT-32" @@ -1753,11 +1808,11 @@ msgstr "ĄÕÖŲÜ ŠŅāŽŌąķÓŠ įÕŁēŠį" msgid "Swipe three fingers to the right to toggle." msgstr "æąŽŅÕŌŲāÕ āąÕÜļ ߊŪģęŠÜŲ ŻŠßąŠŅŽ ŌŪļ ßÕąÕŚŪīēÕŻŲļ." -#: backends/graphics/opengl/opengl-graphics.cpp:119 +#: backends/graphics/opengl/opengl-graphics.cpp:126 msgid "OpenGL" msgstr "OpenGL" -#: backends/graphics/opengl/opengl-graphics.cpp:120 +#: backends/graphics/opengl/opengl-graphics.cpp:127 msgid "OpenGL (No filtering)" msgstr "OpenGL (ŃÕ× äŲŪģāąŽŅ)" @@ -2307,20 +2362,20 @@ msgstr "" "½Õ ׊ŃćŌģāÕ ŻŠ×ŻŠēŲāģ ŚŪŠŅŲčć ŌŪļ ŌÕŁįāŅŲļ 'Hide Toolbar', ēāŽŃė ćŅŲŌÕāģ " "ŅÕįģ ŲŻŅÕŻāŠąģ Ņ ŲÓąÕ" -#: backends/updates/macosx/macosx-updates.mm:67 +#: backends/updates/macosx/macosx-updates.mm:68 msgid "Check for Updates..." -msgstr "æąŽŅÕąļī ŽŃŻŽŅŪÕŻŲļ..." +msgstr "æąŽŅÕąŲāģ ŽŃŻŽŅŪÕŻŲļ..." #: engines/agi/detection.cpp:147 engines/cine/detection.cpp:70 #: engines/drascula/detection.cpp:302 engines/dreamweb/detection.cpp:47 -#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:404 +#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:410 #: engines/toltecs/detection.cpp:200 engines/zvision/detection_tables.h:51 msgid "Use original save/load screens" msgstr "øįߎŪģ׎ŅŠāģ ŽąŲÓŲŻŠŪģŻėÕ ķŚąŠŻė ׊ßŲįŲ/ēāÕŻŲļ ŲÓąė" #: engines/agi/detection.cpp:148 engines/cine/detection.cpp:71 #: engines/drascula/detection.cpp:303 engines/dreamweb/detection.cpp:48 -#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:405 +#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:411 #: engines/toltecs/detection.cpp:201 msgid "Use the original save/load screens, instead of the ScummVM ones" msgstr "" @@ -2350,11 +2405,32 @@ msgstr "" "²ŚŪīēŠÕā ߎŌŌÕąÖŚć ÜėčŲ. æŽ×ŅŽŪļÕā ŲįߎŪģ׎ŅŠāģ Üėčģ ŌŪļ ßÕąÕÜÕéÕŻŲļ Ų Ņ " "ÜÕŻī ŲÓąė." +#: engines/agi/detection.cpp:177 +msgid "Use Hercules hires font" +msgstr "øįߎŪģ׎ŅŠāģ čąŲäā Hercules" + +#: engines/agi/detection.cpp:178 +msgid "Uses Hercules hires font, when font file is available." +msgstr "" +"øįߎŪģ×ćÕā čąŲäā ŅėįŽŚŽÓŽ ąŠ×ąÕčÕŻŲļ Hercules, ÕįŪŲ ŌŽįāćßÕŻ 䊣Ū įŽ čąŲäāŽÜ." + +#: engines/agi/detection.cpp:187 +msgid "Pause when entering commands" +msgstr "æŠć׊ ŅŽ ŅąÕÜļ ŅŅŽŌŠ ŚŽÜŠŻŌ" + +#: engines/agi/detection.cpp:188 +msgid "" +"Shows a command prompt window and pauses the game (like in SCI) instead of a " +"real-time prompt." +msgstr "" +"æŽŚŠ×ėŅŠÕā ŽŚŻŽ įŽ įāąŽŚŽŁ ŅŅŽŌŠ ŚŽÜŠŻŌė Ų įāŠŅŲā ŲÓąć ŻŠ ߊć×ć (ŚŠŚ Ņ SCI) " +"ŅÜÕįāŽŅŅŽŌŠ Ņ ąÕŠŪģŻŽÜ ŅąÕÜÕŻŲ." + #: engines/agi/saveload.cpp:777 engines/avalanche/parser.cpp:1887 #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore game:" @@ -2364,13 +2440,13 @@ msgstr "²ŽįįāŠŻŽŅŲāģ ŲÓąć:" #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore" msgstr "²ŽįįāŠŻŽŅŲāģ" -#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2377 +#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2374 #, c-format msgid "" "Failed to load game state from file:\n" @@ -2381,7 +2457,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2370 +#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2367 #, c-format msgid "" "Failed to save game state to file:\n" @@ -2392,7 +2468,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2388 +#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2385 #, c-format msgid "" "Successfully saved game state in file:\n" @@ -2639,29 +2715,37 @@ msgstr "" "ŽāŚąėāģ ŽāŪŠŌŽēŻćī ŚŽŻįŽŪģ ScummVM Ų ŅŅÕįāŲ ŚŽÜŠŻŌć 'import_savefile'.\n" "\n" +#: engines/mohawk/detection.cpp:168 +msgid "Play the Myst fly by movie" +msgstr "æąŽŲÓąėŅŠāģ ąŽŪŲŚ ßąŽŪńāŠ ŻŠŌ Myst" + +#: engines/mohawk/detection.cpp:169 +msgid "The Myst fly by movie was not played by the original engine." +msgstr "ĄŽŪŲŚ ßąŽŪńāŠ ŻŠŌ Myst ŻÕ ßąŽŲÓąėŅŠŪįļ ŽąŲÓŲŻŠŪģŻėÜ ŌŅŲÖŚŽÜ." + #. I18N: Option for fast scene switching -#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:167 +#: engines/mohawk/dialogs.cpp:96 engines/mohawk/dialogs.cpp:239 msgid "~Z~ip Mode Activated" msgstr "~Ą~ÕÖŲÜ ŃėįāąŽÓŽ ßÕąÕåŽŌŠ ŠŚāŲŅŲąŽŅŠŻ" -#: engines/mohawk/dialogs.cpp:93 +#: engines/mohawk/dialogs.cpp:97 msgid "~T~ransitions Enabled" msgstr "~æ~ÕąÕåŽŌė ŠŚāŲŅŲąŽŅŠŻė" #. I18N: Drop book page -#: engines/mohawk/dialogs.cpp:95 +#: engines/mohawk/dialogs.cpp:99 msgid "~D~rop Page" msgstr "~²~ėŃąŽįŲāģ įāąŠŻŲęć" -#: engines/mohawk/dialogs.cpp:99 -msgid "~S~how Map" +#: engines/mohawk/dialogs.cpp:103 +msgid "Show ~M~ap" msgstr "æ~Ž~ŚŠ×Šāģ ŚŠąāć" -#: engines/mohawk/dialogs.cpp:105 -msgid "~M~ain Menu" +#: engines/mohawk/dialogs.cpp:109 +msgid "Main Men~u~" msgstr "~³~ŪŠŅŻŽÕ ÜÕŻī" -#: engines/mohawk/dialogs.cpp:168 +#: engines/mohawk/dialogs.cpp:240 msgid "~W~ater Effect Enabled" msgstr "~Ķ~ääÕŚāė ŅŽŌė ŅŚŪīēÕŻė" @@ -2783,38 +2867,38 @@ msgstr "°ŪģāÕąŻŠāŲŅŻŽÕ ŅįāćßŪÕŻŲÕ" msgid "Use an alternative game intro (CD version only)" msgstr "øįߎŪģ׎ŅŠāģ ŠŪģāÕąŻŠāŲŅŻŽÕ ŅįāćßŪÕŻŲÕ (āŽŪģŚŽ ŌŪļ CD-ŅÕąįŲŲ ŲÓąė)" -#: engines/sci/detection.cpp:374 +#: engines/sci/detection.cpp:380 msgid "Skip EGA dithering pass (full color backgrounds)" msgstr "½Õ ŌÕŪŠāģ ŠßßąŽŚįŲÜŠęŲī ęŅÕāŽŅ EGA (ߎŪŻŽęŅÕāŻėÕ äŽŻė)" -#: engines/sci/detection.cpp:375 +#: engines/sci/detection.cpp:381 msgid "Skip dithering pass in EGA games, graphics are shown with full colors" msgstr "" "æąŽßćįŚŠÕā ßąŽåŽŌ ŠßßąŽŚįŲÜŠęŲŲ ęŅÕāŽŅ EGA, ÓąŠäŲŚŠ ŃćŌÕā ߎŚŠ×ŠŻŠ įŽ ŅįÕÜŲ " "ęŅÕāŠÜŲ" -#: engines/sci/detection.cpp:384 +#: engines/sci/detection.cpp:390 msgid "Enable high resolution graphics" msgstr "²ŚŪīēŲāģ ŽāŽŃąŠÖÕŻŲÕ ÓąŠäŲŚŲ ŅėįŽŚŽÓŽ ąŠ×ąÕčÕŻŲļ" -#: engines/sci/detection.cpp:385 +#: engines/sci/detection.cpp:391 msgid "Enable high resolution graphics/content" msgstr "²ŚŪīēŲāģ ÓąŠäŲŚć Ų ŚŽŻāÕŻā ŅėįŽŚŽÓŽ ąŠąÕčÕŻŲļ" -#: engines/sci/detection.cpp:394 +#: engines/sci/detection.cpp:400 msgid "Prefer digital sound effects" msgstr "æąÕŌߎēŲāŠāģ ęŲ乎ŅėÕ ×Ņ挎ŅėÕ ķääÕŚāė" -#: engines/sci/detection.cpp:395 +#: engines/sci/detection.cpp:401 msgid "Prefer digital sound effects instead of synthesized ones" msgstr "" "¾āŌŠŅŠāģ ßąÕŌߎēāÕŻŲÕ ęŲ乎ŅėÜ ×Ņ挎ŅėÜ ķääÕŚāŠÜ ŅÜÕįāŽ įŲŻāÕ×ŲąŽŅŠŻŻėå" -#: engines/sci/detection.cpp:414 +#: engines/sci/detection.cpp:420 msgid "Use IMF/Yamaha FB-01 for MIDI output" msgstr "øįߎŪģ׎ŅŠāģ IMF/Yamaha FB-01 ŌŪļ ŅėŅŽŌŠ MIDI" -#: engines/sci/detection.cpp:415 +#: engines/sci/detection.cpp:421 msgid "" "Use an IBM Music Feature card or a Yamaha FB-01 FM synth module for MIDI " "output" @@ -2822,37 +2906,45 @@ msgstr "" "øįߎŪģ׎ŅŠāģ ×Ņ挎Ņćī ŚŠąāć IBM Music Feature ŲŪŲ ÜŽŌćŪģ įŲŻāÕ׊ Yamaha " "FB-01 FM ŌŪļ MIDI" -#: engines/sci/detection.cpp:425 +#: engines/sci/detection.cpp:431 msgid "Use CD audio" msgstr "øįߎŪģ׎ŅŠāģ CD-ŠćŌŲŽ" -#: engines/sci/detection.cpp:426 +#: engines/sci/detection.cpp:432 msgid "Use CD audio instead of in-game audio, if available" msgstr "" "øįߎŪģ׎ŅŠāģ ×Ņ挎ŅėÕ ŌŽąŽÖŚŲ į CD ŅÜÕįāŽ Üć×ėŚŲ Ų× äŠŁŪŽŅ ŲÓąė (ÕįŪŲ " "ŌŽįāć߯Ž)" -#: engines/sci/detection.cpp:436 +#: engines/sci/detection.cpp:442 msgid "Use Windows cursors" msgstr "øįߎŪģ׎ŅŠāģ ŚćąįŽąė Windows" -#: engines/sci/detection.cpp:437 +#: engines/sci/detection.cpp:443 msgid "" "Use the Windows cursors (smaller and monochrome) instead of the DOS ones" msgstr "" "øįߎŪģ׎ŅŠāģ ŚćąįŽąė Windows (ÜÕŻģčŲÕ ßŽ ąŠ×ÜÕąć Ų ŽŌŻŽęŅÕāŻėÕ) ŅÜÕįāŽ " "ŚćąįŽąŽŅ DOS" -#: engines/sci/detection.cpp:447 +#: engines/sci/detection.cpp:453 msgid "Use silver cursors" msgstr "øįߎŪģ׎ŅŠāģ įÕąÕŃąļŻėÕ ŚćąįŽąė" -#: engines/sci/detection.cpp:448 +#: engines/sci/detection.cpp:454 msgid "" "Use the alternate set of silver cursors, instead of the normal golden ones" msgstr "" "øįߎŪģ׎ŅŠāģ ŠŪģāÕąŻŠāŲŅŻėŁ ŻŠŃŽą įÕąÕŃąļŻėå ŚćąįŽąŽŅ ŅÜÕįāŽ ŽŃėēŻėå ׎ŪŽāėå" +#: engines/scumm/detection.cpp:1335 +msgid "Show Object Line" +msgstr "æŽŚŠ×ėŅŠāģ ŪŲŻŲŲ ŽŃźÕŚāŽŅ" + +#: engines/scumm/detection.cpp:1336 +msgid "Show the names of objects at the bottom of the screen" +msgstr "æŽŚŠ×ėŅŠāģ ŻŠ×ŅŠŻŲļ ŽŃźÕŚāŽŅ ŅŻŲ×ć ķŚąŠŻŠ" + #: engines/scumm/dialogs.cpp:176 #, c-format msgid "Insert Disk %c and Press Button to Continue." @@ -3518,7 +3610,7 @@ msgstr "³ąŽÜŚ. Üć×ėŚŲ: " msgid "Subtitle speed: " msgstr "ĮŚŽąŽįāģ āŲāąŽŅ: " -#: engines/scumm/scumm.cpp:1832 +#: engines/scumm/scumm.cpp:1829 #, c-format msgid "" "Native MIDI support requires the Roland Upgrade from LucasArts,\n" @@ -3527,7 +3619,7 @@ msgstr "" "ĄÕÖŲÜ \"ąŽŌŻŽÓŽ\" MIDI āąÕŃćÕā ŽŃŻŽŅŪÕŻŲÕ Roland Upgrade Žā\n" "LucasArts, ŻŽ ŻÕ åŅŠāŠÕā %s. æÕąÕŚŪīēŠīįģ ŻŠ AdLib." -#: engines/scumm/scumm.cpp:2644 +#: engines/scumm/scumm.cpp:2645 msgid "" "Usually, Maniac Mansion would start now. But for that to work, the game " "files for Maniac Mansion have to be in the 'Maniac' directory inside the " @@ -3708,6 +3800,17 @@ msgstr "æŽŚŠ×ėŅŠāģ ŻŠ×ŅŠŻŲļ ŽŃźÕŚāŽŅ" msgid "Show labels for objects on mouse hover" msgstr "æŽŚŠ×ėŅŠÕā ŻŠ×ŅŠŻŲļ ŽŃźÕŚāŽŅ ßąŲ ŻŠŅÕŌÕŻŲŲ ŚćąįŽąŠ ÜėčŲ" +#: engines/sword25/detection.cpp:46 +msgid "Use English speech" +msgstr "øįߎŪģ׎ŅŠāģ ŠŻÓŪŲŁįŚćī Ž×ŅćēŚć" + +#: engines/sword25/detection.cpp:47 +msgid "" +"Use English speech instead of German for every language other than German" +msgstr "" +"øįߎŪģ׎ŅŠāģ ŠŻÓŪŲŁįŚćī Ž×ŅćēŚć ŅÜÕįāŽ ŻÕÜÕꌎŁ ŌŪļ ŅįÕå ļ×ėŚŽŅ ŚąŽÜÕ " +"ŻÕÜÕꌎӎ" + #: engines/teenagent/resources.cpp:95 msgid "" "You're missing the 'teenagent.dat' file. Get it from the ScummVM website" @@ -3769,70 +3872,3 @@ msgid "Use MPEG video from the DVD version, instead of lower resolution AVI" msgstr "" "øįߎŪģ׎ŅŠāģ MPEG-ŅŲŌÕŽ Ų× DVD-ŅÕąįŲŲ ŅÜÕįāŽ ŅŲŌÕŽ ŻŲ׌ŽÓŽ ąŠ×ąÕčÕŻŲļ Ņ " "䎹܊āÕ AVI" - -#~ msgid "EGA undithering" -#~ msgstr "EGA ŃÕ× ąŠįāąŠ" - -#~ msgid "Enable undithering in EGA games" -#~ msgstr "²ŚŪīēŠÕā ąÕÖŲÜ ŃÕ× ąŠįāąŲąŽŅŠŻŲļ Ņ EGA ŲÓąŠå" - -#~ msgid "MPEG-2 cutscenes found but ScummVM has been built without MPEG-2" -#~ msgstr "" -#~ "½ŠŁŌÕŻė ׊įāŠŅŚŲ Ņ 䎹܊āÕ MPEG-2, ŻŽ ScummVM ŃėŪ įŽŃąŠŻ ŃÕ× ßŽŌŌÕąÖŚŲ " -#~ "MPEG-2" - -#~ msgctxt "lowres" -#~ msgid "Mass Add..." -#~ msgstr "¼ŻŽÓŽ ŲÓą..." - -#~ msgid "" -#~ "Turns off General MIDI mapping for games with Roland MT-32 soundtrack" -#~ msgstr "" -#~ "²ėŚŪīēŠÕā įŽßŽįāŠŅŪÕŻŲÕ General MIDI ŌŪļ ŲÓą į ×Ņ挎ŅŽŁ ŌŽąŽÖŚŽŁ ŌŪļ " -#~ "Roland MT-32" - -#~ msgid "Standard (16bpp)" -#~ msgstr "ĮāŠŻŌŠąāŻėŁ ąŠįāÕąŲ׊āŽą (16bpp)" - -#~ msgid "MPEG2 cutscenes are no longer supported" -#~ msgstr "·ŠįāŠŅŚŲ Ņ 䎹܊āÕ MPEG2 ŃŽŪģčÕ ŻÕ ߎŌŌÕąÖŲŅŠīāįļ" - -#~ msgid "OpenGL Normal" -#~ msgstr "OpenGL ŃÕ× ćŅÕŪŲēÕŻŲļ" - -#~ msgid "OpenGL Conserve" -#~ msgstr "OpenGL į įŽåąŠŻÕŻŲÕÜ" - -#~ msgid "OpenGL Original" -#~ msgstr "OpenGL ŲׯŠēŠŪģŻėŁ" - -#~ msgid "Current display mode" -#~ msgstr "ĀÕŚćéŲŁ ŅŲŌÕŽąÕÖŲÜ" - -#~ msgid "Current scale" -#~ msgstr "ĀÕŚćéŲŁ ÜŠįčāŠŃ" - -#~ msgid "Active filter mode: Linear" -#~ msgstr "°ŚāŲŅŻėŁ ąÕÖŲÜ äŲŪģāąŠ: »ŲŻÕŁŻėŁ" - -#~ msgid "Active filter mode: Nearest" -#~ msgstr "°ŚāŲŅŻėŁ ąÕÖŲÜ äŲŪģāąŠ: ±ŪŲÖŠŁčŲŁ" - -#~ msgid "Enable Roland GS Mode" -#~ msgstr "²ŚŪīēŲāģ ąÕÖŲÜ Roland GS" - -#~ msgctxt "lowres" -#~ msgid "Add Game..." -#~ msgstr "“ŽŃ. ŲÓąć" - -#~ msgid "Add Game..." -#~ msgstr "“ŽŃŠŅŲāģ ŲÓąć..." - -#~ msgid "Discovered %d new games." -#~ msgstr "½ŠŁŌÕŻŽ %d ŻŽŅėå ŲÓą." - -#~ msgid "Command line argument not processed" -#~ msgstr "æŠąŠÜÕāąė ŚŽÜŠŻŌŻŽŁ įāąŽŚŲ ŻÕ ŽŃąŠŃŽāŠŻė" - -#~ msgid "Invalid Path" -#~ msgstr "½ÕŅÕąŻėŁ ßćāģ" diff --git a/po/scummvm.pot b/po/scummvm.pot index 1edbe00e20..8bc74ef781 100644 --- a/po/scummvm.pot +++ b/po/scummvm.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ScummVM 1.9.0git\n" "Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n" -"POT-Creation-Date: 2016-02-20 21:22+0000\n" +"POT-Creation-Date: 2016-04-07 08:55+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -54,10 +54,11 @@ msgstr "" #: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editrecorddialog.cpp:67 #: gui/filebrowser-dialog.cpp:64 gui/fluidsynth-dialog.cpp:152 #: gui/KeysDialog.cpp:43 gui/launcher.cpp:351 gui/massadd.cpp:95 -#: gui/options.cpp:1237 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 +#: gui/options.cpp:1255 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 #: gui/recorderdialog.cpp:156 gui/saveload-dialog.cpp:216 #: gui/saveload-dialog.cpp:276 gui/saveload-dialog.cpp:547 -#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 engines/engine.cpp:546 +#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 +#: gui/updates-dialog.cpp:113 engines/engine.cpp:546 #: backends/events/default/default-events.cpp:196 #: backends/events/default/default-events.cpp:218 #: backends/platform/wii/options.cpp:48 engines/drascula/saveload.cpp:49 @@ -171,7 +172,7 @@ msgstr "" msgid "Triangle" msgstr "" -#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1168 +#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1170 msgid "Misc" msgstr "" @@ -205,12 +206,12 @@ msgstr "" #: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:352 #: gui/launcher.cpp:1050 gui/launcher.cpp:1054 gui/massadd.cpp:92 -#: gui/options.cpp:1238 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 +#: gui/options.cpp:1256 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 #: engines/engine.cpp:476 backends/platform/wii/options.cpp:47 #: backends/platform/wince/CELauncherDialog.cpp:54 #: engines/agos/animation.cpp:558 engines/drascula/saveload.cpp:49 #: engines/groovie/script.cpp:408 engines/parallaction/saveload.cpp:274 -#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1834 +#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1831 #: engines/scumm/players/player_v3m.cpp:130 #: engines/scumm/players/player_v5m.cpp:108 engines/sky/compact.cpp:131 #: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:524 @@ -238,15 +239,15 @@ msgstr "" msgid "Mouse click" msgstr "" -#: gui/gui-manager.cpp:126 base/main.cpp:322 +#: gui/gui-manager.cpp:126 base/main.cpp:325 msgid "Display keyboard" msgstr "" -#: gui/gui-manager.cpp:130 base/main.cpp:326 +#: gui/gui-manager.cpp:130 base/main.cpp:329 msgid "Remap keys" msgstr "" -#: gui/gui-manager.cpp:133 base/main.cpp:329 engines/scumm/help.cpp:87 +#: gui/gui-manager.cpp:133 base/main.cpp:332 engines/scumm/help.cpp:87 msgid "Toggle fullscreen" msgstr "" @@ -318,8 +319,8 @@ msgid "" "English" msgstr "" -#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:87 -#: gui/options.cpp:735 gui/options.cpp:748 gui/options.cpp:1208 +#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:89 +#: gui/options.cpp:737 gui/options.cpp:750 gui/options.cpp:1210 #: audio/null.cpp:41 msgid "<default>" msgstr "" @@ -341,11 +342,11 @@ msgstr "" msgid "Engine" msgstr "" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "Graphics" msgstr "" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "GFX" msgstr "" @@ -358,7 +359,7 @@ msgctxt "lowres" msgid "Override global graphic settings" msgstr "" -#: gui/launcher.cpp:257 gui/options.cpp:1094 +#: gui/launcher.cpp:257 gui/options.cpp:1096 msgid "Audio" msgstr "" @@ -371,11 +372,11 @@ msgctxt "lowres" msgid "Override global audio settings" msgstr "" -#: gui/launcher.cpp:271 gui/options.cpp:1099 +#: gui/launcher.cpp:271 gui/options.cpp:1101 msgid "Volume" msgstr "" -#: gui/launcher.cpp:273 gui/options.cpp:1101 +#: gui/launcher.cpp:273 gui/options.cpp:1103 msgctxt "lowres" msgid "Volume" msgstr "" @@ -389,7 +390,7 @@ msgctxt "lowres" msgid "Override global volume settings" msgstr "" -#: gui/launcher.cpp:286 gui/options.cpp:1109 +#: gui/launcher.cpp:286 gui/options.cpp:1111 msgid "MIDI" msgstr "" @@ -402,7 +403,7 @@ msgctxt "lowres" msgid "Override global MIDI settings" msgstr "" -#: gui/launcher.cpp:300 gui/options.cpp:1115 +#: gui/launcher.cpp:300 gui/options.cpp:1117 msgid "MT-32" msgstr "" @@ -415,11 +416,11 @@ msgctxt "lowres" msgid "Override global MT-32 settings" msgstr "" -#: gui/launcher.cpp:314 gui/options.cpp:1122 +#: gui/launcher.cpp:314 gui/options.cpp:1124 msgid "Paths" msgstr "" -#: gui/launcher.cpp:316 gui/options.cpp:1124 +#: gui/launcher.cpp:316 gui/options.cpp:1126 msgctxt "lowres" msgid "Paths" msgstr "" @@ -433,7 +434,7 @@ msgctxt "lowres" msgid "Game Path:" msgstr "" -#: gui/launcher.cpp:330 gui/options.cpp:1148 +#: gui/launcher.cpp:330 gui/options.cpp:1150 msgid "Extra Path:" msgstr "" @@ -441,42 +442,42 @@ msgstr "" msgid "Specifies path to additional data used by the game" msgstr "" -#: gui/launcher.cpp:332 gui/options.cpp:1150 +#: gui/launcher.cpp:332 gui/options.cpp:1152 msgctxt "lowres" msgid "Extra Path:" msgstr "" -#: gui/launcher.cpp:339 gui/options.cpp:1132 +#: gui/launcher.cpp:339 gui/options.cpp:1134 msgid "Save Path:" msgstr "" #: gui/launcher.cpp:339 gui/launcher.cpp:341 gui/launcher.cpp:342 -#: gui/options.cpp:1132 gui/options.cpp:1134 gui/options.cpp:1135 +#: gui/options.cpp:1134 gui/options.cpp:1136 gui/options.cpp:1137 msgid "Specifies where your saved games are put" msgstr "" -#: gui/launcher.cpp:341 gui/options.cpp:1134 +#: gui/launcher.cpp:341 gui/options.cpp:1136 msgctxt "lowres" msgid "Save Path:" msgstr "" #: gui/launcher.cpp:360 gui/launcher.cpp:459 gui/launcher.cpp:517 -#: gui/launcher.cpp:571 gui/options.cpp:1143 gui/options.cpp:1151 -#: gui/options.cpp:1160 gui/options.cpp:1275 gui/options.cpp:1281 -#: gui/options.cpp:1289 gui/options.cpp:1319 gui/options.cpp:1325 -#: gui/options.cpp:1332 gui/options.cpp:1425 gui/options.cpp:1428 -#: gui/options.cpp:1440 +#: gui/launcher.cpp:571 gui/options.cpp:1145 gui/options.cpp:1153 +#: gui/options.cpp:1162 gui/options.cpp:1293 gui/options.cpp:1299 +#: gui/options.cpp:1307 gui/options.cpp:1337 gui/options.cpp:1343 +#: gui/options.cpp:1350 gui/options.cpp:1456 gui/options.cpp:1459 +#: gui/options.cpp:1471 msgctxt "path" msgid "None" msgstr "" #: gui/launcher.cpp:365 gui/launcher.cpp:465 gui/launcher.cpp:575 -#: gui/options.cpp:1269 gui/options.cpp:1313 gui/options.cpp:1431 +#: gui/options.cpp:1287 gui/options.cpp:1331 gui/options.cpp:1462 #: backends/platform/wii/options.cpp:56 msgid "Default" msgstr "" -#: gui/launcher.cpp:510 gui/options.cpp:1434 +#: gui/launcher.cpp:510 gui/options.cpp:1465 msgid "Select SoundFont" msgstr "" @@ -488,7 +489,7 @@ msgstr "" msgid "Select additional game directory" msgstr "" -#: gui/launcher.cpp:559 gui/options.cpp:1377 +#: gui/launcher.cpp:559 gui/options.cpp:1408 msgid "Select directory for saved games" msgstr "" @@ -496,7 +497,7 @@ msgstr "" msgid "This game ID is already taken. Please choose another one." msgstr "" -#: gui/launcher.cpp:626 engines/dialogs.cpp:111 +#: gui/launcher.cpp:626 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:115 msgid "~Q~uit" msgstr "" @@ -584,17 +585,18 @@ msgid "Search:" msgstr "" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214 -#: engines/mohawk/riven.cpp:718 engines/pegasus/pegasus.cpp:353 -#: engines/tsage/scenes.cpp:600 +#: engines/mohawk/dialogs.cpp:120 engines/mohawk/riven.cpp:718 +#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:600 msgid "Load game:" msgstr "" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 #: backends/platform/wince/CEActionsPocket.cpp:267 #: backends/platform/wince/CEActionsSmartphone.cpp:231 -#: engines/cruise/menu.cpp:214 engines/mohawk/riven.cpp:718 -#: engines/parallaction/saveload.cpp:197 engines/pegasus/pegasus.cpp:353 -#: engines/scumm/dialogs.cpp:189 engines/tsage/scenes.cpp:600 +#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:120 +#: engines/mohawk/riven.cpp:718 engines/parallaction/saveload.cpp:197 +#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:189 +#: engines/tsage/scenes.cpp:600 msgid "Load" msgstr "" @@ -679,378 +681,390 @@ msgstr "" msgid "Fast replay" msgstr "" -#: gui/options.cpp:85 +#: gui/options.cpp:87 common/updates.cpp:56 msgid "Never" msgstr "" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 5 mins" msgstr "" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 10 mins" msgstr "" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 15 mins" msgstr "" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 30 mins" msgstr "" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "8 kHz" msgstr "" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "11 kHz" msgstr "" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "22 kHz" msgstr "" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "44 kHz" msgstr "" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "48 kHz" msgstr "" -#: gui/options.cpp:255 gui/options.cpp:479 gui/options.cpp:580 -#: gui/options.cpp:649 gui/options.cpp:857 +#: gui/options.cpp:257 gui/options.cpp:481 gui/options.cpp:582 +#: gui/options.cpp:651 gui/options.cpp:859 msgctxt "soundfont" msgid "None" msgstr "" -#: gui/options.cpp:389 +#: gui/options.cpp:391 msgid "Failed to apply some of the graphic options changes:" msgstr "" -#: gui/options.cpp:401 +#: gui/options.cpp:403 msgid "the video mode could not be changed." msgstr "" -#: gui/options.cpp:407 +#: gui/options.cpp:409 msgid "the fullscreen setting could not be changed" msgstr "" -#: gui/options.cpp:413 +#: gui/options.cpp:415 msgid "the aspect ratio setting could not be changed" msgstr "" -#: gui/options.cpp:732 +#: gui/options.cpp:734 msgid "Graphics mode:" msgstr "" -#: gui/options.cpp:746 +#: gui/options.cpp:748 msgid "Render mode:" msgstr "" -#: gui/options.cpp:746 gui/options.cpp:747 +#: gui/options.cpp:748 gui/options.cpp:749 msgid "Special dithering modes supported by some games" msgstr "" -#: gui/options.cpp:758 +#: gui/options.cpp:760 #: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2316 msgid "Fullscreen mode" msgstr "" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Aspect ratio correction" msgstr "" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Correct aspect ratio for 320x200 games" msgstr "" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Preferred Device:" msgstr "" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Music Device:" msgstr "" -#: gui/options.cpp:769 gui/options.cpp:771 +#: gui/options.cpp:771 gui/options.cpp:773 msgid "Specifies preferred sound device or sound card emulator" msgstr "" -#: gui/options.cpp:769 gui/options.cpp:771 gui/options.cpp:772 +#: gui/options.cpp:771 gui/options.cpp:773 gui/options.cpp:774 msgid "Specifies output sound device or sound card emulator" msgstr "" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Preferred Dev.:" msgstr "" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Music Device:" msgstr "" -#: gui/options.cpp:798 +#: gui/options.cpp:800 msgid "AdLib emulator:" msgstr "" -#: gui/options.cpp:798 gui/options.cpp:799 +#: gui/options.cpp:800 gui/options.cpp:801 msgid "AdLib is used for music in many games" msgstr "" -#: gui/options.cpp:809 +#: gui/options.cpp:811 msgid "Output rate:" msgstr "" -#: gui/options.cpp:809 gui/options.cpp:810 +#: gui/options.cpp:811 gui/options.cpp:812 msgid "" "Higher value specifies better sound quality but may be not supported by your " "soundcard" msgstr "" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "GM Device:" msgstr "" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "Specifies default sound device for General MIDI output" msgstr "" -#: gui/options.cpp:831 +#: gui/options.cpp:833 msgid "Don't use General MIDI music" msgstr "" -#: gui/options.cpp:842 gui/options.cpp:908 +#: gui/options.cpp:844 gui/options.cpp:910 msgid "Use first available device" msgstr "" -#: gui/options.cpp:854 +#: gui/options.cpp:856 msgid "SoundFont:" msgstr "" -#: gui/options.cpp:854 gui/options.cpp:856 gui/options.cpp:857 +#: gui/options.cpp:856 gui/options.cpp:858 gui/options.cpp:859 msgid "SoundFont is supported by some audio cards, FluidSynth and Timidity" msgstr "" -#: gui/options.cpp:856 +#: gui/options.cpp:858 msgctxt "lowres" msgid "SoundFont:" msgstr "" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Mixed AdLib/MIDI mode" msgstr "" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Use both MIDI and AdLib sound generation" msgstr "" -#: gui/options.cpp:865 +#: gui/options.cpp:867 msgid "MIDI gain:" msgstr "" -#: gui/options.cpp:872 +#: gui/options.cpp:874 msgid "FluidSynth Settings" msgstr "" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "MT-32 Device:" msgstr "" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output" msgstr "" -#: gui/options.cpp:884 +#: gui/options.cpp:886 msgid "True Roland MT-32 (disable GM emulation)" msgstr "" -#: gui/options.cpp:884 gui/options.cpp:886 +#: gui/options.cpp:886 gui/options.cpp:888 msgid "" "Check if you want to use your real hardware Roland-compatible sound device " "connected to your computer" msgstr "" -#: gui/options.cpp:886 +#: gui/options.cpp:888 msgctxt "lowres" msgid "True Roland MT-32 (no GM emulation)" msgstr "" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "Roland GS Device (enable MT-32 mappings)" msgstr "" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "" "Check if you want to enable patch mappings to emulate an MT-32 on a Roland " "GS device" msgstr "" -#: gui/options.cpp:898 +#: gui/options.cpp:900 msgid "Don't use Roland MT-32 music" msgstr "" -#: gui/options.cpp:925 +#: gui/options.cpp:927 msgid "Text and Speech:" msgstr "" -#: gui/options.cpp:929 gui/options.cpp:939 +#: gui/options.cpp:931 gui/options.cpp:941 msgid "Speech" msgstr "" -#: gui/options.cpp:930 gui/options.cpp:940 +#: gui/options.cpp:932 gui/options.cpp:942 msgid "Subtitles" msgstr "" -#: gui/options.cpp:931 +#: gui/options.cpp:933 msgid "Both" msgstr "" -#: gui/options.cpp:933 +#: gui/options.cpp:935 msgid "Subtitle speed:" msgstr "" -#: gui/options.cpp:935 +#: gui/options.cpp:937 msgctxt "lowres" msgid "Text and Speech:" msgstr "" -#: gui/options.cpp:939 +#: gui/options.cpp:941 msgid "Spch" msgstr "" -#: gui/options.cpp:940 +#: gui/options.cpp:942 msgid "Subs" msgstr "" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgctxt "lowres" msgid "Both" msgstr "" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgid "Show subtitles and play speech" msgstr "" -#: gui/options.cpp:943 +#: gui/options.cpp:945 msgctxt "lowres" msgid "Subtitle speed:" msgstr "" -#: gui/options.cpp:959 +#: gui/options.cpp:961 msgid "Music volume:" msgstr "" -#: gui/options.cpp:961 +#: gui/options.cpp:963 msgctxt "lowres" msgid "Music volume:" msgstr "" -#: gui/options.cpp:968 +#: gui/options.cpp:970 msgid "Mute All" msgstr "" -#: gui/options.cpp:971 +#: gui/options.cpp:973 msgid "SFX volume:" msgstr "" -#: gui/options.cpp:971 gui/options.cpp:973 gui/options.cpp:974 +#: gui/options.cpp:973 gui/options.cpp:975 gui/options.cpp:976 msgid "Special sound effects volume" msgstr "" -#: gui/options.cpp:973 +#: gui/options.cpp:975 msgctxt "lowres" msgid "SFX volume:" msgstr "" -#: gui/options.cpp:981 +#: gui/options.cpp:983 msgid "Speech volume:" msgstr "" -#: gui/options.cpp:983 +#: gui/options.cpp:985 msgctxt "lowres" msgid "Speech volume:" msgstr "" -#: gui/options.cpp:1140 +#: gui/options.cpp:1142 msgid "Theme Path:" msgstr "" -#: gui/options.cpp:1142 +#: gui/options.cpp:1144 msgctxt "lowres" msgid "Theme Path:" msgstr "" -#: gui/options.cpp:1148 gui/options.cpp:1150 gui/options.cpp:1151 +#: gui/options.cpp:1150 gui/options.cpp:1152 gui/options.cpp:1153 msgid "Specifies path to additional data used by all games or ScummVM" msgstr "" -#: gui/options.cpp:1157 +#: gui/options.cpp:1159 msgid "Plugins Path:" msgstr "" -#: gui/options.cpp:1159 +#: gui/options.cpp:1161 msgctxt "lowres" msgid "Plugins Path:" msgstr "" -#: gui/options.cpp:1170 +#: gui/options.cpp:1172 msgctxt "lowres" msgid "Misc" msgstr "" -#: gui/options.cpp:1172 +#: gui/options.cpp:1174 msgid "Theme:" msgstr "" -#: gui/options.cpp:1176 +#: gui/options.cpp:1178 msgid "GUI Renderer:" msgstr "" -#: gui/options.cpp:1188 +#: gui/options.cpp:1190 msgid "Autosave:" msgstr "" -#: gui/options.cpp:1190 +#: gui/options.cpp:1192 msgctxt "lowres" msgid "Autosave:" msgstr "" -#: gui/options.cpp:1198 +#: gui/options.cpp:1200 msgid "Keys" msgstr "" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "GUI Language:" msgstr "" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "Language of ScummVM GUI" msgstr "" -#: gui/options.cpp:1364 +#: gui/options.cpp:1235 +msgid "Update check:" +msgstr "" + +#: gui/options.cpp:1235 +msgid "How often to check ScummVM updates" +msgstr "" + +#: gui/options.cpp:1247 +msgid "Check now" +msgstr "" + +#: gui/options.cpp:1382 msgid "You have to restart ScummVM before your changes will take effect." msgstr "" -#: gui/options.cpp:1384 +#: gui/options.cpp:1415 msgid "The chosen directory cannot be written to. Please select another one." msgstr "" -#: gui/options.cpp:1393 +#: gui/options.cpp:1424 msgid "Select directory for GUI themes" msgstr "" -#: gui/options.cpp:1403 +#: gui/options.cpp:1434 msgid "Select directory for extra files" msgstr "" -#: gui/options.cpp:1414 +#: gui/options.cpp:1445 msgid "Select directory for plugins" msgstr "" -#: gui/options.cpp:1467 +#: gui/options.cpp:1498 msgid "" "The theme you selected does not support your current language. If you want " "to use this theme you need to switch to another language first." @@ -1221,39 +1235,59 @@ msgstr "" msgid "Antialiased" msgstr "" -#: gui/widget.cpp:323 gui/widget.cpp:325 gui/widget.cpp:331 gui/widget.cpp:333 +#: gui/updates-dialog.cpp:51 +msgid "" +"ScummVM now supports automatic check for updates\n" +"which requires access to the Internet.\n" +"\n" +"Would you like to enable this feature?" +msgstr "" + +#: gui/updates-dialog.cpp:55 +msgid "(You can always enable it in the options dialog on the Misc tab)" +msgstr "" + +#: gui/updates-dialog.cpp:92 +msgid "Check for updates automatically" +msgstr "" + +#: gui/updates-dialog.cpp:111 +msgid "Proceed" +msgstr "" + +#: gui/widget.cpp:327 gui/widget.cpp:329 gui/widget.cpp:335 gui/widget.cpp:337 msgid "Clear value" msgstr "" -#: base/main.cpp:237 +#: base/main.cpp:240 #, c-format msgid "Engine does not support debug level '%s'" msgstr "" -#: base/main.cpp:309 +#: base/main.cpp:312 msgid "Menu" msgstr "" -#: base/main.cpp:312 backends/platform/symbian/src/SymbianActions.cpp:45 +#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:45 #: backends/platform/wince/CEActionsPocket.cpp:45 #: backends/platform/wince/CEActionsSmartphone.cpp:46 msgid "Skip" msgstr "" -#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:50 +#: base/main.cpp:318 backends/platform/symbian/src/SymbianActions.cpp:50 #: backends/platform/wince/CEActionsPocket.cpp:42 msgid "Pause" msgstr "" -#: base/main.cpp:318 +#: base/main.cpp:321 msgid "Skip line" msgstr "" -#: base/main.cpp:510 +#: base/main.cpp:520 msgid "Error running game:" msgstr "" -#: base/main.cpp:557 +#: base/main.cpp:567 msgid "Could not find any engine capable of running the selected game" msgstr "" @@ -1348,16 +1382,32 @@ msgctxt "lowres" msgid "Hercules Amber" msgstr "" -#: engines/advancedDetector.cpp:317 +#: common/updates.cpp:58 +msgid "Daily" +msgstr "" + +#: common/updates.cpp:60 +msgid "Weekly" +msgstr "" + +#: common/updates.cpp:62 +msgid "Monthly" +msgstr "" + +#: common/updates.cpp:64 +msgid "<Bad value>" +msgstr "" + +#: engines/advancedDetector.cpp:334 #, c-format msgid "The game in '%s' seems to be unknown." msgstr "" -#: engines/advancedDetector.cpp:318 +#: engines/advancedDetector.cpp:335 msgid "Please, report the following data to the ScummVM team along with name" msgstr "" -#: engines/advancedDetector.cpp:320 +#: engines/advancedDetector.cpp:337 msgid "of the game you tried to add and its version/language/etc.:" msgstr "" @@ -1365,11 +1415,11 @@ msgstr "" msgid "~R~esume" msgstr "" -#: engines/dialogs.cpp:87 +#: engines/dialogs.cpp:87 engines/mohawk/dialogs.cpp:113 msgid "~L~oad" msgstr "" -#: engines/dialogs.cpp:91 +#: engines/dialogs.cpp:91 engines/mohawk/dialogs.cpp:114 msgid "~S~ave" msgstr "" @@ -1398,9 +1448,9 @@ msgstr "" #: engines/avalanche/parser.cpp:1899 engines/cge/events.cpp:74 #: engines/cge2/events.cpp:67 engines/cruise/menu.cpp:212 #: engines/drascula/saveload.cpp:336 engines/dreamweb/saveload.cpp:261 -#: engines/hugo/file.cpp:298 engines/neverhood/menumodule.cpp:877 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/hugo/file.cpp:298 engines/mohawk/dialogs.cpp:121 +#: engines/neverhood/menumodule.cpp:877 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save game:" @@ -1415,9 +1465,10 @@ msgstr "" #: engines/cge/events.cpp:74 engines/cge2/events.cpp:67 #: engines/cruise/menu.cpp:212 engines/drascula/saveload.cpp:336 #: engines/dreamweb/saveload.cpp:261 engines/hugo/file.cpp:298 -#: engines/neverhood/menumodule.cpp:877 engines/parallaction/saveload.cpp:212 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/scumm/dialogs.cpp:188 engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/mohawk/dialogs.cpp:121 engines/neverhood/menumodule.cpp:877 +#: engines/parallaction/saveload.cpp:212 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/scumm/dialogs.cpp:188 +#: engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save" @@ -1437,13 +1488,13 @@ msgid "" "and for instructions on how to obtain further assistance." msgstr "" -#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:109 -#: engines/mohawk/dialogs.cpp:170 engines/tsage/dialogs.cpp:106 +#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:117 +#: engines/mohawk/dialogs.cpp:242 engines/tsage/dialogs.cpp:106 msgid "~O~K" msgstr "" -#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:110 -#: engines/mohawk/dialogs.cpp:171 engines/tsage/dialogs.cpp:107 +#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:118 +#: engines/mohawk/dialogs.cpp:243 engines/tsage/dialogs.cpp:107 msgid "~C~ancel" msgstr "" @@ -1576,11 +1627,11 @@ msgstr "" msgid "PC-98 Audio" msgstr "" -#: audio/softsynth/mt32.cpp:200 +#: audio/softsynth/mt32.cpp:196 msgid "Initializing MT-32 Emulator" msgstr "" -#: audio/softsynth/mt32.cpp:426 +#: audio/softsynth/mt32.cpp:434 msgid "MT-32 Emulator" msgstr "" @@ -1697,11 +1748,11 @@ msgstr "" msgid "Swipe three fingers to the right to toggle." msgstr "" -#: backends/graphics/opengl/opengl-graphics.cpp:119 +#: backends/graphics/opengl/opengl-graphics.cpp:126 msgid "OpenGL" msgstr "" -#: backends/graphics/opengl/opengl-graphics.cpp:120 +#: backends/graphics/opengl/opengl-graphics.cpp:127 msgid "OpenGL (No filtering)" msgstr "" @@ -2249,20 +2300,20 @@ msgid "" "Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory" msgstr "" -#: backends/updates/macosx/macosx-updates.mm:67 +#: backends/updates/macosx/macosx-updates.mm:68 msgid "Check for Updates..." msgstr "" #: engines/agi/detection.cpp:147 engines/cine/detection.cpp:70 #: engines/drascula/detection.cpp:302 engines/dreamweb/detection.cpp:47 -#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:404 +#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:410 #: engines/toltecs/detection.cpp:200 engines/zvision/detection_tables.h:51 msgid "Use original save/load screens" msgstr "" #: engines/agi/detection.cpp:148 engines/cine/detection.cpp:71 #: engines/drascula/detection.cpp:303 engines/dreamweb/detection.cpp:48 -#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:405 +#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:411 #: engines/toltecs/detection.cpp:201 msgid "Use the original save/load screens, instead of the ScummVM ones" msgstr "" @@ -2286,11 +2337,29 @@ msgid "" "Enables mouse support. Allows to use mouse for movement and in game menus." msgstr "" +#: engines/agi/detection.cpp:177 +msgid "Use Hercules hires font" +msgstr "" + +#: engines/agi/detection.cpp:178 +msgid "Uses Hercules hires font, when font file is available." +msgstr "" + +#: engines/agi/detection.cpp:187 +msgid "Pause when entering commands" +msgstr "" + +#: engines/agi/detection.cpp:188 +msgid "" +"Shows a command prompt window and pauses the game (like in SCI) instead of a " +"real-time prompt." +msgstr "" + #: engines/agi/saveload.cpp:777 engines/avalanche/parser.cpp:1887 #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore game:" @@ -2300,13 +2369,13 @@ msgstr "" #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore" msgstr "" -#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2377 +#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2374 #, c-format msgid "" "Failed to load game state from file:\n" @@ -2314,7 +2383,7 @@ msgid "" "%s" msgstr "" -#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2370 +#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2367 #, c-format msgid "" "Failed to save game state to file:\n" @@ -2322,7 +2391,7 @@ msgid "" "%s" msgstr "" -#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2388 +#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2385 #, c-format msgid "" "Successfully saved game state in file:\n" @@ -2540,29 +2609,37 @@ msgid "" "\n" msgstr "" +#: engines/mohawk/detection.cpp:168 +msgid "Play the Myst fly by movie" +msgstr "" + +#: engines/mohawk/detection.cpp:169 +msgid "The Myst fly by movie was not played by the original engine." +msgstr "" + #. I18N: Option for fast scene switching -#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:167 +#: engines/mohawk/dialogs.cpp:96 engines/mohawk/dialogs.cpp:239 msgid "~Z~ip Mode Activated" msgstr "" -#: engines/mohawk/dialogs.cpp:93 +#: engines/mohawk/dialogs.cpp:97 msgid "~T~ransitions Enabled" msgstr "" #. I18N: Drop book page -#: engines/mohawk/dialogs.cpp:95 +#: engines/mohawk/dialogs.cpp:99 msgid "~D~rop Page" msgstr "" -#: engines/mohawk/dialogs.cpp:99 -msgid "~S~how Map" +#: engines/mohawk/dialogs.cpp:103 +msgid "Show ~M~ap" msgstr "" -#: engines/mohawk/dialogs.cpp:105 -msgid "~M~ain Menu" +#: engines/mohawk/dialogs.cpp:109 +msgid "Main Men~u~" msgstr "" -#: engines/mohawk/dialogs.cpp:168 +#: engines/mohawk/dialogs.cpp:240 msgid "~W~ater Effect Enabled" msgstr "" @@ -2671,66 +2748,74 @@ msgstr "" msgid "Use an alternative game intro (CD version only)" msgstr "" -#: engines/sci/detection.cpp:374 +#: engines/sci/detection.cpp:380 msgid "Skip EGA dithering pass (full color backgrounds)" msgstr "" -#: engines/sci/detection.cpp:375 +#: engines/sci/detection.cpp:381 msgid "Skip dithering pass in EGA games, graphics are shown with full colors" msgstr "" -#: engines/sci/detection.cpp:384 +#: engines/sci/detection.cpp:390 msgid "Enable high resolution graphics" msgstr "" -#: engines/sci/detection.cpp:385 +#: engines/sci/detection.cpp:391 msgid "Enable high resolution graphics/content" msgstr "" -#: engines/sci/detection.cpp:394 +#: engines/sci/detection.cpp:400 msgid "Prefer digital sound effects" msgstr "" -#: engines/sci/detection.cpp:395 +#: engines/sci/detection.cpp:401 msgid "Prefer digital sound effects instead of synthesized ones" msgstr "" -#: engines/sci/detection.cpp:414 +#: engines/sci/detection.cpp:420 msgid "Use IMF/Yamaha FB-01 for MIDI output" msgstr "" -#: engines/sci/detection.cpp:415 +#: engines/sci/detection.cpp:421 msgid "" "Use an IBM Music Feature card or a Yamaha FB-01 FM synth module for MIDI " "output" msgstr "" -#: engines/sci/detection.cpp:425 +#: engines/sci/detection.cpp:431 msgid "Use CD audio" msgstr "" -#: engines/sci/detection.cpp:426 +#: engines/sci/detection.cpp:432 msgid "Use CD audio instead of in-game audio, if available" msgstr "" -#: engines/sci/detection.cpp:436 +#: engines/sci/detection.cpp:442 msgid "Use Windows cursors" msgstr "" -#: engines/sci/detection.cpp:437 +#: engines/sci/detection.cpp:443 msgid "" "Use the Windows cursors (smaller and monochrome) instead of the DOS ones" msgstr "" -#: engines/sci/detection.cpp:447 +#: engines/sci/detection.cpp:453 msgid "Use silver cursors" msgstr "" -#: engines/sci/detection.cpp:448 +#: engines/sci/detection.cpp:454 msgid "" "Use the alternate set of silver cursors, instead of the normal golden ones" msgstr "" +#: engines/scumm/detection.cpp:1335 +msgid "Show Object Line" +msgstr "" + +#: engines/scumm/detection.cpp:1336 +msgid "Show the names of objects at the bottom of the screen" +msgstr "" + #: engines/scumm/dialogs.cpp:176 #, c-format msgid "Insert Disk %c and Press Button to Continue." @@ -3396,14 +3481,14 @@ msgstr "" msgid "Subtitle speed: " msgstr "" -#: engines/scumm/scumm.cpp:1832 +#: engines/scumm/scumm.cpp:1829 #, c-format msgid "" "Native MIDI support requires the Roland Upgrade from LucasArts,\n" "but %s is missing. Using AdLib instead." msgstr "" -#: engines/scumm/scumm.cpp:2644 +#: engines/scumm/scumm.cpp:2645 msgid "" "Usually, Maniac Mansion would start now. But for that to work, the game " "files for Maniac Mansion have to be in the 'Maniac' directory inside the " @@ -3556,6 +3641,15 @@ msgstr "" msgid "Show labels for objects on mouse hover" msgstr "" +#: engines/sword25/detection.cpp:46 +msgid "Use English speech" +msgstr "" + +#: engines/sword25/detection.cpp:47 +msgid "" +"Use English speech instead of German for every language other than German" +msgstr "" + #: engines/teenagent/resources.cpp:95 msgid "" "You're missing the 'teenagent.dat' file. Get it from the ScummVM website" diff --git a/po/sv_SE.po b/po/sv_SE.po index 82357b4dc2..894dfadec3 100644 --- a/po/sv_SE.po +++ b/po/sv_SE.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ScummVM 1.5.0svn\n" "Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n" -"POT-Creation-Date: 2016-02-20 21:22+0000\n" +"POT-Creation-Date: 2016-04-07 08:55+0100\n" "PO-Revision-Date: 2016-02-25 23:06+0100\n" "Last-Translator: Hampus Flink <hampus.flink@gmail.com>\n" "Language-Team: \n" @@ -56,10 +56,11 @@ msgstr "Uppåt" #: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editrecorddialog.cpp:67 #: gui/filebrowser-dialog.cpp:64 gui/fluidsynth-dialog.cpp:152 #: gui/KeysDialog.cpp:43 gui/launcher.cpp:351 gui/massadd.cpp:95 -#: gui/options.cpp:1237 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 +#: gui/options.cpp:1255 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 #: gui/recorderdialog.cpp:156 gui/saveload-dialog.cpp:216 #: gui/saveload-dialog.cpp:276 gui/saveload-dialog.cpp:547 -#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 engines/engine.cpp:546 +#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 +#: gui/updates-dialog.cpp:113 engines/engine.cpp:546 #: backends/events/default/default-events.cpp:196 #: backends/events/default/default-events.cpp:218 #: backends/platform/wii/options.cpp:48 engines/drascula/saveload.cpp:49 @@ -173,7 +174,7 @@ msgstr "Sinus" msgid "Triangle" msgstr "Triangel" -#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1168 +#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1170 msgid "Misc" msgstr "Diverse" @@ -208,12 +209,12 @@ msgstr "" #: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:352 #: gui/launcher.cpp:1050 gui/launcher.cpp:1054 gui/massadd.cpp:92 -#: gui/options.cpp:1238 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 +#: gui/options.cpp:1256 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 #: engines/engine.cpp:476 backends/platform/wii/options.cpp:47 #: backends/platform/wince/CELauncherDialog.cpp:54 #: engines/agos/animation.cpp:558 engines/drascula/saveload.cpp:49 #: engines/groovie/script.cpp:408 engines/parallaction/saveload.cpp:274 -#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1834 +#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1831 #: engines/scumm/players/player_v3m.cpp:130 #: engines/scumm/players/player_v5m.cpp:108 engines/sky/compact.cpp:131 #: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:524 @@ -243,15 +244,15 @@ msgstr "Stäng" msgid "Mouse click" msgstr "Musklick" -#: gui/gui-manager.cpp:126 base/main.cpp:322 +#: gui/gui-manager.cpp:126 base/main.cpp:325 msgid "Display keyboard" msgstr "Visa tangentbord" -#: gui/gui-manager.cpp:130 base/main.cpp:326 +#: gui/gui-manager.cpp:130 base/main.cpp:329 msgid "Remap keys" msgstr "Ställ in tangenter" -#: gui/gui-manager.cpp:133 base/main.cpp:329 engines/scumm/help.cpp:87 +#: gui/gui-manager.cpp:133 base/main.cpp:332 engines/scumm/help.cpp:87 msgid "Toggle fullscreen" msgstr "Fullskärmsläge" @@ -327,8 +328,8 @@ msgstr "" "Spelets språk. Den här inställningen omvandlar inte din spanska spelversion " "till en engelsk" -#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:87 -#: gui/options.cpp:735 gui/options.cpp:748 gui/options.cpp:1208 +#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:89 +#: gui/options.cpp:737 gui/options.cpp:750 gui/options.cpp:1210 #: audio/null.cpp:41 msgid "<default>" msgstr "<standard>" @@ -350,11 +351,11 @@ msgstr "Plattform:" msgid "Engine" msgstr "Motor" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "Graphics" msgstr "Grafik" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "GFX" msgstr "GFX" @@ -367,7 +368,7 @@ msgctxt "lowres" msgid "Override global graphic settings" msgstr "Överskrid globala grafikinställningar" -#: gui/launcher.cpp:257 gui/options.cpp:1094 +#: gui/launcher.cpp:257 gui/options.cpp:1096 msgid "Audio" msgstr "Ljud" @@ -380,11 +381,11 @@ msgctxt "lowres" msgid "Override global audio settings" msgstr "Överskrid globala ljudinställningar" -#: gui/launcher.cpp:271 gui/options.cpp:1099 +#: gui/launcher.cpp:271 gui/options.cpp:1101 msgid "Volume" msgstr "Volym" -#: gui/launcher.cpp:273 gui/options.cpp:1101 +#: gui/launcher.cpp:273 gui/options.cpp:1103 msgctxt "lowres" msgid "Volume" msgstr "Volym" @@ -398,7 +399,7 @@ msgctxt "lowres" msgid "Override global volume settings" msgstr "Överskrid globala volyminställningar" -#: gui/launcher.cpp:286 gui/options.cpp:1109 +#: gui/launcher.cpp:286 gui/options.cpp:1111 msgid "MIDI" msgstr "MIDI" @@ -411,7 +412,7 @@ msgctxt "lowres" msgid "Override global MIDI settings" msgstr "Överskrid globala MIDI-inställningar" -#: gui/launcher.cpp:300 gui/options.cpp:1115 +#: gui/launcher.cpp:300 gui/options.cpp:1117 msgid "MT-32" msgstr "MT-32" @@ -424,11 +425,11 @@ msgctxt "lowres" msgid "Override global MT-32 settings" msgstr "Överskrid globala MT-32 inställningar" -#: gui/launcher.cpp:314 gui/options.cpp:1122 +#: gui/launcher.cpp:314 gui/options.cpp:1124 msgid "Paths" msgstr "Sökvägar" -#: gui/launcher.cpp:316 gui/options.cpp:1124 +#: gui/launcher.cpp:316 gui/options.cpp:1126 msgctxt "lowres" msgid "Paths" msgstr "Sökvägar" @@ -442,7 +443,7 @@ msgctxt "lowres" msgid "Game Path:" msgstr "Sökv. spel:" -#: gui/launcher.cpp:330 gui/options.cpp:1148 +#: gui/launcher.cpp:330 gui/options.cpp:1150 msgid "Extra Path:" msgstr "Sökv. extra:" @@ -450,42 +451,42 @@ msgstr "Sökv. extra:" msgid "Specifies path to additional data used by the game" msgstr "Bestämmer sökvägen till ytterligare data som spelet använder" -#: gui/launcher.cpp:332 gui/options.cpp:1150 +#: gui/launcher.cpp:332 gui/options.cpp:1152 msgctxt "lowres" msgid "Extra Path:" msgstr "Sökv. extra:" -#: gui/launcher.cpp:339 gui/options.cpp:1132 +#: gui/launcher.cpp:339 gui/options.cpp:1134 msgid "Save Path:" msgstr "Sökv. sparat:" #: gui/launcher.cpp:339 gui/launcher.cpp:341 gui/launcher.cpp:342 -#: gui/options.cpp:1132 gui/options.cpp:1134 gui/options.cpp:1135 +#: gui/options.cpp:1134 gui/options.cpp:1136 gui/options.cpp:1137 msgid "Specifies where your saved games are put" msgstr "Bestämmer var dina spardata lagras" -#: gui/launcher.cpp:341 gui/options.cpp:1134 +#: gui/launcher.cpp:341 gui/options.cpp:1136 msgctxt "lowres" msgid "Save Path:" msgstr "Sökv. sparat:" #: gui/launcher.cpp:360 gui/launcher.cpp:459 gui/launcher.cpp:517 -#: gui/launcher.cpp:571 gui/options.cpp:1143 gui/options.cpp:1151 -#: gui/options.cpp:1160 gui/options.cpp:1275 gui/options.cpp:1281 -#: gui/options.cpp:1289 gui/options.cpp:1319 gui/options.cpp:1325 -#: gui/options.cpp:1332 gui/options.cpp:1425 gui/options.cpp:1428 -#: gui/options.cpp:1440 +#: gui/launcher.cpp:571 gui/options.cpp:1145 gui/options.cpp:1153 +#: gui/options.cpp:1162 gui/options.cpp:1293 gui/options.cpp:1299 +#: gui/options.cpp:1307 gui/options.cpp:1337 gui/options.cpp:1343 +#: gui/options.cpp:1350 gui/options.cpp:1456 gui/options.cpp:1459 +#: gui/options.cpp:1471 msgctxt "path" msgid "None" msgstr "Ingen" #: gui/launcher.cpp:365 gui/launcher.cpp:465 gui/launcher.cpp:575 -#: gui/options.cpp:1269 gui/options.cpp:1313 gui/options.cpp:1431 +#: gui/options.cpp:1287 gui/options.cpp:1331 gui/options.cpp:1462 #: backends/platform/wii/options.cpp:56 msgid "Default" msgstr "Standard" -#: gui/launcher.cpp:510 gui/options.cpp:1434 +#: gui/launcher.cpp:510 gui/options.cpp:1465 msgid "Select SoundFont" msgstr "Välj SoundFont" @@ -497,7 +498,7 @@ msgstr "Välj katalog med speldata" msgid "Select additional game directory" msgstr "Välj en ytterligare spelkatalog" -#: gui/launcher.cpp:559 gui/options.cpp:1377 +#: gui/launcher.cpp:559 gui/options.cpp:1408 msgid "Select directory for saved games" msgstr "Välj katalog för spardata" @@ -505,7 +506,7 @@ msgstr "Välj katalog för spardata" msgid "This game ID is already taken. Please choose another one." msgstr "Detta ID-namn är upptaget. Var god välj ett annat." -#: gui/launcher.cpp:626 engines/dialogs.cpp:111 +#: gui/launcher.cpp:626 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:115 msgid "~Q~uit" msgstr "~A~vsluta" @@ -593,17 +594,18 @@ msgid "Search:" msgstr "Sök:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214 -#: engines/mohawk/riven.cpp:718 engines/pegasus/pegasus.cpp:353 -#: engines/tsage/scenes.cpp:600 +#: engines/mohawk/dialogs.cpp:120 engines/mohawk/riven.cpp:718 +#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:600 msgid "Load game:" msgstr "Ladda spel:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 #: backends/platform/wince/CEActionsPocket.cpp:267 #: backends/platform/wince/CEActionsSmartphone.cpp:231 -#: engines/cruise/menu.cpp:214 engines/mohawk/riven.cpp:718 -#: engines/parallaction/saveload.cpp:197 engines/pegasus/pegasus.cpp:353 -#: engines/scumm/dialogs.cpp:189 engines/tsage/scenes.cpp:600 +#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:120 +#: engines/mohawk/riven.cpp:718 engines/parallaction/saveload.cpp:197 +#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:189 +#: engines/tsage/scenes.cpp:600 msgid "Load" msgstr "Ladda" @@ -691,132 +693,132 @@ msgstr "Växla till spelet" msgid "Fast replay" msgstr "Snabb uppspelning" -#: gui/options.cpp:85 +#: gui/options.cpp:87 common/updates.cpp:56 msgid "Never" msgstr "Aldrig" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 5 mins" msgstr "var 5:e minut" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 10 mins" msgstr "var 10:e minut" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 15 mins" msgstr "var 15:e minut" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 30 mins" msgstr "var 30:e minut" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "8 kHz" msgstr "8 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "11 kHz" msgstr "11 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "22 kHz" msgstr "22 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "44 kHz" msgstr "44 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "48 kHz" msgstr "48 kHz" -#: gui/options.cpp:255 gui/options.cpp:479 gui/options.cpp:580 -#: gui/options.cpp:649 gui/options.cpp:857 +#: gui/options.cpp:257 gui/options.cpp:481 gui/options.cpp:582 +#: gui/options.cpp:651 gui/options.cpp:859 msgctxt "soundfont" msgid "None" msgstr "Ingen" -#: gui/options.cpp:389 +#: gui/options.cpp:391 msgid "Failed to apply some of the graphic options changes:" msgstr "Kunde inte verkställa några av grafikinställningarna:" -#: gui/options.cpp:401 +#: gui/options.cpp:403 msgid "the video mode could not be changed." msgstr "videoläget kunde inte ändras." -#: gui/options.cpp:407 +#: gui/options.cpp:409 msgid "the fullscreen setting could not be changed" msgstr "fullskärmsinställningen kunde inte ändras." -#: gui/options.cpp:413 +#: gui/options.cpp:415 msgid "the aspect ratio setting could not be changed" msgstr "inställningen för bildförhållandet kunde inte ändras." -#: gui/options.cpp:732 +#: gui/options.cpp:734 msgid "Graphics mode:" msgstr "Grafikläge:" -#: gui/options.cpp:746 +#: gui/options.cpp:748 msgid "Render mode:" msgstr "Renderingsläge:" -#: gui/options.cpp:746 gui/options.cpp:747 +#: gui/options.cpp:748 gui/options.cpp:749 msgid "Special dithering modes supported by some games" msgstr "Speciella gitterlägen stödda av vissa spel" -#: gui/options.cpp:758 +#: gui/options.cpp:760 #: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2316 msgid "Fullscreen mode" msgstr "Fullskärmsläge" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Aspect ratio correction" msgstr "Korrektion av bildförhållande" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Correct aspect ratio for 320x200 games" msgstr "Korrigerar bildförhållanden för 320x200-spel" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Preferred Device:" msgstr "Föredragen enhet:" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Music Device:" msgstr "Musikenhet:" -#: gui/options.cpp:769 gui/options.cpp:771 +#: gui/options.cpp:771 gui/options.cpp:773 msgid "Specifies preferred sound device or sound card emulator" msgstr "Bestämmer din föredragna emulator för ljudenhet eller ljudkort" -#: gui/options.cpp:769 gui/options.cpp:771 gui/options.cpp:772 +#: gui/options.cpp:771 gui/options.cpp:773 gui/options.cpp:774 msgid "Specifies output sound device or sound card emulator" msgstr "Bestämmer emulator för ljudenhet eller ljudkort" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Preferred Dev.:" msgstr "Föredr. enhet:" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Music Device:" msgstr "Musikenhet:" -#: gui/options.cpp:798 +#: gui/options.cpp:800 msgid "AdLib emulator:" msgstr "AdLib-emulator:" -#: gui/options.cpp:798 gui/options.cpp:799 +#: gui/options.cpp:800 gui/options.cpp:801 msgid "AdLib is used for music in many games" msgstr "AdLib används för musik i många spel" -#: gui/options.cpp:809 +#: gui/options.cpp:811 msgid "Output rate:" msgstr "Ljudfrekvens:" -#: gui/options.cpp:809 gui/options.cpp:810 +#: gui/options.cpp:811 gui/options.cpp:812 msgid "" "Higher value specifies better sound quality but may be not supported by your " "soundcard" @@ -824,65 +826,65 @@ msgstr "" "Ett högre värde betecknar bättre ljudkvalitet men stöds kanske inte av ditt " "ljudkort" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "GM Device:" msgstr "GM-enhet:" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "Specifies default sound device for General MIDI output" msgstr "Bestämmer standardenheten för General MIDI-uppspelning" -#: gui/options.cpp:831 +#: gui/options.cpp:833 msgid "Don't use General MIDI music" msgstr "Använd inte General MIDI-musik" -#: gui/options.cpp:842 gui/options.cpp:908 +#: gui/options.cpp:844 gui/options.cpp:910 msgid "Use first available device" msgstr "Använd första tillgängliga enhet" -#: gui/options.cpp:854 +#: gui/options.cpp:856 msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:854 gui/options.cpp:856 gui/options.cpp:857 +#: 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 stöds endast av vissa ljudkort, FluidSynth och Timidity" -#: gui/options.cpp:856 +#: gui/options.cpp:858 msgctxt "lowres" msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Mixed AdLib/MIDI mode" msgstr "Blandat AdLib/MIDI-läge" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Use both MIDI and AdLib sound generation" msgstr "Använd både MIDI och AdLib för ljudgeneration" -#: gui/options.cpp:865 +#: gui/options.cpp:867 msgid "MIDI gain:" msgstr "MIDI gain:" -#: gui/options.cpp:872 +#: gui/options.cpp:874 msgid "FluidSynth Settings" msgstr "FluidSynth inställningar" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "MT-32 Device:" msgstr "MT-32 enhet:" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output" msgstr "" "Bestämmer standardenheten för Roland MT-32/LAPC1/CM32I/CM64-uppspelning" -#: gui/options.cpp:884 +#: gui/options.cpp:886 msgid "True Roland MT-32 (disable GM emulation)" msgstr "Äkta Roland MT-32 (inaktivera GM-emulation)" -#: gui/options.cpp:884 gui/options.cpp:886 +#: gui/options.cpp:886 gui/options.cpp:888 msgid "" "Check if you want to use your real hardware Roland-compatible sound device " "connected to your computer" @@ -890,16 +892,16 @@ msgstr "" "Aktivera om du vill använda din verkliga Roland-kompatibla och dator-" "anslutna ljudenhet" -#: gui/options.cpp:886 +#: gui/options.cpp:888 msgctxt "lowres" msgid "True Roland MT-32 (no GM emulation)" msgstr "Äkta Roland MT-32 (ingen GM-emulation)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "Roland GS Device (enable MT-32 mappings)" msgstr "Roland GS-enhet (aktivera MT-32 mappings)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "" "Check if you want to enable patch mappings to emulate an MT-32 on a Roland " "GS device" @@ -907,171 +909,183 @@ msgstr "" "Aktivera om du vill använda patch mapping för att emulera en MT-32 på en " "Roland GS-enhet" -#: gui/options.cpp:898 +#: gui/options.cpp:900 msgid "Don't use Roland MT-32 music" msgstr "Använd inte Roland MT-32 musik" -#: gui/options.cpp:925 +#: gui/options.cpp:927 msgid "Text and Speech:" msgstr "Undertext och tal:" -#: gui/options.cpp:929 gui/options.cpp:939 +#: gui/options.cpp:931 gui/options.cpp:941 msgid "Speech" msgstr "Tal" -#: gui/options.cpp:930 gui/options.cpp:940 +#: gui/options.cpp:932 gui/options.cpp:942 msgid "Subtitles" msgstr "Undertexter" -#: gui/options.cpp:931 +#: gui/options.cpp:933 msgid "Both" msgstr "Båda" -#: gui/options.cpp:933 +#: gui/options.cpp:935 msgid "Subtitle speed:" msgstr "Texthastighet:" -#: gui/options.cpp:935 +#: gui/options.cpp:937 msgctxt "lowres" msgid "Text and Speech:" msgstr "Text och tal:" -#: gui/options.cpp:939 +#: gui/options.cpp:941 msgid "Spch" msgstr "Tal" -#: gui/options.cpp:940 +#: gui/options.cpp:942 msgid "Subs" msgstr "Text" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgctxt "lowres" msgid "Both" msgstr "Båda" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgid "Show subtitles and play speech" msgstr "Visa undertexter och spela upp tal" -#: gui/options.cpp:943 +#: gui/options.cpp:945 msgctxt "lowres" msgid "Subtitle speed:" msgstr "Texthastighet:" -#: gui/options.cpp:959 +#: gui/options.cpp:961 msgid "Music volume:" msgstr "Musikvolym:" -#: gui/options.cpp:961 +#: gui/options.cpp:963 msgctxt "lowres" msgid "Music volume:" msgstr "Musikvolym:" -#: gui/options.cpp:968 +#: gui/options.cpp:970 msgid "Mute All" msgstr "Ljud av" -#: gui/options.cpp:971 +#: gui/options.cpp:973 msgid "SFX volume:" msgstr "SFX-volym:" -#: gui/options.cpp:971 gui/options.cpp:973 gui/options.cpp:974 +#: gui/options.cpp:973 gui/options.cpp:975 gui/options.cpp:976 msgid "Special sound effects volume" msgstr "Volym för specialeffekter" -#: gui/options.cpp:973 +#: gui/options.cpp:975 msgctxt "lowres" msgid "SFX volume:" msgstr "SFX-volym:" -#: gui/options.cpp:981 +#: gui/options.cpp:983 msgid "Speech volume:" msgstr "Talvolym:" -#: gui/options.cpp:983 +#: gui/options.cpp:985 msgctxt "lowres" msgid "Speech volume:" msgstr "Talvolym:" -#: gui/options.cpp:1140 +#: gui/options.cpp:1142 msgid "Theme Path:" msgstr "Sökv. tema:" -#: gui/options.cpp:1142 +#: gui/options.cpp:1144 msgctxt "lowres" msgid "Theme Path:" msgstr "Sökv. tema:" -#: gui/options.cpp:1148 gui/options.cpp:1150 gui/options.cpp:1151 +#: gui/options.cpp:1150 gui/options.cpp:1152 gui/options.cpp:1153 msgid "Specifies path to additional data used by all games or ScummVM" msgstr "" "Bestämmer sökväg till andra data som används av alla spel eller ScummVM" -#: gui/options.cpp:1157 +#: gui/options.cpp:1159 msgid "Plugins Path:" msgstr "Sökv. tillägg:" -#: gui/options.cpp:1159 +#: gui/options.cpp:1161 msgctxt "lowres" msgid "Plugins Path:" msgstr "Sökv. tillägg:" -#: gui/options.cpp:1170 +#: gui/options.cpp:1172 msgctxt "lowres" msgid "Misc" msgstr "Diverse" -#: gui/options.cpp:1172 +#: gui/options.cpp:1174 msgid "Theme:" msgstr "Tema:" -#: gui/options.cpp:1176 +#: gui/options.cpp:1178 msgid "GUI Renderer:" msgstr "GUI-rendering:" -#: gui/options.cpp:1188 +#: gui/options.cpp:1190 msgid "Autosave:" msgstr "Autospara:" -#: gui/options.cpp:1190 +#: gui/options.cpp:1192 msgctxt "lowres" msgid "Autosave:" msgstr "Autospara:" -#: gui/options.cpp:1198 +#: gui/options.cpp:1200 msgid "Keys" msgstr "Tangenter" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "GUI Language:" msgstr "GUI-språk:" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "Language of ScummVM GUI" msgstr "Språk för ScummVM:s användargränssnitt" -#: gui/options.cpp:1364 +#: gui/options.cpp:1235 +msgid "Update check:" +msgstr "" + +#: gui/options.cpp:1235 +msgid "How often to check ScummVM updates" +msgstr "" + +#: gui/options.cpp:1247 +msgid "Check now" +msgstr "" + +#: gui/options.cpp:1382 msgid "You have to restart ScummVM before your changes will take effect." msgstr "Du måste starta om ScummVM för att ändringarna ska få effekt." -#: gui/options.cpp:1384 +#: gui/options.cpp:1415 msgid "The chosen directory cannot be written to. Please select another one." msgstr "" "Det går inte att skriva till den valda katalogen. Var god välj en annan." -#: gui/options.cpp:1393 +#: gui/options.cpp:1424 msgid "Select directory for GUI themes" msgstr "Välj katalog för GUI-teman" -#: gui/options.cpp:1403 +#: gui/options.cpp:1434 msgid "Select directory for extra files" msgstr "Välj katalog för extra filer" -#: gui/options.cpp:1414 +#: gui/options.cpp:1445 msgid "Select directory for plugins" msgstr "Välj katalog för tillägg" -#: gui/options.cpp:1467 +#: gui/options.cpp:1498 msgid "" "The theme you selected does not support your current language. If you want " "to use this theme you need to switch to another language first." @@ -1244,39 +1258,60 @@ msgstr "Antialiserad rendering" msgid "Antialiased" msgstr "Antialiserad" -#: gui/widget.cpp:323 gui/widget.cpp:325 gui/widget.cpp:331 gui/widget.cpp:333 +#: gui/updates-dialog.cpp:51 +msgid "" +"ScummVM now supports automatic check for updates\n" +"which requires access to the Internet.\n" +"\n" +"Would you like to enable this feature?" +msgstr "" + +#: gui/updates-dialog.cpp:55 +msgid "(You can always enable it in the options dialog on the Misc tab)" +msgstr "" + +#: gui/updates-dialog.cpp:92 +#, fuzzy +msgid "Check for updates automatically" +msgstr "Sök efter uppdateringar..." + +#: gui/updates-dialog.cpp:111 +msgid "Proceed" +msgstr "" + +#: gui/widget.cpp:327 gui/widget.cpp:329 gui/widget.cpp:335 gui/widget.cpp:337 msgid "Clear value" msgstr "Töm sökfältet" -#: base/main.cpp:237 +#: base/main.cpp:240 #, c-format msgid "Engine does not support debug level '%s'" msgstr "Motorn stöder inte debug-nivå '%s'" -#: base/main.cpp:309 +#: base/main.cpp:312 msgid "Menu" msgstr "Meny" -#: base/main.cpp:312 backends/platform/symbian/src/SymbianActions.cpp:45 +#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:45 #: backends/platform/wince/CEActionsPocket.cpp:45 #: backends/platform/wince/CEActionsSmartphone.cpp:46 msgid "Skip" msgstr "Skippa" -#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:50 +#: base/main.cpp:318 backends/platform/symbian/src/SymbianActions.cpp:50 #: backends/platform/wince/CEActionsPocket.cpp:42 msgid "Pause" msgstr "Paus" -#: base/main.cpp:318 +#: base/main.cpp:321 msgid "Skip line" msgstr "Skippa rad" -#: base/main.cpp:510 +#: base/main.cpp:520 msgid "Error running game:" msgstr "Fel under körning av spel:" -#: base/main.cpp:557 +#: base/main.cpp:567 msgid "Could not find any engine capable of running the selected game" msgstr "Kunde inte hitta en motor kapabel till att köra det valda spelet" @@ -1371,17 +1406,34 @@ msgctxt "lowres" msgid "Hercules Amber" msgstr "Herkules bärnsten" -#: engines/advancedDetector.cpp:317 +#: common/updates.cpp:58 +msgid "Daily" +msgstr "" + +#: common/updates.cpp:60 +msgid "Weekly" +msgstr "" + +#: common/updates.cpp:62 +msgid "Monthly" +msgstr "" + +#: common/updates.cpp:64 +#, fuzzy +msgid "<Bad value>" +msgstr "Töm sökfältet" + +#: engines/advancedDetector.cpp:334 #, c-format msgid "The game in '%s' seems to be unknown." msgstr "Spelet i '%s' verkar vara okänt." -#: engines/advancedDetector.cpp:318 +#: engines/advancedDetector.cpp:335 msgid "Please, report the following data to the ScummVM team along with name" msgstr "" "Var god rapportera följande data till ScummVM-teamet tillsammans med namnet" -#: engines/advancedDetector.cpp:320 +#: engines/advancedDetector.cpp:337 msgid "of the game you tried to add and its version/language/etc.:" msgstr "på spelet du försökte lägga till och dess version/språk/etc.:" @@ -1389,11 +1441,11 @@ msgstr "på spelet du försökte lägga till och dess version/språk/etc.:" msgid "~R~esume" msgstr "~F~ortsätt" -#: engines/dialogs.cpp:87 +#: engines/dialogs.cpp:87 engines/mohawk/dialogs.cpp:113 msgid "~L~oad" msgstr "~L~adda" -#: engines/dialogs.cpp:91 +#: engines/dialogs.cpp:91 engines/mohawk/dialogs.cpp:114 msgid "~S~ave" msgstr "~S~para" @@ -1422,9 +1474,9 @@ msgstr "Åte~r~vänd till launcher" #: engines/avalanche/parser.cpp:1899 engines/cge/events.cpp:74 #: engines/cge2/events.cpp:67 engines/cruise/menu.cpp:212 #: engines/drascula/saveload.cpp:336 engines/dreamweb/saveload.cpp:261 -#: engines/hugo/file.cpp:298 engines/neverhood/menumodule.cpp:877 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/hugo/file.cpp:298 engines/mohawk/dialogs.cpp:121 +#: engines/neverhood/menumodule.cpp:877 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save game:" @@ -1439,9 +1491,10 @@ msgstr "Spara spelet:" #: engines/cge/events.cpp:74 engines/cge2/events.cpp:67 #: engines/cruise/menu.cpp:212 engines/drascula/saveload.cpp:336 #: engines/dreamweb/saveload.cpp:261 engines/hugo/file.cpp:298 -#: engines/neverhood/menumodule.cpp:877 engines/parallaction/saveload.cpp:212 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/scumm/dialogs.cpp:188 engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/mohawk/dialogs.cpp:121 engines/neverhood/menumodule.cpp:877 +#: engines/parallaction/saveload.cpp:212 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/scumm/dialogs.cpp:188 +#: engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save" @@ -1466,13 +1519,13 @@ msgstr "" "Kunde inte spara data (%s)! Var god läs README-filen för grundläggande " "information och instruktioner för hur du kan få mer hjälp." -#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:109 -#: engines/mohawk/dialogs.cpp:170 engines/tsage/dialogs.cpp:106 +#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:117 +#: engines/mohawk/dialogs.cpp:242 engines/tsage/dialogs.cpp:106 msgid "~O~K" msgstr "~O~K" -#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:110 -#: engines/mohawk/dialogs.cpp:171 engines/tsage/dialogs.cpp:107 +#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:118 +#: engines/mohawk/dialogs.cpp:243 engines/tsage/dialogs.cpp:107 msgid "~C~ancel" msgstr "A~v~bryt" @@ -1628,11 +1681,11 @@ msgstr "FM Towns-ljud" msgid "PC-98 Audio" msgstr "PC-98 ljud" -#: audio/softsynth/mt32.cpp:200 +#: audio/softsynth/mt32.cpp:196 msgid "Initializing MT-32 Emulator" msgstr "Initialiserar MT-32 emulator" -#: audio/softsynth/mt32.cpp:426 +#: audio/softsynth/mt32.cpp:434 msgid "MT-32 Emulator" msgstr "MT-32 emulator" @@ -1749,11 +1802,11 @@ msgstr "Automatiskt dragläge " msgid "Swipe three fingers to the right to toggle." msgstr "Svep åt höger med tre fingrar för att byta läge." -#: backends/graphics/opengl/opengl-graphics.cpp:119 +#: backends/graphics/opengl/opengl-graphics.cpp:126 msgid "OpenGL" msgstr "OpenGL" -#: backends/graphics/opengl/opengl-graphics.cpp:120 +#: backends/graphics/opengl/opengl-graphics.cpp:127 msgid "OpenGL (No filtering)" msgstr "OpenGL (ingen filtrering)" @@ -2306,20 +2359,20 @@ msgstr "" "Glöm inte att välja en tangent för \"Göm verktygsrad\" för att se hela " "inventariet" -#: backends/updates/macosx/macosx-updates.mm:67 +#: backends/updates/macosx/macosx-updates.mm:68 msgid "Check for Updates..." msgstr "Sök efter uppdateringar..." #: engines/agi/detection.cpp:147 engines/cine/detection.cpp:70 #: engines/drascula/detection.cpp:302 engines/dreamweb/detection.cpp:47 -#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:404 +#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:410 #: engines/toltecs/detection.cpp:200 engines/zvision/detection_tables.h:51 msgid "Use original save/load screens" msgstr "Använd originalskärmar för spara/ladda" #: engines/agi/detection.cpp:148 engines/cine/detection.cpp:71 #: engines/drascula/detection.cpp:303 engines/dreamweb/detection.cpp:48 -#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:405 +#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:411 #: engines/toltecs/detection.cpp:201 msgid "Use the original save/load screens, instead of the ScummVM ones" msgstr "Använder originalskärmarna för spara/ladda istället för ScummVM:s" @@ -2347,11 +2400,30 @@ msgstr "" "Aktiverar musstöd. Möjliggör användning av musen för rörelser och i " "spelmenyer." +#: engines/agi/detection.cpp:177 +#, fuzzy +msgid "Use Hercules hires font" +msgstr "Herkules grön" + +#: engines/agi/detection.cpp:178 +msgid "Uses Hercules hires font, when font file is available." +msgstr "" + +#: engines/agi/detection.cpp:187 +msgid "Pause when entering commands" +msgstr "" + +#: engines/agi/detection.cpp:188 +msgid "" +"Shows a command prompt window and pauses the game (like in SCI) instead of a " +"real-time prompt." +msgstr "" + #: engines/agi/saveload.cpp:777 engines/avalanche/parser.cpp:1887 #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore game:" @@ -2361,13 +2433,13 @@ msgstr "Återställ spel:" #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore" msgstr "Återställ" -#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2377 +#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2374 #, c-format msgid "" "Failed to load game state from file:\n" @@ -2378,7 +2450,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2370 +#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2367 #, c-format msgid "" "Failed to save game state to file:\n" @@ -2389,7 +2461,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2388 +#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2385 #, c-format msgid "" "Successfully saved game state in file:\n" @@ -2636,29 +2708,39 @@ msgstr "" "och använda kommandot 'import_savefile'.\n" "\n" +#: engines/mohawk/detection.cpp:168 +msgid "Play the Myst fly by movie" +msgstr "" + +#: engines/mohawk/detection.cpp:169 +msgid "The Myst fly by movie was not played by the original engine." +msgstr "" + #. I18N: Option for fast scene switching -#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:167 +#: engines/mohawk/dialogs.cpp:96 engines/mohawk/dialogs.cpp:239 msgid "~Z~ip Mode Activated" msgstr "~Z~ipläge aktiverat" -#: engines/mohawk/dialogs.cpp:93 +#: engines/mohawk/dialogs.cpp:97 msgid "~T~ransitions Enabled" msgstr "Öv~e~rgångar aktiverade" #. I18N: Drop book page -#: engines/mohawk/dialogs.cpp:95 +#: engines/mohawk/dialogs.cpp:99 msgid "~D~rop Page" msgstr "Släpp si~d~a" -#: engines/mohawk/dialogs.cpp:99 -msgid "~S~how Map" +#: engines/mohawk/dialogs.cpp:103 +#, fuzzy +msgid "Show ~M~ap" msgstr "~V~isa karta" -#: engines/mohawk/dialogs.cpp:105 -msgid "~M~ain Menu" +#: engines/mohawk/dialogs.cpp:109 +#, fuzzy +msgid "Main Men~u~" msgstr "Huvud~m~eny" -#: engines/mohawk/dialogs.cpp:168 +#: engines/mohawk/dialogs.cpp:240 msgid "~W~ater Effect Enabled" msgstr "~V~atteneffekt aktiverad" @@ -2782,35 +2864,35 @@ msgstr "Alternativt intro" msgid "Use an alternative game intro (CD version only)" msgstr "Använd alternativt spelintro (endast CD-version)" -#: engines/sci/detection.cpp:374 +#: engines/sci/detection.cpp:380 msgid "Skip EGA dithering pass (full color backgrounds)" msgstr "Skippa EGA-gitterpass (bakgrunder i full färg)" -#: engines/sci/detection.cpp:375 +#: engines/sci/detection.cpp:381 msgid "Skip dithering pass in EGA games, graphics are shown with full colors" msgstr "Skippa gitterpass i EGA-spel. Grafik visas i full färg." -#: engines/sci/detection.cpp:384 +#: engines/sci/detection.cpp:390 msgid "Enable high resolution graphics" msgstr "Aktivera högupplöst grafik" -#: engines/sci/detection.cpp:385 +#: engines/sci/detection.cpp:391 msgid "Enable high resolution graphics/content" msgstr "Aktivera högupplöst grafik/innehåll" -#: engines/sci/detection.cpp:394 +#: engines/sci/detection.cpp:400 msgid "Prefer digital sound effects" msgstr "Föredra digitala ljudeffekter" -#: engines/sci/detection.cpp:395 +#: engines/sci/detection.cpp:401 msgid "Prefer digital sound effects instead of synthesized ones" msgstr "Föredra digitala ljudeffekter istället för syntetiserade" -#: engines/sci/detection.cpp:414 +#: engines/sci/detection.cpp:420 msgid "Use IMF/Yamaha FB-01 for MIDI output" msgstr "Använd IMF/Yamaha FB-01 för MIDI-uppspelning" -#: engines/sci/detection.cpp:415 +#: engines/sci/detection.cpp:421 msgid "" "Use an IBM Music Feature card or a Yamaha FB-01 FM synth module for MIDI " "output" @@ -2818,34 +2900,43 @@ msgstr "" "Använd ett IMB Music Feature-kort eller en Yamaha FB-01 FM synthmodul för " "MIDI-uppspelning" -#: engines/sci/detection.cpp:425 +#: engines/sci/detection.cpp:431 msgid "Use CD audio" msgstr "Använd CD-ljud" -#: engines/sci/detection.cpp:426 +#: engines/sci/detection.cpp:432 msgid "Use CD audio instead of in-game audio, if available" msgstr "Använd CD-ljud istället för spelets ljud, om tillgängligt" -#: engines/sci/detection.cpp:436 +#: engines/sci/detection.cpp:442 msgid "Use Windows cursors" msgstr "Använd Windows muspekare" -#: engines/sci/detection.cpp:437 +#: engines/sci/detection.cpp:443 msgid "" "Use the Windows cursors (smaller and monochrome) instead of the DOS ones" msgstr "" "Använd Windows muspekare (mindre och svartvit) istället för DOS-pekaren" -#: engines/sci/detection.cpp:447 +#: engines/sci/detection.cpp:453 msgid "Use silver cursors" msgstr "Använd silverpekare" -#: engines/sci/detection.cpp:448 +#: engines/sci/detection.cpp:454 msgid "" "Use the alternate set of silver cursors, instead of the normal golden ones" msgstr "" "Använd de alternativa silverpekarna istället för de normala guldpekarna" +#: engines/scumm/detection.cpp:1335 +#, fuzzy +msgid "Show Object Line" +msgstr "Visa etiketter" + +#: engines/scumm/detection.cpp:1336 +msgid "Show the names of objects at the bottom of the screen" +msgstr "" + #: engines/scumm/dialogs.cpp:176 #, c-format msgid "Insert Disk %c and Press Button to Continue." @@ -3511,7 +3602,7 @@ msgstr "Musikvolym: " msgid "Subtitle speed: " msgstr "Texthastighet: " -#: engines/scumm/scumm.cpp:1832 +#: engines/scumm/scumm.cpp:1829 #, c-format msgid "" "Native MIDI support requires the Roland Upgrade from LucasArts,\n" @@ -3520,7 +3611,7 @@ msgstr "" "Stöd för Native MIDI kräver Roland-uppdateringen från LucasArts,\n" "men %s saknas. Använder AdLib istället." -#: engines/scumm/scumm.cpp:2644 +#: engines/scumm/scumm.cpp:2645 msgid "" "Usually, Maniac Mansion would start now. But for that to work, the game " "files for Maniac Mansion have to be in the 'Maniac' directory inside the " @@ -3699,6 +3790,15 @@ msgstr "Visa etiketter" msgid "Show labels for objects on mouse hover" msgstr "Visar etiketter för objekten som musen pekar på" +#: engines/sword25/detection.cpp:46 +msgid "Use English speech" +msgstr "" + +#: engines/sword25/detection.cpp:47 +msgid "" +"Use English speech instead of German for every language other than German" +msgstr "" + #: engines/teenagent/resources.cpp:95 msgid "" "You're missing the 'teenagent.dat' file. Get it from the ScummVM website" diff --git a/po/uk_UA.po b/po/uk_UA.po index 5ab87a4155..5b4f3078ec 100644 --- a/po/uk_UA.po +++ b/po/uk_UA.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ScummVM 1.3.0svn\n" "Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n" -"POT-Creation-Date: 2016-02-20 21:22+0000\n" +"POT-Creation-Date: 2016-04-07 08:55+0100\n" "PO-Revision-Date: 2015-11-06 10:07+0300\n" "Last-Translator: Eugene Sandulenko <sev@scummvm.org>\n" "Language-Team: Ukrainian\n" @@ -56,10 +56,11 @@ msgstr "²ÓŽąć" #: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editrecorddialog.cpp:67 #: gui/filebrowser-dialog.cpp:64 gui/fluidsynth-dialog.cpp:152 #: gui/KeysDialog.cpp:43 gui/launcher.cpp:351 gui/massadd.cpp:95 -#: gui/options.cpp:1237 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 +#: gui/options.cpp:1255 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 #: gui/recorderdialog.cpp:156 gui/saveload-dialog.cpp:216 #: gui/saveload-dialog.cpp:276 gui/saveload-dialog.cpp:547 -#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 engines/engine.cpp:546 +#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 +#: gui/updates-dialog.cpp:113 engines/engine.cpp:546 #: backends/events/default/default-events.cpp:196 #: backends/events/default/default-events.cpp:218 #: backends/platform/wii/options.cpp:48 engines/drascula/saveload.cpp:49 @@ -173,7 +174,7 @@ msgstr "ĮŲŻćįŽ÷ŌŠ" msgid "Triangle" msgstr "ĀąŲŚćāŻŲŚ" -#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1168 +#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1170 msgid "Misc" msgstr "ĄöׯÕ" @@ -207,12 +208,12 @@ msgstr "ĮŚŲŻćāŲ Ņįö ŻŠŪŠčāćŅŠŻŻļ FluidSynth ŌŽ ÷å ׯŠēÕŻģ ׊ ׊܎ŅēÕŻŻļÜ" #: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:352 #: gui/launcher.cpp:1050 gui/launcher.cpp:1054 gui/massadd.cpp:92 -#: gui/options.cpp:1238 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 +#: gui/options.cpp:1256 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 #: engines/engine.cpp:476 backends/platform/wii/options.cpp:47 #: backends/platform/wince/CELauncherDialog.cpp:54 #: engines/agos/animation.cpp:558 engines/drascula/saveload.cpp:49 #: engines/groovie/script.cpp:408 engines/parallaction/saveload.cpp:274 -#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1834 +#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1831 #: engines/scumm/players/player_v3m.cpp:130 #: engines/scumm/players/player_v5m.cpp:108 engines/sky/compact.cpp:131 #: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:524 @@ -242,15 +243,15 @@ msgstr "·ŠŚąŲāŲ" msgid "Mouse click" msgstr "ŗŪöŚ ÜŲ茎ī" -#: gui/gui-manager.cpp:126 base/main.cpp:322 +#: gui/gui-manager.cpp:126 base/main.cpp:325 msgid "Display keyboard" msgstr "æŽŚŠ×ŠāŲ ŚŪŠŅöŠāćąć" -#: gui/gui-manager.cpp:130 base/main.cpp:326 +#: gui/gui-manager.cpp:130 base/main.cpp:329 msgid "Remap keys" msgstr "æÕąÕßąŲׯŠēŲāŲ ŚŪŠŅöčö" -#: gui/gui-manager.cpp:133 base/main.cpp:329 engines/scumm/help.cpp:87 +#: gui/gui-manager.cpp:133 base/main.cpp:332 engines/scumm/help.cpp:87 msgid "Toggle fullscreen" msgstr "æÕąÕÜŚŻćāŲ ߎŅŻŽÕŚąŠŻŻŲŁ ąÕÖŲÜ" @@ -326,8 +327,8 @@ msgstr "" "¼ŽŅŠ ÓąŲ. ·ÜöŻŠ ęģŽÓŽ ŻŠŪŠčāćŅŠŻŻļ ŻÕ ßÕąÕāŅŽąŲāģ Óąć ŠŻÓŪöŁįģŚŽī ŻŠ " "挹Š÷ŻįģŚć" -#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:87 -#: gui/options.cpp:735 gui/options.cpp:748 gui/options.cpp:1208 +#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:89 +#: gui/options.cpp:737 gui/options.cpp:750 gui/options.cpp:1210 #: audio/null.cpp:41 msgid "<default>" msgstr "<׊ ćÜŽŅēŠŻŻļÜ>" @@ -349,11 +350,11 @@ msgstr "æŪŠā䎹܊:" msgid "Engine" msgstr "“ŅŲÖŽŚ" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "Graphics" msgstr "³ąŠäöŚŠ" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "GFX" msgstr "³ąä" @@ -366,7 +367,7 @@ msgctxt "lowres" msgid "Override global graphic settings" msgstr "æÕąÕŚąŲāŲ ÓŪŽŃŠŪģŻö ćįāŠŻŽŅŚŲ ÓąŠäöŚŲ" -#: gui/launcher.cpp:257 gui/options.cpp:1094 +#: gui/launcher.cpp:257 gui/options.cpp:1096 msgid "Audio" msgstr "°ćŌöŽ" @@ -379,11 +380,11 @@ msgctxt "lowres" msgid "Override global audio settings" msgstr "æÕąÕŚąŲāŲ ÓŪŽŃŠŪģŻö ćįāŠŻŽŅŚŲ ŠćŌöŽ" -#: gui/launcher.cpp:271 gui/options.cpp:1099 +#: gui/launcher.cpp:271 gui/options.cpp:1101 msgid "Volume" msgstr "³ćēŻöįāģ" -#: gui/launcher.cpp:273 gui/options.cpp:1101 +#: gui/launcher.cpp:273 gui/options.cpp:1103 msgctxt "lowres" msgid "Volume" msgstr "³ćēŻ." @@ -397,7 +398,7 @@ msgctxt "lowres" msgid "Override global volume settings" msgstr "æÕąÕŚąŲāŲ ÓŪŽŃŠŪģŻö ćįāŠŻŽŅŚŲ ÓćēŻŽįāö" -#: gui/launcher.cpp:286 gui/options.cpp:1109 +#: gui/launcher.cpp:286 gui/options.cpp:1111 msgid "MIDI" msgstr "MIDI" @@ -410,7 +411,7 @@ msgctxt "lowres" msgid "Override global MIDI settings" msgstr "æÕąÕŚąŲāŲ ÓŪŽŃŠŪģŻö ćįāŠŻŽŅŚŲ MIDI" -#: gui/launcher.cpp:300 gui/options.cpp:1115 +#: gui/launcher.cpp:300 gui/options.cpp:1117 msgid "MT-32" msgstr "MT-32" @@ -423,11 +424,11 @@ msgctxt "lowres" msgid "Override global MT-32 settings" msgstr "æÕąÕŚąŲāŲ ÓŪŽŃŠŪģŻö ćįāŠŻŽŅŚŲ MT-32" -#: gui/launcher.cpp:314 gui/options.cpp:1122 +#: gui/launcher.cpp:314 gui/options.cpp:1124 msgid "Paths" msgstr "ČŪļåŲ" -#: gui/launcher.cpp:316 gui/options.cpp:1124 +#: gui/launcher.cpp:316 gui/options.cpp:1126 msgctxt "lowres" msgid "Paths" msgstr "ČŪļåŲ" @@ -441,7 +442,7 @@ msgctxt "lowres" msgid "Game Path:" msgstr "ČŪļå ŌŽ ÓąŲ:" -#: gui/launcher.cpp:330 gui/options.cpp:1148 +#: gui/launcher.cpp:330 gui/options.cpp:1150 msgid "Extra Path:" msgstr "“ŽŌŠāŚ. čŪļå:" @@ -449,42 +450,42 @@ msgstr "“ŽŌŠāŚ. čŪļå:" msgid "Specifies path to additional data used by the game" msgstr "²ŚŠ×ćō čŪļå ŌŽ ŌŽŌŠāŚŽŅŲå 䊣ŪöŅ ŌŠŻŲå ŌŪļ ÓąŲ" -#: gui/launcher.cpp:332 gui/options.cpp:1150 +#: gui/launcher.cpp:332 gui/options.cpp:1152 msgctxt "lowres" msgid "Extra Path:" msgstr "“ŽŌ. čŪļå:" -#: gui/launcher.cpp:339 gui/options.cpp:1132 +#: gui/launcher.cpp:339 gui/options.cpp:1134 msgid "Save Path:" msgstr "ČŪļå ×ŃÕą.:" #: gui/launcher.cpp:339 gui/launcher.cpp:341 gui/launcher.cpp:342 -#: gui/options.cpp:1132 gui/options.cpp:1134 gui/options.cpp:1135 +#: gui/options.cpp:1134 gui/options.cpp:1136 gui/options.cpp:1137 msgid "Specifies where your saved games are put" msgstr "²ŚŠ×ćō čŪļå ŌŽ ×ŃÕąÕÖÕŻģ ÓąŲ" -#: gui/launcher.cpp:341 gui/options.cpp:1134 +#: gui/launcher.cpp:341 gui/options.cpp:1136 msgctxt "lowres" msgid "Save Path:" msgstr "ČŪļå ×ŃÕą.:" #: gui/launcher.cpp:360 gui/launcher.cpp:459 gui/launcher.cpp:517 -#: gui/launcher.cpp:571 gui/options.cpp:1143 gui/options.cpp:1151 -#: gui/options.cpp:1160 gui/options.cpp:1275 gui/options.cpp:1281 -#: gui/options.cpp:1289 gui/options.cpp:1319 gui/options.cpp:1325 -#: gui/options.cpp:1332 gui/options.cpp:1425 gui/options.cpp:1428 -#: gui/options.cpp:1440 +#: gui/launcher.cpp:571 gui/options.cpp:1145 gui/options.cpp:1153 +#: gui/options.cpp:1162 gui/options.cpp:1293 gui/options.cpp:1299 +#: gui/options.cpp:1307 gui/options.cpp:1337 gui/options.cpp:1343 +#: gui/options.cpp:1350 gui/options.cpp:1456 gui/options.cpp:1459 +#: gui/options.cpp:1471 msgctxt "path" msgid "None" msgstr "½Õ ׊ŅŌŠŻŲŁ" #: gui/launcher.cpp:365 gui/launcher.cpp:465 gui/launcher.cpp:575 -#: gui/options.cpp:1269 gui/options.cpp:1313 gui/options.cpp:1431 +#: gui/options.cpp:1287 gui/options.cpp:1331 gui/options.cpp:1462 #: backends/platform/wii/options.cpp:56 msgid "Default" msgstr "·Š ćÜŽŅēŠŻŻļÜ" -#: gui/launcher.cpp:510 gui/options.cpp:1434 +#: gui/launcher.cpp:510 gui/options.cpp:1465 msgid "Select SoundFont" msgstr "²ŲŃÕąöāģ SoundFont" @@ -496,7 +497,7 @@ msgstr "²ŲŃÕąöāģ ߊߌć × äŠŁŪŠÜŲ ÓąŲ" msgid "Select additional game directory" msgstr "²ŲŃÕąöāģ ŌŽŌŠāŚŽŅć ߊߌć ÓąŲ" -#: gui/launcher.cpp:559 gui/options.cpp:1377 +#: gui/launcher.cpp:559 gui/options.cpp:1408 msgid "Select directory for saved games" msgstr "²ŲŃÕąöāģ ߊߌć ŌŪļ ×ŃÕąÕÖÕŻģ" @@ -504,7 +505,7 @@ msgstr "²ŲŃÕąöāģ ߊߌć ŌŪļ ×ŃÕąÕÖÕŻģ" msgid "This game ID is already taken. Please choose another one." msgstr "ĘÕŁ ID ÓąŲ ŅÖÕ ŅŲŚŽąŲįāŽŅćōāģįļ. ±ćŌģ ŪŠįŚŠ, ŅŲŃÕąöāģ öŻčŲŁ." -#: gui/launcher.cpp:626 engines/dialogs.cpp:111 +#: gui/launcher.cpp:626 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:115 msgid "~Q~uit" msgstr "~²~ŲåöŌ" @@ -592,17 +593,18 @@ msgid "Search:" msgstr "æŽčćŚ:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214 -#: engines/mohawk/riven.cpp:718 engines/pegasus/pegasus.cpp:353 -#: engines/tsage/scenes.cpp:600 +#: engines/mohawk/dialogs.cpp:120 engines/mohawk/riven.cpp:718 +#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:600 msgid "Load game:" msgstr "·ŠŅŠŻāŠÖŲāŲ Óąć:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 #: backends/platform/wince/CEActionsPocket.cpp:267 #: backends/platform/wince/CEActionsSmartphone.cpp:231 -#: engines/cruise/menu.cpp:214 engines/mohawk/riven.cpp:718 -#: engines/parallaction/saveload.cpp:197 engines/pegasus/pegasus.cpp:353 -#: engines/scumm/dialogs.cpp:189 engines/tsage/scenes.cpp:600 +#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:120 +#: engines/mohawk/riven.cpp:718 engines/parallaction/saveload.cpp:197 +#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:189 +#: engines/tsage/scenes.cpp:600 msgid "Load" msgstr "·ŠŅŠŻāŠÖŲāŲ" @@ -689,132 +691,132 @@ msgstr "æÕąÕŚŪīēŲāŲįļ ŻŠ Óąć" msgid "Fast replay" msgstr "ČŅŲŌŚÕ ŅöŌāŅŽąÕŻŻļ" -#: gui/options.cpp:85 +#: gui/options.cpp:87 common/updates.cpp:56 msgid "Never" msgstr "½öŚŽŪŲ" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 5 mins" msgstr "ŚŽÖŻö 5 åŅ" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 10 mins" msgstr "ŚŽÖŻö 10 åŅ" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 15 mins" msgstr "ŚŽÖŻö 15 åŅ" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 30 mins" msgstr "ŚŽÖŻö 30 åŅ" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "8 kHz" msgstr "8 Ś³ę" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "11 kHz" msgstr "11 Ś³ę" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "22 kHz" msgstr "22 Ś³ę" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "44 kHz" msgstr "44 Ś³ę" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "48 kHz" msgstr "48 Ś³ę" -#: gui/options.cpp:255 gui/options.cpp:479 gui/options.cpp:580 -#: gui/options.cpp:649 gui/options.cpp:857 +#: gui/options.cpp:257 gui/options.cpp:481 gui/options.cpp:582 +#: gui/options.cpp:651 gui/options.cpp:859 msgctxt "soundfont" msgid "None" msgstr "½Õ ׊ŌŠŻŲŁ" -#: gui/options.cpp:389 +#: gui/options.cpp:391 msgid "Failed to apply some of the graphic options changes:" msgstr "½Õ ŅŌŠŪŽįļ ׊įāŽįćŅŠāŲ ŌÕļŚö ×ö ×ÜöŻ ÓąŠäöēŻŲå ŻŠŪŠčāćŅŠŻģ:" -#: gui/options.cpp:401 +#: gui/options.cpp:403 msgid "the video mode could not be changed." msgstr "ŻÕ ŅŌŠŪŽįļ ×ÜöŻŲāŲ ÓąŠäöēŻŲŁ ąÕÖŲÜ." -#: gui/options.cpp:407 +#: gui/options.cpp:409 msgid "the fullscreen setting could not be changed" msgstr "ŻÕ ŅŌŠŪŽįļ ×ÜöŻŲāŲ ąÕÖŲÜ ßŽŅŻŽÓŽ ÕŚąŠŻć" -#: gui/options.cpp:413 +#: gui/options.cpp:415 msgid "the aspect ratio setting could not be changed" msgstr "ŻÕ ŅŌŠŪŽįļ ×ÜöŻŲāŲ ąÕÖŲÜ ŚŽąÕŚęö÷ įßöŅŅöŌŻŽčÕŻŻļ įāŽąöŻ" -#: gui/options.cpp:732 +#: gui/options.cpp:734 msgid "Graphics mode:" msgstr "³ąŠäöēŻ. ąÕÖŲÜ:" -#: gui/options.cpp:746 +#: gui/options.cpp:748 msgid "Render mode:" msgstr "ĄÕÖŲÜ ąŠįāąćŅ.:" -#: gui/options.cpp:746 gui/options.cpp:747 +#: gui/options.cpp:748 gui/options.cpp:749 msgid "Special dithering modes supported by some games" msgstr "ĮßÕęöŠŪģŻö ąÕÖŲÜŲ ąŠįāąćŅŠŻŻļ, ļŚö ßöŌāąŲÜćīāģ ŌÕļŚö öÓąŲ" -#: gui/options.cpp:758 +#: gui/options.cpp:760 #: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2316 msgid "Fullscreen mode" msgstr "æŽŅŻŽÕŚąŠŻŻŲŁ ąÕÖŲÜ" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Aspect ratio correction" msgstr "ŗŽąÕŚęöļ įßöŅŅöŌŻŽčÕŻŻļ įāŽąöŻ" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Correct aspect ratio for 320x200 games" msgstr "ŗŽąŲÓćŅŠāŲ įßöŅŅöŌŻŽčÕŻŻļ įāŽąöŻ ŌŪļ öÓŽą × ÓąŠäöŚŽī 320x200" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Preferred Device:" msgstr "ĆߎŌŽŃŠŻŲŁ ßąŲįāąöŁ:" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Music Device:" msgstr "¼ć×Ųē. ßąŲįāąöŁ:" -#: gui/options.cpp:769 gui/options.cpp:771 +#: gui/options.cpp:771 gui/options.cpp:773 msgid "Specifies preferred sound device or sound card emulator" msgstr "²ŚŠ×ćō ćߎŌŽŃŠŻŲŁ ×Ņ挎ŅŲŁ ßąŲįāąöŁ ŠŃŽ ÕÜćŪļāŽą ×Ņ挎ŅŽ÷ ŚŠąāŲ" -#: gui/options.cpp:769 gui/options.cpp:771 gui/options.cpp:772 +#: gui/options.cpp:771 gui/options.cpp:773 gui/options.cpp:774 msgid "Specifies output sound device or sound card emulator" msgstr "²ŚŠ×ćō ŅŲåöŌŻŲŁ ×Ņ挎ŅŲŁ ßąŲįāąöŁ ŠŃŽ ÕÜćŪļāŽą ×Ņ挎ŅŽ÷ ŚŠąāŲ" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Preferred Dev.:" msgstr "ĆߎŌŽŃ. ßąŲįāąöŁ:" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Music Device:" msgstr "¼ć×ŲēŻŲŁ ßąŲįāąöŁ:" -#: gui/options.cpp:798 +#: gui/options.cpp:800 msgid "AdLib emulator:" msgstr "µÜćŪļāŽą AdLib:" -#: gui/options.cpp:798 gui/options.cpp:799 +#: gui/options.cpp:800 gui/options.cpp:801 msgid "AdLib is used for music in many games" msgstr "·Ņ挎ŅŠ ŚŠąāŠ AdLib ŅŲŚŽąŲįāŽŅćōāģįļ ŃŠÓŠāģÜŠ öÓąŠÜŲ" -#: gui/options.cpp:809 +#: gui/options.cpp:811 msgid "Output rate:" msgstr "²ŲåöŌŻŠ ēŠįāŽāŠ:" -#: gui/options.cpp:809 gui/options.cpp:810 +#: gui/options.cpp:811 gui/options.cpp:812 msgid "" "Higher value specifies better sound quality but may be not supported by your " "soundcard" @@ -822,67 +824,67 @@ msgstr "" "²ÕŪŲŚö ׯŠēÕŻŻļ ׊ŌŠīāģ ŚąŠéć ļŚöįāģ ×ŅćŚć, ßąŽāÕ ŅŽŻŲ ÜŽÖćāģ ŻÕ " "ßöŌāąŲÜćŅŠāŲįļ ŅŠčŽī ×Ņ挎ŅŽī ŚŠąāŽī" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "GM Device:" msgstr "æąŲįāąöŁ GM:" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "Specifies default sound device for General MIDI output" msgstr "²ŚŠ×ćō ŅŲåöŌŻŲŁ ×Ņ挎ŅŲŁ ßąŲįāąöŁ ŌŪļ General MIDI" -#: gui/options.cpp:831 +#: gui/options.cpp:833 msgid "Don't use General MIDI music" msgstr "½Õ ŅŲŚŽąŲįāŽŅćŅŠāŲ Üć×ŲŚć General MIDI" -#: gui/options.cpp:842 gui/options.cpp:908 +#: gui/options.cpp:844 gui/options.cpp:910 msgid "Use first available device" msgstr "²ŲŚŽąŲįāŽŅćŅŠāŲ ßÕąčŲŁ ŻŠļŅŻŲŁ ßąŲįāąöŁ" -#: gui/options.cpp:854 +#: gui/options.cpp:856 msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:854 gui/options.cpp:856 gui/options.cpp:857 +#: 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" -#: gui/options.cpp:856 +#: gui/options.cpp:858 msgctxt "lowres" msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Mixed AdLib/MIDI mode" msgstr "·Üö芯ŲŁ ąÕÖŲÜ AdLib/MIDI" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Use both MIDI and AdLib sound generation" msgstr "²ŲŚŽąŲįāŽŅćŅŠāŲ ö MIDI ö AdLib ŌŪļ ÓÕŻÕąŠęö÷ ×ŅćŚć" -#: gui/options.cpp:865 +#: gui/options.cpp:867 msgid "MIDI gain:" msgstr "æŽįŲŪÕŻŻļ MIDI:" -#: gui/options.cpp:872 +#: gui/options.cpp:874 msgid "FluidSynth Settings" msgstr "½ŠŪŠčāćŅŠŻŻļ FluidSynth" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "MT-32 Device:" msgstr "æąŲįāąöŁ MT-32:" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output" msgstr "" "²ŚŠ×ćō ×Ņ挎ŅŲŁ ßąŲįāąöŁ ׊ ćÜŽŅēŠŻŻļÜ ŌŪļ ŅŲŅŽŌć ŻŠ Roland MT-32/LAPC1/" "CM32l/CM64" -#: gui/options.cpp:884 +#: gui/options.cpp:886 msgid "True Roland MT-32 (disable GM emulation)" msgstr "ĮßąŠŅÖŻöŁ Roland MT-32 (ŅŲÜŚŻćāŲ ÕÜćŪļęŲī GM)" -#: gui/options.cpp:884 gui/options.cpp:886 +#: gui/options.cpp:886 gui/options.cpp:888 msgid "" "Check if you want to use your real hardware Roland-compatible sound device " "connected to your computer" @@ -890,16 +892,16 @@ msgstr "" "²öŌÜöāģāÕ, ļŚéŽ ć ŅŠį ßöŌŚŪīēÕŻŽ Roland-įćÜöįŻŲŁ ×Ņ挎ŅŲŁ ßąŲįāąöŁ ö ŅŲ " "åŽēÕāÕ ŁŽÓŽ ŅŲŚŽąŲįāŽŅćŅŠāŲ" -#: gui/options.cpp:886 +#: gui/options.cpp:888 msgctxt "lowres" msgid "True Roland MT-32 (no GM emulation)" msgstr "ĮßąŠŅÖŻöŁ Roland MT-32 (ŅŲÜŚŻćāŲ ÕÜćŪļęŲī GM)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "Roland GS Device (enable MT-32 mappings)" msgstr "ĄÕÖŲÜ Roland GS (ŅŅöÜŚŻćāŲ ÜŠßŪÕŻŻļ MT-32)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "" "Check if you want to enable patch mappings to emulate an MT-32 on a Roland " "GS device" @@ -907,171 +909,183 @@ msgstr "" "²öŌÜöāģāÕ, ļŚéŽ åŽēÕāÕ ŅŚŪīēŲāŲ ŪŠāŚŲ ŌŪļ öįāąćÜÕŻāöŅ ŌŪļ ÕÜćŪļęö÷ MT-32 ŻŠ " "Roland" -#: gui/options.cpp:898 +#: gui/options.cpp:900 msgid "Don't use Roland MT-32 music" msgstr "½Õ ŅŲŚŽąŲįāŽŅćŅŠāŲ Üć×ŲŚć ŌŪļ Roland MT-32" -#: gui/options.cpp:925 +#: gui/options.cpp:927 msgid "Text and Speech:" msgstr "ĀÕŚįā ö Ž×ŅćēŚŠ:" -#: gui/options.cpp:929 gui/options.cpp:939 +#: gui/options.cpp:931 gui/options.cpp:941 msgid "Speech" msgstr "¾×ŅćēŚŠ" -#: gui/options.cpp:930 gui/options.cpp:940 +#: gui/options.cpp:932 gui/options.cpp:942 msgid "Subtitles" msgstr "ĮćŃāŲāąŲ" -#: gui/options.cpp:931 +#: gui/options.cpp:933 msgid "Both" msgstr "²įÕ" -#: gui/options.cpp:933 +#: gui/options.cpp:935 msgid "Subtitle speed:" msgstr "ČŅŲŌ. įćŃāŲāąöŅ:" -#: gui/options.cpp:935 +#: gui/options.cpp:937 msgctxt "lowres" msgid "Text and Speech:" msgstr "ĀÕŚįā ö Ž×ŅćēŚŠ:" -#: gui/options.cpp:939 +#: gui/options.cpp:941 msgid "Spch" msgstr "¾×Ņ" -#: gui/options.cpp:940 +#: gui/options.cpp:942 msgid "Subs" msgstr "ĮćŃ" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgctxt "lowres" msgid "Both" msgstr "²įÕ" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgid "Show subtitles and play speech" msgstr "æŽŚŠ×ćŅŠāŲ įćŃāŲāąŲ ö ŅöŌāŅŽąīŅŠāŲ ÜŽŅć" -#: gui/options.cpp:943 +#: gui/options.cpp:945 msgctxt "lowres" msgid "Subtitle speed:" msgstr "ČŅŲŌ. įćŃāŲāąöŅ:" -#: gui/options.cpp:959 +#: gui/options.cpp:961 msgid "Music volume:" msgstr "³ćēŻöįāģ Üć×ŲŚŲ:" -#: gui/options.cpp:961 +#: gui/options.cpp:963 msgctxt "lowres" msgid "Music volume:" msgstr "³ćēŻöįāģ Üć×ŲŚŲ:" -#: gui/options.cpp:968 +#: gui/options.cpp:970 msgid "Mute All" msgstr "²ŲÜŚŻćāŲ ŅįÕ" -#: gui/options.cpp:971 +#: gui/options.cpp:973 msgid "SFX volume:" msgstr "³ćēŻöįāģ ÕäÕŚāöŅ:" -#: gui/options.cpp:971 gui/options.cpp:973 gui/options.cpp:974 +#: gui/options.cpp:973 gui/options.cpp:975 gui/options.cpp:976 msgid "Special sound effects volume" msgstr "³ćēŻöįāģ įßÕęöŠŪģŻŲå ×Ņ挎ŅŲå ÕäÕŚāöŅ" -#: gui/options.cpp:973 +#: gui/options.cpp:975 msgctxt "lowres" msgid "SFX volume:" msgstr "³ćēŻ. ÕäÕŚāöŅ:" -#: gui/options.cpp:981 +#: gui/options.cpp:983 msgid "Speech volume:" msgstr "³ćēŻöįāģ Ž×ŅćēŚŲ:" -#: gui/options.cpp:983 +#: gui/options.cpp:985 msgctxt "lowres" msgid "Speech volume:" msgstr "³ćēŻ. Ž×ŅćēŚŲ:" -#: gui/options.cpp:1140 +#: gui/options.cpp:1142 msgid "Theme Path:" msgstr "ČŪļå ŌŽ āÕÜ:" -#: gui/options.cpp:1142 +#: gui/options.cpp:1144 msgctxt "lowres" msgid "Theme Path:" msgstr "ČŪļå ŌŽ āÕÜ:" -#: gui/options.cpp:1148 gui/options.cpp:1150 gui/options.cpp:1151 +#: gui/options.cpp:1150 gui/options.cpp:1152 gui/options.cpp:1153 msgid "Specifies path to additional data used by all games or ScummVM" msgstr "" "²ŚŠ×ćō čŪļå ŌŽ ŌŽŌŠāŚŽŅŲå 䊣ŪöŅ ŌŠŻŲå, ļŚö ŅŲŚŽąŲįāŽŅćīāģįļ ćįöÜŠ öÓąŠÜŲ " "ŠŃŽ ScummVM" -#: gui/options.cpp:1157 +#: gui/options.cpp:1159 msgid "Plugins Path:" msgstr "ČŪļå ŌŽ ŅāćŪŚöŅ:" -#: gui/options.cpp:1159 +#: gui/options.cpp:1161 msgctxt "lowres" msgid "Plugins Path:" msgstr "ČŪļå ŌŽ ŅāćŪŚöŅ:" -#: gui/options.cpp:1170 +#: gui/options.cpp:1172 msgctxt "lowres" msgid "Misc" msgstr "ĄöׯÕ" -#: gui/options.cpp:1172 +#: gui/options.cpp:1174 msgid "Theme:" msgstr "ĀÕÜŠ:" -#: gui/options.cpp:1176 +#: gui/options.cpp:1178 msgid "GUI Renderer:" msgstr "ĄŠįāÕą. GUI:" -#: gui/options.cpp:1188 +#: gui/options.cpp:1190 msgid "Autosave:" msgstr "°ŅāŽ×ŃÕąÕÖÕŻŻļ:" -#: gui/options.cpp:1190 +#: gui/options.cpp:1192 msgctxt "lowres" msgid "Autosave:" msgstr "°ŅāŽ×ŃÕąÕÖ.:" -#: gui/options.cpp:1198 +#: gui/options.cpp:1200 msgid "Keys" msgstr "ŗŪŠŅöčö" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "GUI Language:" msgstr "¼ŽŅŠ öŻāÕąä.:" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "Language of ScummVM GUI" msgstr "¼ŽŅŠ ÓąŠäöēŻŽÓŽ öŻāÕąäÕŁįć ScummVM" -#: gui/options.cpp:1364 +#: gui/options.cpp:1235 +msgid "Update check:" +msgstr "æÕąÕŅöąļāŲ ŽŻŽŅŪÕŻŻļ:" + +#: gui/options.cpp:1235 +msgid "How often to check ScummVM updates" +msgstr "ĻŚ ēŠįāŽ ßÕąÕŅöąļāŲ ŽŻŽŅŪÕŻŻļ ScummVM" + +#: gui/options.cpp:1247 +msgid "Check now" +msgstr "æÕąÕŅöąŲāŲ ׊ąŠ×" + +#: gui/options.cpp:1382 msgid "You have to restart ScummVM before your changes will take effect." msgstr "²Ų ߎŅŲŻŻö ßÕąÕ׊ßćįāŲāŲ ScummVM éŽŃ ׊įāŽįćŅŠāŲ ×ÜöŻŲ." -#: gui/options.cpp:1384 +#: gui/options.cpp:1415 msgid "The chosen directory cannot be written to. Please select another one." msgstr "½Õ ÜŽÖć ßŲįŠāŲ ć ŅŲŃąŠŻć ߊߌć. ±ćŌģ ŪŠįŚŠ, ŅŚŠÖöāģ öŻčć." -#: gui/options.cpp:1393 +#: gui/options.cpp:1424 msgid "Select directory for GUI themes" msgstr "²ŲŃÕąöāģ ߊߌć ŌŪļ āÕÜ GUI" -#: gui/options.cpp:1403 +#: gui/options.cpp:1434 msgid "Select directory for extra files" msgstr "²ŲŃÕąöāģ ߊߌć × ŌŽŌŠāŚŽŅŲÜŲ 䊣ŪŠÜŲ" -#: gui/options.cpp:1414 +#: gui/options.cpp:1445 msgid "Select directory for plugins" msgstr "²ŲŃÕąöāģ ߊߌć ×ö ŅāćŪŚŠÜŲ" -#: gui/options.cpp:1467 +#: gui/options.cpp:1498 msgid "" "The theme you selected does not support your current language. If you want " "to use this theme you need to switch to another language first." @@ -1244,39 +1258,63 @@ msgstr "ĄŠįāÕąŲ׊āŽą ×ö ×ÓŪŠŌÖćŅŠŻŻļÜ" msgid "Antialiased" msgstr "·ö ×ÓŪŠŌÖćŅŠŻŻļÜ" -#: gui/widget.cpp:323 gui/widget.cpp:325 gui/widget.cpp:331 gui/widget.cpp:333 +#: gui/updates-dialog.cpp:51 +msgid "" +"ScummVM now supports automatic check for updates\n" +"which requires access to the Internet.\n" +"\n" +"Would you like to enable this feature?" +msgstr "" +"ScummVM įāŠŅ ßöŌāąŲÜćŅŠāŲ ŠŅāŽÜŠāŲēŻć ßÕąÕŅöąŚć\n" +"ŽŻŽŅŪÕŻģ, éŽ ßŽāąÕŃćō ŌŽįćßć ŌŽ ¦ŻāÕąŻÕāć.\n" +"\n" +"ĒŲ åŽāöŪŲ Ń ŅŲ ŅŚŪīēŲāŲ āŠŚć ßÕąÕŅöąŚć?" + +#: gui/updates-dialog.cpp:55 +msgid "(You can always enable it in the options dialog on the Misc tab)" +msgstr "(²Ų ׊ŅÖŌŲ ÜŽÖÕāÕ ŅŚŪīēŲāŲ ÷÷ ć ½ŠŪŠčāćŅŠŻŻļå ŻŠ ׊ŚŪŠŌęö ¦ŻčÕ)" + +#: gui/updates-dialog.cpp:92 +msgid "Check for updates automatically" +msgstr "°ŅāŽÜŠāėēŻŽ ßÕąÕŅöąļāŲ ŽŻŽŅŪÕŻŻļ" + +#: gui/updates-dialog.cpp:111 +msgid "Proceed" +msgstr "æąŽŌŽŅÖŲāŲ" + +#: gui/widget.cpp:327 gui/widget.cpp:329 gui/widget.cpp:335 gui/widget.cpp:337 msgid "Clear value" msgstr "¾ēŲįāŲāŲ ׯŠēÕŻŻļ" -#: base/main.cpp:237 +#: base/main.cpp:240 #, c-format msgid "Engine does not support debug level '%s'" msgstr "“ŅŲÖŽŚ ŻÕ ßöŌāąŲÜćō ąöŅÕŻģ ŅöŌŪŠŌŚŲ '%s'" -#: base/main.cpp:309 +#: base/main.cpp:312 msgid "Menu" msgstr "¼ÕŻī" -#: base/main.cpp:312 backends/platform/symbian/src/SymbianActions.cpp:45 +#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:45 #: backends/platform/wince/CEActionsPocket.cpp:45 #: backends/platform/wince/CEActionsSmartphone.cpp:46 msgid "Skip" msgstr "æąŽßćįāŲāŲ" -#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:50 +#: base/main.cpp:318 backends/platform/symbian/src/SymbianActions.cpp:50 #: backends/platform/wince/CEActionsPocket.cpp:42 msgid "Pause" msgstr "æŠć׊" -#: base/main.cpp:318 +#: base/main.cpp:321 msgid "Skip line" msgstr "æąŽßćįāŲāŲ ąļŌŽŚ" -#: base/main.cpp:510 +#: base/main.cpp:520 msgid "Error running game:" msgstr "æŽÜŲŪŚŠ ׊ßćįŚć ÓąŲ:" -#: base/main.cpp:557 +#: base/main.cpp:567 msgid "Could not find any engine capable of running the selected game" msgstr "½Õ ÜŽÖć ׯŠŁāŲ ŌŅŲÖŽŚ ŌŪļ ׊ßćįŚć ŅŲŃąŠŻŽ÷ ÓąŲ" @@ -1371,16 +1409,32 @@ msgctxt "lowres" msgid "Hercules Amber" msgstr "Hercules ŃćąčāŲŻŻŲŁ" -#: engines/advancedDetector.cpp:317 +#: common/updates.cpp:58 +msgid "Daily" +msgstr "ÉŽŌÕŻŻŽ" + +#: common/updates.cpp:60 +msgid "Weekly" +msgstr "ÉŽāŲÖŻļ" + +#: common/updates.cpp:62 +msgid "Monthly" +msgstr "ÉŽÜöįļęļ" + +#: common/updates.cpp:64 +msgid "<Bad value>" +msgstr "<½ÕŅöąŻÕ ׯŠēÕŻŻļ>" + +#: engines/advancedDetector.cpp:334 #, c-format msgid "The game in '%s' seems to be unknown." msgstr "³ąŠ ć '%s' ŻÕŅöŌŽÜŠ." -#: engines/advancedDetector.cpp:318 +#: engines/advancedDetector.cpp:335 msgid "Please, report the following data to the ScummVM team along with name" msgstr "±ćŌģ ŪŠįŚŠ, ßÕąÕŌŠŁāÕ ŻŲÖēÕŻŠŅÕŌÕŻć öŻäŽąÜŠęöī ŚŽÜŠŻŌö ScummVM ąŠ×ŽÜ ×" -#: engines/advancedDetector.cpp:320 +#: engines/advancedDetector.cpp:337 msgid "of the game you tried to add and its version/language/etc.:" msgstr "ŻŠ×ŅŽī ÓąŲ, ļŚć ŅŲ ŻŠÜŠÓŠōāÕįģ ŌŽŌŠāŲ, Š āŠŚŽÖ ÷÷ ŅÕąįöī/ÜŽŅć/āŠ öŻčÕ:" @@ -1388,11 +1442,11 @@ msgstr "ŻŠ×ŅŽī ÓąŲ, ļŚć ŅŲ ŻŠÜŠÓŠōāÕįģ ŌŽŌŠāŲ, Š āŠŚŽÖ ÷÷ ŅÕąįöī/ÜŽŅć/āŠ öŻčÕ:" msgid "~R~esume" msgstr "æąŽŌŽŅ~Ö~ŲāŲ" -#: engines/dialogs.cpp:87 +#: engines/dialogs.cpp:87 engines/mohawk/dialogs.cpp:113 msgid "~L~oad" msgstr "~·~ŠŅŠŻāŠÖŲāŲ" -#: engines/dialogs.cpp:91 +#: engines/dialogs.cpp:91 engines/mohawk/dialogs.cpp:114 msgid "~S~ave" msgstr "~·~ŠßŲįŠāŲ" @@ -1421,9 +1475,9 @@ msgstr "~æ~ŽŅÕą.Ņ ÓŽŪŽŅŻÕ ÜÕŻī" #: engines/avalanche/parser.cpp:1899 engines/cge/events.cpp:74 #: engines/cge2/events.cpp:67 engines/cruise/menu.cpp:212 #: engines/drascula/saveload.cpp:336 engines/dreamweb/saveload.cpp:261 -#: engines/hugo/file.cpp:298 engines/neverhood/menumodule.cpp:877 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/hugo/file.cpp:298 engines/mohawk/dialogs.cpp:121 +#: engines/neverhood/menumodule.cpp:877 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save game:" @@ -1438,9 +1492,10 @@ msgstr "·ŃÕąÕÓāŲ Óąć: " #: engines/cge/events.cpp:74 engines/cge2/events.cpp:67 #: engines/cruise/menu.cpp:212 engines/drascula/saveload.cpp:336 #: engines/dreamweb/saveload.cpp:261 engines/hugo/file.cpp:298 -#: engines/neverhood/menumodule.cpp:877 engines/parallaction/saveload.cpp:212 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/scumm/dialogs.cpp:188 engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/mohawk/dialogs.cpp:121 engines/neverhood/menumodule.cpp:877 +#: engines/parallaction/saveload.cpp:212 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/scumm/dialogs.cpp:188 +#: engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save" @@ -1465,13 +1520,13 @@ msgstr "" "·ŃÕąÕÖÕŻŻļ įāŠŻć ÓąŲ ŻÕ ŅŌŠŪŽįļ (%s)!. ±ćŌģ-ŪŠįŚŠ, ŌŲŅöāģįļ 䊣Ū README ŌŪļ " "ŽįŻŽŅŻŽ÷ öŻŽąÜŠęö÷, Š āŠŚŽÖ öŻįāąćŚęöŁ, ļŚ ŽāąŲÜŠāŲ ߎŌŠŪģčć ŌŽßŽÜŽÓć." -#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:109 -#: engines/mohawk/dialogs.cpp:170 engines/tsage/dialogs.cpp:106 +#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:117 +#: engines/mohawk/dialogs.cpp:242 engines/tsage/dialogs.cpp:106 msgid "~O~K" msgstr "~O~K" -#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:110 -#: engines/mohawk/dialogs.cpp:171 engines/tsage/dialogs.cpp:107 +#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:118 +#: engines/mohawk/dialogs.cpp:243 engines/tsage/dialogs.cpp:107 msgid "~C~ancel" msgstr "²ö~Ō~ÜöŻŠ" @@ -1627,11 +1682,11 @@ msgstr "°ćŌöŽ FM-Towns" msgid "PC-98 Audio" msgstr "°ćŌöŽ PC-98" -#: audio/softsynth/mt32.cpp:200 +#: audio/softsynth/mt32.cpp:196 msgid "Initializing MT-32 Emulator" msgstr "½ŠŪŠčāŽŅćī ÕÜćŪļāŽą MT-32" -#: audio/softsynth/mt32.cpp:426 +#: audio/softsynth/mt32.cpp:434 msgid "MT-32 Emulator" msgstr "µÜćŪļāŽą MT-32" @@ -1748,11 +1803,11 @@ msgstr "ĄÕÖŲÜ įŠÜŽāļÓŻÕŻŻļ ŅŚŪīēÕŻŽ" msgid "Swipe three fingers to the right to toggle." msgstr "æąŽŅÕŌöāģ āąģŽÜŠ ߊŪģęļÜö ŻŠßąŠŅŽ ŌŪļ ßÕąÕŚŪīēÕŻŻļ." -#: backends/graphics/opengl/opengl-graphics.cpp:119 +#: backends/graphics/opengl/opengl-graphics.cpp:126 msgid "OpenGL" msgstr "OpenGL" -#: backends/graphics/opengl/opengl-graphics.cpp:120 +#: backends/graphics/opengl/opengl-graphics.cpp:127 msgid "OpenGL (No filtering)" msgstr "OpenGL (ŃÕ× äöŪģāąöŅ)" @@ -2304,20 +2359,20 @@ msgstr "" "½Õ ׊ŃćŌģāÕ ßÕąÕßąŲׯŠēŲāŲ ŚŻŽßŚć ŌŪļ Ōö÷ 'ĮåŽŅŠāŲ æŠŻÕŪģ öŻįāą.' éŽŃ " "ߎъēŲāŲ ŅÕįģ öŻŅÕŻāŠą" -#: backends/updates/macosx/macosx-updates.mm:67 +#: backends/updates/macosx/macosx-updates.mm:68 msgid "Check for Updates..." -msgstr "æÕąÕŅöąļī ŽŻŽŅŪÕŻŻļ..." +msgstr "æÕąÕŅöąŲāŲ ŽŻŽŅŪÕŻŻļ..." #: engines/agi/detection.cpp:147 engines/cine/detection.cpp:70 #: engines/drascula/detection.cpp:302 engines/dreamweb/detection.cpp:47 -#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:404 +#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:410 #: engines/toltecs/detection.cpp:200 engines/zvision/detection_tables.h:51 msgid "Use original save/load screens" msgstr "²ŲŚŽąŲįāŽŅćŅŠāŲ ŽąŲÓ. ×ŃÕąÕÖÕŻŻļ/׊ŅŠŻāŠÖÕŻŻļ ÕŚąŠŻŲ" #: engines/agi/detection.cpp:148 engines/cine/detection.cpp:71 #: engines/drascula/detection.cpp:303 engines/dreamweb/detection.cpp:48 -#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:405 +#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:411 #: engines/toltecs/detection.cpp:201 msgid "Use the original save/load screens, instead of the ScummVM ones" msgstr "" @@ -2346,11 +2401,33 @@ msgstr "" "²ŚŪīēŠō ßöŌāąŲÜŚć ÜŲčö. “Ž×ŅŽŪļō ŅŲŚŽąŲįāŽŅćŅŠāŲ ÜŲčć ŌŪļ ßÕąÕįćŅŠŻŻļ āŠ " "ćßąŠŅŪöŻŻļ ÜÕŻī." +#: engines/agi/detection.cpp:177 +msgid "Use Hercules hires font" +msgstr "²ŲŚŽąŲįāŽŅćŅŠāŲ čąŲäā Hercules" + +#: engines/agi/detection.cpp:178 +msgid "Uses Hercules hires font, when font file is available." +msgstr "" +"²ŲŚŽąŲįāŽŅćō čąŲäā ŅŲįŽŚŽÓŽ ąŽ×ÓŠŪćÖÕŻŻļ Hercules, ļŚéŽ 䊣Ū × čąŲäāŽÜ ō " +"ŌŽįć߯ŲŁ" + +#: engines/agi/detection.cpp:187 +msgid "Pause when entering commands" +msgstr "ĮāŠŅŲāŲ ŻŠ ߊć×ć ßöŌ ēŠį ŅŅŽŌć ŚŽÜŠŻŌ" + +#: engines/agi/detection.cpp:188 +msgid "" +"Shows a command prompt window and pauses the game (like in SCI) instead of a " +"real-time prompt." +msgstr "" +"æŽŚŠ×ćō ŅöŚŻŽ ŌŪļ ŅŅŽŌć ŚŽÜŠŻŌŲ āŠ įāŠŅŲāģ Óąć ŻŠ ߊć×ć (ߎŌöŃŻŽ ŌŽ SCI)," +"׊Üöįāģ ŃÕ×ߎįÕąÕŌŻģŽÓŽ ŅŅŽŌć." + #: engines/agi/saveload.cpp:777 engines/avalanche/parser.cpp:1887 #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore game:" @@ -2360,13 +2437,13 @@ msgstr "²öŌŻŽŅŲāŲ Óąć:" #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore" msgstr "²öŌŻŽŅŲāŲ" -#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2377 +#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2374 #, c-format msgid "" "Failed to load game state from file:\n" @@ -2377,7 +2454,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2370 +#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2367 #, c-format msgid "" "Failed to save game state to file:\n" @@ -2388,7 +2465,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2388 +#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2385 #, c-format msgid "" "Successfully saved game state in file:\n" @@ -2633,29 +2710,37 @@ msgstr "" "ŅöŌŚąŲāŲ ŚŽŻįŽŪģ ŅöŌŪŠŌēŲŚŠ ö ŅŅÕįāŲ ŚŽÜŠŻŌć 'import_savefile'.\n" "\n" +#: engines/mohawk/detection.cpp:168 +msgid "Play the Myst fly by movie" +msgstr "æŽŚŠ×ćŅŠāŲ ąŽŪöŚ ߎŪģŽāć ŻŠŌ Myst" + +#: engines/mohawk/detection.cpp:169 +msgid "The Myst fly by movie was not played by the original engine." +msgstr "ĄŽŪöŚ ߎŪģŽāć ŻŠŌ Myst ŻÕ ߎŚŠ×ćŅŠŅįļ ŽąŲÓöŻŠŪģŻŲÜ ŌŅŲÖŚŽÜ" + #. I18N: Option for fast scene switching -#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:167 +#: engines/mohawk/dialogs.cpp:96 engines/mohawk/dialogs.cpp:239 msgid "~Z~ip Mode Activated" msgstr "ĄÕÖŲÜ čŅŲŌŚŽÓŽ ßÕąÕåŽŌć ŠŚāŲŅŽŅŠŻŽ" -#: engines/mohawk/dialogs.cpp:93 +#: engines/mohawk/dialogs.cpp:97 msgid "~T~ransitions Enabled" msgstr "æÕąÕåŽŌŲ ŠŚāŲŅŽŅŠŻŽ" #. I18N: Drop book page -#: engines/mohawk/dialogs.cpp:95 +#: engines/mohawk/dialogs.cpp:99 msgid "~D~rop Page" msgstr "²ŲŚŲŻćāŲ įāŽąöŻŚć" -#: engines/mohawk/dialogs.cpp:99 -msgid "~S~how Map" +#: engines/mohawk/dialogs.cpp:103 +msgid "Show ~M~ap" msgstr "æŽŚŠ×ŠāŲ ÜŠßć" -#: engines/mohawk/dialogs.cpp:105 -msgid "~M~ain Menu" +#: engines/mohawk/dialogs.cpp:109 +msgid "Main Men~u~" msgstr "³ŽŪŽŅŻÕ ÜÕŻī" -#: engines/mohawk/dialogs.cpp:168 +#: engines/mohawk/dialogs.cpp:240 msgid "~W~ater Effect Enabled" msgstr "µäÕŚāŲ ŅŽŌŲ ćŅöÜŚŻÕŻŽ" @@ -2776,37 +2861,37 @@ msgstr "°ŪāÕąŻŠāŲŅŻŲŁ Ņįāćß" msgid "Use an alternative game intro (CD version only)" msgstr "²ŲŚŽąŲįāŽŅćŅŠāŲ ŠŪģāÕąŻŠāŲŅŻŲŁ Ņįāćß ÓąŲ (āöŪģŚŲ CD ŅÕąįöļ)" -#: engines/sci/detection.cpp:374 +#: engines/sci/detection.cpp:380 msgid "Skip EGA dithering pass (full color backgrounds)" msgstr "½Õ ąŽŃŲāŲ ąŠįāąćŅŠŻŻļ EGA (䎯Ų ć ߎŅŻŽÜć ŚŽŪģŽąö)" -#: engines/sci/detection.cpp:375 +#: engines/sci/detection.cpp:381 msgid "Skip dithering pass in EGA games, graphics are shown with full colors" msgstr "" "½Õ ąŽŃŲāŲ ŚąŽŚ ąŠįāąćŅŠŻŻļ ć öÓąŠå EGA, ÓąŠäöŚć ŃćŌÕ ßŽŚŠ×ŠŻŽ ć ߎŅŻŽÜć " "ŚŽŪģŽąö" -#: engines/sci/detection.cpp:384 +#: engines/sci/detection.cpp:390 msgid "Enable high resolution graphics" msgstr "ĆŅöÜŚŻćāŲ ÓąŠäöŚć ŅŲįŽŚŽÓŽ ąŽ×ÓŠŪćÖÕŻŻļ" -#: engines/sci/detection.cpp:385 +#: engines/sci/detection.cpp:391 msgid "Enable high resolution graphics/content" msgstr "ĆŅöÜŚŻćāŲ ÓąŠäöŚć āŠ ŚŽŻāÕŻā ć ŅŲįŽŚŽÜć ąŽ×ÓŠŪćÖÕŻŻö" -#: engines/sci/detection.cpp:394 +#: engines/sci/detection.cpp:400 msgid "Prefer digital sound effects" msgstr "½ŠŌŠŅŠāŲ ßÕąÕŅŠÓć ęŲ乎ŅŲÜ ×Ņ挎ŅŲÜ ÕäÕŚāŠÜ" -#: engines/sci/detection.cpp:395 +#: engines/sci/detection.cpp:401 msgid "Prefer digital sound effects instead of synthesized ones" msgstr "²öŌŌŠŅŠāŲ ßÕąÕŅŠÓć ęŲ乎ŅŲÜ ×Ņ挎ŅŲÜ ÕäÕŚāŠÜ, Š ŻÕ įŲŻāÕ׎ŅŠŻŲÜ" -#: engines/sci/detection.cpp:414 +#: engines/sci/detection.cpp:420 msgid "Use IMF/Yamaha FB-01 for MIDI output" msgstr "²ŲŚŽąŲįāŽŅćŅŠāŲ IMF/Yahama FB-01 ŌŪļ MIDI ŅŲåŽŌć" -#: engines/sci/detection.cpp:415 +#: engines/sci/detection.cpp:421 msgid "" "Use an IBM Music Feature card or a Yamaha FB-01 FM synth module for MIDI " "output" @@ -2814,34 +2899,42 @@ msgstr "" "²ŲŚŽąŲįāŽŅćŅŠāŲ ŌŪļŅ ŅŲŅŽŌć MIDI ąÕÖŲÜ ŚŠąāŲ IBM Feature ŠŃŽ FM įöŻāÕ× " "Yamaha FB-01" -#: engines/sci/detection.cpp:425 +#: engines/sci/detection.cpp:431 msgid "Use CD audio" msgstr "²ŲŚŽąŲįāŽŅćŅŠāŲ CD ŠćŌöŽ" -#: engines/sci/detection.cpp:426 +#: engines/sci/detection.cpp:432 msgid "Use CD audio instead of in-game audio, if available" msgstr "²ŲŚŽąŲįāŽŅćŅŠāŲ CD ŠćŌöŽ ׊Üöįāģ ć-Óąö ŠćŌöŽ, ļŚéŽ āŠŚö ō" -#: engines/sci/detection.cpp:436 +#: engines/sci/detection.cpp:442 msgid "Use Windows cursors" msgstr "²ŲŚŽąŲįāŽŅćŅŠāŲ Windows ŚćąįŽąŲ" -#: engines/sci/detection.cpp:437 +#: engines/sci/detection.cpp:443 msgid "" "Use the Windows cursors (smaller and monochrome) instead of the DOS ones" msgstr "²ŲŚŽąŲįāŽŅćŅŠāŲ Windows ŚćąįŽąŲ (ÜÕŻčŲå ö ÜŽŻŽåąŽÜŻŲå), ׊Üöįāģ DOS" -#: engines/sci/detection.cpp:447 +#: engines/sci/detection.cpp:453 msgid "Use silver cursors" msgstr "²ŲŚŽąŲįāŽŅćŅŠāŲ įąöŃŻö ŚćąįŽąŲ" -#: engines/sci/detection.cpp:448 +#: engines/sci/detection.cpp:454 msgid "" "Use the alternate set of silver cursors, instead of the normal golden ones" msgstr "" "²ŲŚŽąŲįāŽŅćŅŠāŲ ŠŪģāÕąŻŠāŲŅŻŲŁ ŻŠŃöą įąöŃŻŲå ŚćąįŽąöŅ, ׊Üöįāģ ×ŅŲēŠŁŻŲå " "׎ŪŽāŲå" +#: engines/scumm/detection.cpp:1335 +msgid "Show Object Line" +msgstr "æŽŚŠ×ćŅŠāŲ ŪöŻö÷ ŽŃ'ōŚāöŅ" + +#: engines/scumm/detection.cpp:1336 +msgid "Show the names of objects at the bottom of the screen" +msgstr "æŽŚŠ×ćŅŠāŲ ŻŠ×ŅŲ ŽŃ'ōŚāŲŅ ŅŻŲ×ć ÕŚąŠŻć" + #: engines/scumm/dialogs.cpp:176 #, c-format msgid "Insert Disk %c and Press Button to Continue." @@ -3507,7 +3600,7 @@ msgstr "³ćēŻöįāģ Üć×ŲŚŲ: " msgid "Subtitle speed: " msgstr "ČŅŲŌ. įćŃāŲāąöŅ: " -#: engines/scumm/scumm.cpp:1832 +#: engines/scumm/scumm.cpp:1829 #, c-format msgid "" "Native MIDI support requires the Roland Upgrade from LucasArts,\n" @@ -3516,7 +3609,7 @@ msgstr "" "ĄÕÖŲÜ \"ąöŌŻŽÓŽ\" MIDI ߎāąÕŃćō ߎŻŽŅŪÕŻŻļ Roland Upgrade ŅöŌ\n" "LucasArts, ßąŽāÕ %s ŅöŌįćāŻöŁ. æÕąÕÜŲŚŠīįģ ŻŠ AdLib." -#: engines/scumm/scumm.cpp:2644 +#: engines/scumm/scumm.cpp:2645 msgid "" "Usually, Maniac Mansion would start now. But for that to work, the game " "files for Maniac Mansion have to be in the 'Maniac' directory inside the " @@ -3551,8 +3644,8 @@ msgid "" "Files button in-game shows original savegame dialog rather than the ScummVM " "menu" msgstr "" -"ŗŻŽßŚŠ \"ÄŠŁŪŲ\" ć Óąö ߎŚŠ×ćŅŠāŲÜÕ ŽąŲÓöŻŠŪģŻŲŁ ÕŚąŠŻ ×ŃÕąÕÖÕŻŻļ " -"׊Üöįāģ ÜÕŻī ScummVM" +"ŗŻŽßŚŠ \"ÄŠŁŪŲ\" ć Óąö ߎŚŠ×ćŅŠāŲÜÕ ŽąŲÓöŻŠŪģŻŲŁ ÕŚąŠŻ ×ŃÕąÕÖÕŻŻļ ׊Üöįāģ " +"ÜÕŻī ScummVM" #: engines/sherlock/detection.cpp:81 msgid "Pixellated scene transitions" @@ -3571,8 +3664,8 @@ msgid "" "Only show hotspot names after you actually click on a hotspot or action " "button" msgstr "" -"æŽŚŠ×ćŅŠāŲ ŻŠ×ŅŲ ęöŚŠŅŲå āŽēŽŚ āöŪģŚŲ ßöįŪļ ŃÕ×ߎįÕąÕŌŻģŽÓŽ ŚŪöŚć ߎ ŻŲÜ " -"ŠŃŽ Ōö÷ × ŻŲÜŲ" +"æŽŚŠ×ćŅŠāŲ ŻŠ×ŅŲ ęöŚŠŅŲå āŽēŽŚ āöŪģŚŲ ßöįŪļ ŃÕ×ߎįÕąÕŌŻģŽÓŽ ŚŪöŚć ߎ ŻŲÜ ŠŃŽ " +"Ōö÷ × ŻŲÜŲ" #: engines/sherlock/detection.cpp:101 msgid "Show character portraits" @@ -3694,6 +3787,17 @@ msgstr "æŽŚŠ×ćŅŠāŲ ÜöāŚŲ ŽŃ'ōŚāöŅ" msgid "Show labels for objects on mouse hover" msgstr "æŽŚŠ×ćŅŠāŲ ÜöāŚŲ ŌŪļ ŽŃ'ōŚāöŅ ßąŲ ŻŠŅÕŌÕŻŻö ÜŲčö" +#: engines/sword25/detection.cpp:46 +msgid "Use English speech" +msgstr "²ŲŚŽąŲįāŽŅćŅŠāŲ Ž×ŅćēÕŻŻļ ŠŻÓŪöŁįģŚŽī" + +#: engines/sword25/detection.cpp:47 +msgid "" +"Use English speech instead of German for every language other than German" +msgstr "" +"²ŲŚŽąŲįāŽŅćŅŠāŲ Ž×ŅćēÕŻŻļ ŠŻÓŪöŁįŚŽī ׊Üöįāģ ŻöÜÕęģŚŽÓŽ ŌŪļ Ņįöå ÜŽŅ ŽŚąöÜ " +"ŻöÜÕęģŚŽ÷" + #: engines/teenagent/resources.cpp:95 msgid "" "You're missing the 'teenagent.dat' file. Get it from the ScummVM website" diff --git a/po/zh-Latn_CN.po b/po/zh-Latn_CN.po index 12105429a7..d90a6ba715 100644 --- a/po/zh-Latn_CN.po +++ b/po/zh-Latn_CN.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ScummVM 1.9.0git\n" "Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n" -"POT-Creation-Date: 2016-02-20 21:22+0000\n" +"POT-Creation-Date: 2016-04-07 08:55+0100\n" "PO-Revision-Date: 2016-03-15 04:09-0700\n" "Last-Translator: Chenbo Li <lichenbo1949@gmail.com>\n" "Language-Team: Chenbo Li <lichenbo1949@gmail.com>\n" @@ -54,10 +54,11 @@ msgstr "ShangYiJi" #: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editrecorddialog.cpp:67 #: gui/filebrowser-dialog.cpp:64 gui/fluidsynth-dialog.cpp:152 #: gui/KeysDialog.cpp:43 gui/launcher.cpp:351 gui/massadd.cpp:95 -#: gui/options.cpp:1237 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 +#: gui/options.cpp:1255 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:70 #: gui/recorderdialog.cpp:156 gui/saveload-dialog.cpp:216 #: gui/saveload-dialog.cpp:276 gui/saveload-dialog.cpp:547 -#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 engines/engine.cpp:546 +#: gui/saveload-dialog.cpp:931 gui/themebrowser.cpp:55 +#: gui/updates-dialog.cpp:113 engines/engine.cpp:546 #: backends/events/default/default-events.cpp:196 #: backends/events/default/default-events.cpp:218 #: backends/platform/wii/options.cpp:48 engines/drascula/saveload.cpp:49 @@ -171,7 +172,7 @@ msgstr "Zhengxian" msgid "Triangle" msgstr "Sanjiaoxing" -#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1168 +#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1170 msgid "Misc" msgstr "Zaxiang" @@ -205,12 +206,12 @@ msgstr "Chongzhi Suoyou de FluidSynth Shezhi" #: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:352 #: gui/launcher.cpp:1050 gui/launcher.cpp:1054 gui/massadd.cpp:92 -#: gui/options.cpp:1238 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 +#: gui/options.cpp:1256 gui/saveload-dialog.cpp:932 engines/engine.cpp:465 #: engines/engine.cpp:476 backends/platform/wii/options.cpp:47 #: backends/platform/wince/CELauncherDialog.cpp:54 #: engines/agos/animation.cpp:558 engines/drascula/saveload.cpp:49 #: engines/groovie/script.cpp:408 engines/parallaction/saveload.cpp:274 -#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1834 +#: engines/scumm/dialogs.cpp:193 engines/scumm/scumm.cpp:1831 #: engines/scumm/players/player_v3m.cpp:130 #: engines/scumm/players/player_v5m.cpp:108 engines/sky/compact.cpp:131 #: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:524 @@ -238,15 +239,15 @@ msgstr "Guanbi" msgid "Mouse click" msgstr "Shubiao Danji" -#: gui/gui-manager.cpp:126 base/main.cpp:322 +#: gui/gui-manager.cpp:126 base/main.cpp:325 msgid "Display keyboard" msgstr "Xianshi Jianpan" -#: gui/gui-manager.cpp:130 base/main.cpp:326 +#: gui/gui-manager.cpp:130 base/main.cpp:329 msgid "Remap keys" msgstr "Yingshe Jianwei" -#: gui/gui-manager.cpp:133 base/main.cpp:329 engines/scumm/help.cpp:87 +#: gui/gui-manager.cpp:133 base/main.cpp:332 engines/scumm/help.cpp:87 msgid "Toggle fullscreen" msgstr "Quanping Qiehuan" @@ -321,8 +322,8 @@ msgid "" msgstr "" "Youxi de Yuyan. CiXiang buhui jiang Yige XibanyaYu Banben Zhuancheng Yingwen" -#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:87 -#: gui/options.cpp:735 gui/options.cpp:748 gui/options.cpp:1208 +#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:89 +#: gui/options.cpp:737 gui/options.cpp:750 gui/options.cpp:1210 #: audio/null.cpp:41 msgid "<default>" msgstr "<Moren>" @@ -344,11 +345,11 @@ msgstr "Pingtai:" msgid "Engine" msgstr "Yinqing" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "Graphics" msgstr "Tuxiang" -#: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088 +#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090 msgid "GFX" msgstr "GFX" @@ -361,7 +362,7 @@ msgctxt "lowres" msgid "Override global graphic settings" msgstr "Fugai Quanju Tuxiang Shezhi" -#: gui/launcher.cpp:257 gui/options.cpp:1094 +#: gui/launcher.cpp:257 gui/options.cpp:1096 msgid "Audio" msgstr "Yinpin" @@ -374,11 +375,11 @@ msgctxt "lowres" msgid "Override global audio settings" msgstr "Fugai QUanju Yinpin Shezhi" -#: gui/launcher.cpp:271 gui/options.cpp:1099 +#: gui/launcher.cpp:271 gui/options.cpp:1101 msgid "Volume" msgstr "Yinliang" -#: gui/launcher.cpp:273 gui/options.cpp:1101 +#: gui/launcher.cpp:273 gui/options.cpp:1103 msgctxt "lowres" msgid "Volume" msgstr "YinLiang" @@ -392,7 +393,7 @@ msgctxt "lowres" msgid "Override global volume settings" msgstr "Fugai Quanju YinLiang Shezhi" -#: gui/launcher.cpp:286 gui/options.cpp:1109 +#: gui/launcher.cpp:286 gui/options.cpp:1111 msgid "MIDI" msgstr "MIDI" @@ -405,7 +406,7 @@ msgctxt "lowres" msgid "Override global MIDI settings" msgstr "Fugai Quanju MIDI Shezhi" -#: gui/launcher.cpp:300 gui/options.cpp:1115 +#: gui/launcher.cpp:300 gui/options.cpp:1117 msgid "MT-32" msgstr "MT-32" @@ -418,11 +419,11 @@ msgctxt "lowres" msgid "Override global MT-32 settings" msgstr "Fugai Quanju MT-32 Shezhi" -#: gui/launcher.cpp:314 gui/options.cpp:1122 +#: gui/launcher.cpp:314 gui/options.cpp:1124 msgid "Paths" msgstr "Lujing" -#: gui/launcher.cpp:316 gui/options.cpp:1124 +#: gui/launcher.cpp:316 gui/options.cpp:1126 msgctxt "lowres" msgid "Paths" msgstr "Lujing" @@ -436,7 +437,7 @@ msgctxt "lowres" msgid "Game Path:" msgstr "Youxi Lujing:" -#: gui/launcher.cpp:330 gui/options.cpp:1148 +#: gui/launcher.cpp:330 gui/options.cpp:1150 msgid "Extra Path:" msgstr "Qita Lujing:" @@ -444,42 +445,42 @@ msgstr "Qita Lujing:" msgid "Specifies path to additional data used by the game" msgstr "Zhiding Youxi Suoyong de Shuju de Cunfang Lujing" -#: gui/launcher.cpp:332 gui/options.cpp:1150 +#: gui/launcher.cpp:332 gui/options.cpp:1152 msgctxt "lowres" msgid "Extra Path:" msgstr "Qita Lujing:" -#: gui/launcher.cpp:339 gui/options.cpp:1132 +#: gui/launcher.cpp:339 gui/options.cpp:1134 msgid "Save Path:" msgstr "Baocun Lujing:" #: gui/launcher.cpp:339 gui/launcher.cpp:341 gui/launcher.cpp:342 -#: gui/options.cpp:1132 gui/options.cpp:1134 gui/options.cpp:1135 +#: gui/options.cpp:1134 gui/options.cpp:1136 gui/options.cpp:1137 msgid "Specifies where your saved games are put" msgstr "Zhiding Nin Jiang Youxi Baocun Zai le Nali" -#: gui/launcher.cpp:341 gui/options.cpp:1134 +#: gui/launcher.cpp:341 gui/options.cpp:1136 msgctxt "lowres" msgid "Save Path:" msgstr "Baocun Lujing:" #: gui/launcher.cpp:360 gui/launcher.cpp:459 gui/launcher.cpp:517 -#: gui/launcher.cpp:571 gui/options.cpp:1143 gui/options.cpp:1151 -#: gui/options.cpp:1160 gui/options.cpp:1275 gui/options.cpp:1281 -#: gui/options.cpp:1289 gui/options.cpp:1319 gui/options.cpp:1325 -#: gui/options.cpp:1332 gui/options.cpp:1425 gui/options.cpp:1428 -#: gui/options.cpp:1440 +#: gui/launcher.cpp:571 gui/options.cpp:1145 gui/options.cpp:1153 +#: gui/options.cpp:1162 gui/options.cpp:1293 gui/options.cpp:1299 +#: gui/options.cpp:1307 gui/options.cpp:1337 gui/options.cpp:1343 +#: gui/options.cpp:1350 gui/options.cpp:1456 gui/options.cpp:1459 +#: gui/options.cpp:1471 msgctxt "path" msgid "None" msgstr "Wu" #: gui/launcher.cpp:365 gui/launcher.cpp:465 gui/launcher.cpp:575 -#: gui/options.cpp:1269 gui/options.cpp:1313 gui/options.cpp:1431 +#: gui/options.cpp:1287 gui/options.cpp:1331 gui/options.cpp:1462 #: backends/platform/wii/options.cpp:56 msgid "Default" msgstr "Moren" -#: gui/launcher.cpp:510 gui/options.cpp:1434 +#: gui/launcher.cpp:510 gui/options.cpp:1465 msgid "Select SoundFont" msgstr "Xuanze SoundFont" @@ -491,7 +492,7 @@ msgstr "Xuanze Youxi Shuju Mulu" msgid "Select additional game directory" msgstr "Xuanze Qita Youxi Mulu" -#: gui/launcher.cpp:559 gui/options.cpp:1377 +#: gui/launcher.cpp:559 gui/options.cpp:1408 msgid "Select directory for saved games" msgstr "Xuanze Youxi Baocun Mulu" @@ -499,7 +500,7 @@ msgstr "Xuanze Youxi Baocun Mulu" msgid "This game ID is already taken. Please choose another one." msgstr "Ci Youxi ID Yi Bei Zhanyong. Qing Xuanze Qita Mingcheng" -#: gui/launcher.cpp:626 engines/dialogs.cpp:111 +#: gui/launcher.cpp:626 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:115 msgid "~Q~uit" msgstr "~Q~Tuichu" @@ -587,17 +588,18 @@ msgid "Search:" msgstr "Sousuo:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214 -#: engines/mohawk/riven.cpp:718 engines/pegasus/pegasus.cpp:353 -#: engines/tsage/scenes.cpp:600 +#: engines/mohawk/dialogs.cpp:120 engines/mohawk/riven.cpp:718 +#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:600 msgid "Load game:" msgstr "Jiazai Youxi:" #: gui/launcher.cpp:685 engines/dialogs.cpp:115 #: backends/platform/wince/CEActionsPocket.cpp:267 #: backends/platform/wince/CEActionsSmartphone.cpp:231 -#: engines/cruise/menu.cpp:214 engines/mohawk/riven.cpp:718 -#: engines/parallaction/saveload.cpp:197 engines/pegasus/pegasus.cpp:353 -#: engines/scumm/dialogs.cpp:189 engines/tsage/scenes.cpp:600 +#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:120 +#: engines/mohawk/riven.cpp:718 engines/parallaction/saveload.cpp:197 +#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:189 +#: engines/tsage/scenes.cpp:600 msgid "Load" msgstr "Jiazai" @@ -684,132 +686,132 @@ msgstr "Qiehuan zhi Youxi" msgid "Fast replay" msgstr "Kuaisu Huitui" -#: gui/options.cpp:85 +#: gui/options.cpp:87 common/updates.cpp:56 msgid "Never" msgstr "Yongbu" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 5 mins" msgstr "Mei 5 Fenzhong" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 10 mins" msgstr "Mei 10 Fenzhong" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 15 mins" msgstr "Mei 15 Fenzhong" -#: gui/options.cpp:85 +#: gui/options.cpp:87 msgid "every 30 mins" msgstr "Mei 30 Fenzhong" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "8 kHz" msgstr "8 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "11 kHz" msgstr "11 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "22 kHz" msgstr "22 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "44 kHz" msgstr "44 kHz" -#: gui/options.cpp:87 +#: gui/options.cpp:89 msgid "48 kHz" msgstr "48 kHz" -#: gui/options.cpp:255 gui/options.cpp:479 gui/options.cpp:580 -#: gui/options.cpp:649 gui/options.cpp:857 +#: gui/options.cpp:257 gui/options.cpp:481 gui/options.cpp:582 +#: gui/options.cpp:651 gui/options.cpp:859 msgctxt "soundfont" msgid "None" msgstr "Wu" -#: gui/options.cpp:389 +#: gui/options.cpp:391 msgid "Failed to apply some of the graphic options changes:" msgstr "Tuxing Xuanxiang Genggai Shibai:" -#: gui/options.cpp:401 +#: gui/options.cpp:403 msgid "the video mode could not be changed." msgstr "Shipin Moshi Wufa Genggai." -#: gui/options.cpp:407 +#: gui/options.cpp:409 msgid "the fullscreen setting could not be changed" msgstr "Quanping Shezhi Wufa Genggai" -#: gui/options.cpp:413 +#: gui/options.cpp:415 msgid "the aspect ratio setting could not be changed" msgstr "Bili Xuanxiang Wufa Genggai" -#: gui/options.cpp:732 +#: gui/options.cpp:734 msgid "Graphics mode:" msgstr "Tuxing Moshi:" -#: gui/options.cpp:746 +#: gui/options.cpp:748 msgid "Render mode:" msgstr "Xuanran Moshi:" -#: gui/options.cpp:746 gui/options.cpp:747 +#: gui/options.cpp:748 gui/options.cpp:749 msgid "Special dithering modes supported by some games" msgstr "Youxi Zhichi Teshu de Doudong Moshi" -#: gui/options.cpp:758 +#: gui/options.cpp:760 #: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2316 msgid "Fullscreen mode" msgstr "Quanping Moshi" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Aspect ratio correction" msgstr "Bili Jiaozheng" -#: gui/options.cpp:761 +#: gui/options.cpp:763 msgid "Correct aspect ratio for 320x200 games" msgstr "320x200 Youxi Bili Jiaozheng" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Preferred Device:" msgstr "Youxian Shebei:" -#: gui/options.cpp:769 +#: gui/options.cpp:771 msgid "Music Device:" msgstr "Yinyue Shebei:" -#: gui/options.cpp:769 gui/options.cpp:771 +#: gui/options.cpp:771 gui/options.cpp:773 msgid "Specifies preferred sound device or sound card emulator" msgstr "Zhiding Youxian Shengyin Shebei huo Shengka Moniqi" -#: gui/options.cpp:769 gui/options.cpp:771 gui/options.cpp:772 +#: gui/options.cpp:771 gui/options.cpp:773 gui/options.cpp:774 msgid "Specifies output sound device or sound card emulator" msgstr "Zhiding Shuchu Shengyin Shebei huo Shengka Moniqi" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Preferred Dev.:" msgstr "Youxian Shebei:" -#: gui/options.cpp:771 +#: gui/options.cpp:773 msgctxt "lowres" msgid "Music Device:" msgstr "Yinyue Shebei:" -#: gui/options.cpp:798 +#: gui/options.cpp:800 msgid "AdLib emulator:" msgstr "AdLib Moniqi:" -#: gui/options.cpp:798 gui/options.cpp:799 +#: gui/options.cpp:800 gui/options.cpp:801 msgid "AdLib is used for music in many games" msgstr "AdLib bei Henduo Youxi Yonglai Bofang Yinyue" -#: gui/options.cpp:809 +#: gui/options.cpp:811 msgid "Output rate:" msgstr "Shuchu Malv:" -#: gui/options.cpp:809 gui/options.cpp:810 +#: gui/options.cpp:811 gui/options.cpp:812 msgid "" "Higher value specifies better sound quality but may be not supported by your " "soundcard" @@ -817,66 +819,66 @@ msgstr "" "Genggao de Shuxing Hui Tisheng Yinyue Zhiliang dan Youkeneng Nin de Shengka " "Buzhichi" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "GM Device:" msgstr "GM Shebei:" -#: gui/options.cpp:820 +#: gui/options.cpp:822 msgid "Specifies default sound device for General MIDI output" msgstr "Zhiding Tongyong MIDI Shuchu Moren Shengyin Shebei" -#: gui/options.cpp:831 +#: gui/options.cpp:833 msgid "Don't use General MIDI music" msgstr "Buyao Shiyong Tongyong MIDI Yinyue" -#: gui/options.cpp:842 gui/options.cpp:908 +#: gui/options.cpp:844 gui/options.cpp:910 msgid "Use first available device" msgstr "Shiyong Diyige keyong de Shebei" -#: gui/options.cpp:854 +#: gui/options.cpp:856 msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:854 gui/options.cpp:856 gui/options.cpp:857 +#: gui/options.cpp:856 gui/options.cpp:858 gui/options.cpp:859 msgid "SoundFont is supported by some audio cards, FluidSynth and Timidity" msgstr "Yixie Shengka Zhichi SoundFont, Biru FluidSynth He Timidity" -#: gui/options.cpp:856 +#: gui/options.cpp:858 msgctxt "lowres" msgid "SoundFont:" msgstr "SoundFont:" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Mixed AdLib/MIDI mode" msgstr "Hunhe AdLib/MIDI Moshi" -#: gui/options.cpp:862 +#: gui/options.cpp:864 msgid "Use both MIDI and AdLib sound generation" msgstr "TongShi Shiyong MIDI He AdLib Shengyin Shengcheng" -#: gui/options.cpp:865 +#: gui/options.cpp:867 msgid "MIDI gain:" msgstr "MIDI gain:" -#: gui/options.cpp:872 +#: gui/options.cpp:874 msgid "FluidSynth Settings" msgstr "FluidSynth Xuanxiang" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "MT-32 Device:" msgstr "MT-32 Shebei:" -#: gui/options.cpp:879 +#: gui/options.cpp:881 msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output" msgstr "" "QIng Zhiding Yongyu Roland MT-32/LAPC1/CM32I/CM64 Shuchu de Moren Shengyin " "Shebei" -#: gui/options.cpp:884 +#: gui/options.cpp:886 msgid "True Roland MT-32 (disable GM emulation)" msgstr "Zhen Roland MT-32 (Jinyong GM Moni)" -#: gui/options.cpp:884 gui/options.cpp:886 +#: gui/options.cpp:886 gui/options.cpp:888 msgid "" "Check if you want to use your real hardware Roland-compatible sound device " "connected to your computer" @@ -884,16 +886,16 @@ msgstr "" "Jiancha Shifou Nin Xiang Shiyong Lianjie Dao Jisuanji de Zhenshi de Yingjian " "Roland Jianrong Shengyin Shebei" -#: gui/options.cpp:886 +#: gui/options.cpp:888 msgctxt "lowres" msgid "True Roland MT-32 (no GM emulation)" msgstr "Zhen Roland MT-32 Shebei (Wu GM Moni)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "Roland GS Device (enable MT-32 mappings)" msgstr "Roland GS Shebei (Qiyong MT-32 Yingshe)" -#: gui/options.cpp:889 +#: gui/options.cpp:891 msgid "" "Check if you want to enable patch mappings to emulate an MT-32 on a Roland " "GS device" @@ -901,169 +903,181 @@ msgstr "" "Jiancha Shifou Nin Xiang Qiyong patch Yingshe Lai Zai Roland GS Shebei " "Shangmian Moni MT-32" -#: gui/options.cpp:898 +#: gui/options.cpp:900 msgid "Don't use Roland MT-32 music" msgstr "Buyao Shiyong Roland MT-32 Yinyue" -#: gui/options.cpp:925 +#: gui/options.cpp:927 msgid "Text and Speech:" msgstr "Wenzi he Yuyin:" -#: gui/options.cpp:929 gui/options.cpp:939 +#: gui/options.cpp:931 gui/options.cpp:941 msgid "Speech" msgstr "Yuyin" -#: gui/options.cpp:930 gui/options.cpp:940 +#: gui/options.cpp:932 gui/options.cpp:942 msgid "Subtitles" msgstr "Zimu" -#: gui/options.cpp:931 +#: gui/options.cpp:933 msgid "Both" msgstr "Liangzhe" -#: gui/options.cpp:933 +#: gui/options.cpp:935 msgid "Subtitle speed:" msgstr "Zimu Sudu:" -#: gui/options.cpp:935 +#: gui/options.cpp:937 msgctxt "lowres" msgid "Text and Speech:" msgstr "Wenben he Yuyin:" -#: gui/options.cpp:939 +#: gui/options.cpp:941 msgid "Spch" msgstr "Zimu" -#: gui/options.cpp:940 +#: gui/options.cpp:942 msgid "Subs" msgstr "Yuyin" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgctxt "lowres" msgid "Both" msgstr "Dou" -#: gui/options.cpp:941 +#: gui/options.cpp:943 msgid "Show subtitles and play speech" msgstr "Xianshi Zimu Bing Bofang Yuyin" -#: gui/options.cpp:943 +#: gui/options.cpp:945 msgctxt "lowres" msgid "Subtitle speed:" msgstr "Zimu Sudu" -#: gui/options.cpp:959 +#: gui/options.cpp:961 msgid "Music volume:" msgstr "Yinyue Yinliang:" -#: gui/options.cpp:961 +#: gui/options.cpp:963 msgctxt "lowres" msgid "Music volume:" msgstr "Yinyue Yinliang:" -#: gui/options.cpp:968 +#: gui/options.cpp:970 msgid "Mute All" msgstr "Quanbu Jinyin" -#: gui/options.cpp:971 +#: gui/options.cpp:973 msgid "SFX volume:" msgstr "Yinxiao Yinliang:" -#: gui/options.cpp:971 gui/options.cpp:973 gui/options.cpp:974 +#: gui/options.cpp:973 gui/options.cpp:975 gui/options.cpp:976 msgid "Special sound effects volume" msgstr "Texiao Yinliang" -#: gui/options.cpp:973 +#: gui/options.cpp:975 msgctxt "lowres" msgid "SFX volume:" msgstr "Yinxiao Yinliang:" -#: gui/options.cpp:981 +#: gui/options.cpp:983 msgid "Speech volume:" msgstr "Yuyin Yinliang:" -#: gui/options.cpp:983 +#: gui/options.cpp:985 msgctxt "lowres" msgid "Speech volume:" msgstr "Yuyin Yinliang:" -#: gui/options.cpp:1140 +#: gui/options.cpp:1142 msgid "Theme Path:" msgstr "Zhuti Lujing:" -#: gui/options.cpp:1142 +#: gui/options.cpp:1144 msgctxt "lowres" msgid "Theme Path:" msgstr "Zhuti Lujing:" -#: gui/options.cpp:1148 gui/options.cpp:1150 gui/options.cpp:1151 +#: gui/options.cpp:1150 gui/options.cpp:1152 gui/options.cpp:1153 msgid "Specifies path to additional data used by all games or ScummVM" msgstr "Zhiding Suoyou Youxi huo ScummVM de Shuju Lujing" -#: gui/options.cpp:1157 +#: gui/options.cpp:1159 msgid "Plugins Path:" msgstr "Chajian Lujing:" -#: gui/options.cpp:1159 +#: gui/options.cpp:1161 msgctxt "lowres" msgid "Plugins Path:" msgstr "Chajian Lujing:" -#: gui/options.cpp:1170 +#: gui/options.cpp:1172 msgctxt "lowres" msgid "Misc" msgstr "Zaxiang" -#: gui/options.cpp:1172 +#: gui/options.cpp:1174 msgid "Theme:" msgstr "Zhuti:" -#: gui/options.cpp:1176 +#: gui/options.cpp:1178 msgid "GUI Renderer:" msgstr "Jiemian Xuanran:" -#: gui/options.cpp:1188 +#: gui/options.cpp:1190 msgid "Autosave:" msgstr "Zidong Baocun:" -#: gui/options.cpp:1190 +#: gui/options.cpp:1192 msgctxt "lowres" msgid "Autosave:" msgstr "Zidong Baocun:" -#: gui/options.cpp:1198 +#: gui/options.cpp:1200 msgid "Keys" msgstr "Guanjianzi" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "GUI Language:" msgstr "Jiemian Yuyan:" -#: gui/options.cpp:1205 +#: gui/options.cpp:1207 msgid "Language of ScummVM GUI" msgstr "ScummVM Jiemian Yuyan" -#: gui/options.cpp:1364 +#: gui/options.cpp:1235 +msgid "Update check:" +msgstr "" + +#: gui/options.cpp:1235 +msgid "How often to check ScummVM updates" +msgstr "" + +#: gui/options.cpp:1247 +msgid "Check now" +msgstr "" + +#: gui/options.cpp:1382 msgid "You have to restart ScummVM before your changes will take effect." msgstr "Nin Xuyao Chongqi ScummVM Lai Shi Genggai Shengxiao" -#: gui/options.cpp:1384 +#: gui/options.cpp:1415 msgid "The chosen directory cannot be written to. Please select another one." msgstr "Zhiding de Mulu Buneng Xieru. Qing Xuanze Qita de Mulu." -#: gui/options.cpp:1393 +#: gui/options.cpp:1424 msgid "Select directory for GUI themes" msgstr "Xuanze Jiemian Zhuti de Mulu" -#: gui/options.cpp:1403 +#: gui/options.cpp:1434 msgid "Select directory for extra files" msgstr "Xuanze QIta Wenjian Mulu" -#: gui/options.cpp:1414 +#: gui/options.cpp:1445 msgid "Select directory for plugins" msgstr "Xuanze Chajian Mulu" -#: gui/options.cpp:1467 +#: gui/options.cpp:1498 msgid "" "The theme you selected does not support your current language. If you want " "to use this theme you need to switch to another language first." @@ -1236,39 +1250,60 @@ msgstr "Fanjuchi Xuanranqi" msgid "Antialiased" msgstr "Fanjuchi" -#: gui/widget.cpp:323 gui/widget.cpp:325 gui/widget.cpp:331 gui/widget.cpp:333 +#: gui/updates-dialog.cpp:51 +msgid "" +"ScummVM now supports automatic check for updates\n" +"which requires access to the Internet.\n" +"\n" +"Would you like to enable this feature?" +msgstr "" + +#: gui/updates-dialog.cpp:55 +msgid "(You can always enable it in the options dialog on the Misc tab)" +msgstr "" + +#: gui/updates-dialog.cpp:92 +#, fuzzy +msgid "Check for updates automatically" +msgstr "Jiancha Gengxin..." + +#: gui/updates-dialog.cpp:111 +msgid "Proceed" +msgstr "" + +#: gui/widget.cpp:327 gui/widget.cpp:329 gui/widget.cpp:335 gui/widget.cpp:337 msgid "Clear value" msgstr "Qingchu Zhi" -#: base/main.cpp:237 +#: base/main.cpp:240 #, c-format msgid "Engine does not support debug level '%s'" msgstr "Yinqing Buzhichi Tiaoshi Jibie ā%sā" -#: base/main.cpp:309 +#: base/main.cpp:312 msgid "Menu" msgstr "Caidan" -#: base/main.cpp:312 backends/platform/symbian/src/SymbianActions.cpp:45 +#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:45 #: backends/platform/wince/CEActionsPocket.cpp:45 #: backends/platform/wince/CEActionsSmartphone.cpp:46 msgid "Skip" msgstr "Tiaoguo" -#: base/main.cpp:315 backends/platform/symbian/src/SymbianActions.cpp:50 +#: base/main.cpp:318 backends/platform/symbian/src/SymbianActions.cpp:50 #: backends/platform/wince/CEActionsPocket.cpp:42 msgid "Pause" msgstr "Zanting" -#: base/main.cpp:318 +#: base/main.cpp:321 msgid "Skip line" msgstr "Tiaoguo Cihang" -#: base/main.cpp:510 +#: base/main.cpp:520 msgid "Error running game:" msgstr "Youxi Yunxing Cuowu:" -#: base/main.cpp:557 +#: base/main.cpp:567 msgid "Could not find any engine capable of running the selected game" msgstr "Wufa Zhaodao Shihe Yunxing Youxi de Yinqing" @@ -1363,16 +1398,33 @@ msgctxt "lowres" msgid "Hercules Amber" msgstr "Hercules Amber" -#: engines/advancedDetector.cpp:317 +#: common/updates.cpp:58 +msgid "Daily" +msgstr "" + +#: common/updates.cpp:60 +msgid "Weekly" +msgstr "" + +#: common/updates.cpp:62 +msgid "Monthly" +msgstr "" + +#: common/updates.cpp:64 +#, fuzzy +msgid "<Bad value>" +msgstr "Qingchu Zhi" + +#: engines/advancedDetector.cpp:334 #, c-format msgid "The game in '%s' seems to be unknown." msgstr "'%s' Zhong de Youxi Weizhi." -#: engines/advancedDetector.cpp:318 +#: engines/advancedDetector.cpp:335 msgid "Please, report the following data to the ScummVM team along with name" msgstr "Qing JIang Xialie Shuju Yiji Youxi Baogao Gei ScummVM Tuandui" -#: engines/advancedDetector.cpp:320 +#: engines/advancedDetector.cpp:337 msgid "of the game you tried to add and its version/language/etc.:" msgstr "BingQie Fushang Shitu Tianjia de Youximing Yiji Banben/Yuyan Deng" @@ -1380,11 +1432,11 @@ msgstr "BingQie Fushang Shitu Tianjia de Youximing Yiji Banben/Yuyan Deng" msgid "~R~esume" msgstr "~R~Jixu" -#: engines/dialogs.cpp:87 +#: engines/dialogs.cpp:87 engines/mohawk/dialogs.cpp:113 msgid "~L~oad" msgstr "~L~Zairu" -#: engines/dialogs.cpp:91 +#: engines/dialogs.cpp:91 engines/mohawk/dialogs.cpp:114 msgid "~S~ave" msgstr "~S~Baocun" @@ -1413,9 +1465,9 @@ msgstr "~R~Fanhui Qidongqi" #: engines/avalanche/parser.cpp:1899 engines/cge/events.cpp:74 #: engines/cge2/events.cpp:67 engines/cruise/menu.cpp:212 #: engines/drascula/saveload.cpp:336 engines/dreamweb/saveload.cpp:261 -#: engines/hugo/file.cpp:298 engines/neverhood/menumodule.cpp:877 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/hugo/file.cpp:298 engines/mohawk/dialogs.cpp:121 +#: engines/neverhood/menumodule.cpp:877 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save game:" @@ -1430,9 +1482,10 @@ msgstr "Baocun Youxi:" #: engines/cge/events.cpp:74 engines/cge2/events.cpp:67 #: engines/cruise/menu.cpp:212 engines/drascula/saveload.cpp:336 #: engines/dreamweb/saveload.cpp:261 engines/hugo/file.cpp:298 -#: engines/neverhood/menumodule.cpp:877 engines/parallaction/saveload.cpp:212 -#: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:768 -#: engines/scumm/dialogs.cpp:188 engines/sherlock/scalpel/scalpel.cpp:1249 +#: engines/mohawk/dialogs.cpp:121 engines/neverhood/menumodule.cpp:877 +#: engines/parallaction/saveload.cpp:212 engines/pegasus/pegasus.cpp:377 +#: engines/sci/engine/kfile.cpp:778 engines/scumm/dialogs.cpp:188 +#: engines/sherlock/scalpel/scalpel.cpp:1250 #: engines/sherlock/tattoo/widget_files.cpp:75 engines/toltecs/menu.cpp:281 #: engines/toon/toon.cpp:3338 engines/tsage/scenes.cpp:598 msgid "Save" @@ -1456,13 +1509,13 @@ msgstr "" "Cundang Baocun Shibai (%s)! Qing Chayue README Huode Jiben Xinxi, Yiji " "Gengduo Xinxi" -#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:109 -#: engines/mohawk/dialogs.cpp:170 engines/tsage/dialogs.cpp:106 +#: engines/dialogs.cpp:307 engines/mohawk/dialogs.cpp:117 +#: engines/mohawk/dialogs.cpp:242 engines/tsage/dialogs.cpp:106 msgid "~O~K" msgstr "~O~Queding" -#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:110 -#: engines/mohawk/dialogs.cpp:171 engines/tsage/dialogs.cpp:107 +#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:118 +#: engines/mohawk/dialogs.cpp:243 engines/tsage/dialogs.cpp:107 msgid "~C~ancel" msgstr "~C~Quxiao" @@ -1618,11 +1671,11 @@ msgstr "FM-Towns Yinpin" msgid "PC-98 Audio" msgstr "PC-98 Yinpin" -#: audio/softsynth/mt32.cpp:200 +#: audio/softsynth/mt32.cpp:196 msgid "Initializing MT-32 Emulator" msgstr "Chushihua MT-32 Moniqi" -#: audio/softsynth/mt32.cpp:426 +#: audio/softsynth/mt32.cpp:434 msgid "MT-32 Emulator" msgstr "MT-32 Moniqi" @@ -1739,11 +1792,11 @@ msgstr "Muqian Wei Zidong Tuozhuai Moshi" msgid "Swipe three fingers to the right to toggle." msgstr "Xiangyou Huadong San Gen Shouzhi Qiehuan" -#: backends/graphics/opengl/opengl-graphics.cpp:119 +#: backends/graphics/opengl/opengl-graphics.cpp:126 msgid "OpenGL" msgstr "OpenGL" -#: backends/graphics/opengl/opengl-graphics.cpp:120 +#: backends/graphics/opengl/opengl-graphics.cpp:127 msgid "OpenGL (No filtering)" msgstr "OpenGL" @@ -2293,20 +2346,20 @@ msgstr "" "Buyao Wnagji Yingshe YIge Jian Dao 'YIncang Gongjulan' Lai Chakan Suoyou " "xiang" -#: backends/updates/macosx/macosx-updates.mm:67 +#: backends/updates/macosx/macosx-updates.mm:68 msgid "Check for Updates..." msgstr "Jiancha Gengxin..." #: engines/agi/detection.cpp:147 engines/cine/detection.cpp:70 #: engines/drascula/detection.cpp:302 engines/dreamweb/detection.cpp:47 -#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:404 +#: engines/neverhood/detection.cpp:160 engines/sci/detection.cpp:410 #: engines/toltecs/detection.cpp:200 engines/zvision/detection_tables.h:51 msgid "Use original save/load screens" msgstr "Shiyong Yuanshi Baocun/Zairu Pingmu" #: engines/agi/detection.cpp:148 engines/cine/detection.cpp:71 #: engines/drascula/detection.cpp:303 engines/dreamweb/detection.cpp:48 -#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:405 +#: engines/neverhood/detection.cpp:161 engines/sci/detection.cpp:411 #: engines/toltecs/detection.cpp:201 msgid "Use the original save/load screens, instead of the ScummVM ones" msgstr "Shiyong Yuanshi Baocun/Zairu Pingmu, Bu Shiyong ScummVM de" @@ -2332,11 +2385,30 @@ msgstr "" "Qiyong shubiao zhichi. Yunxu Shiyong Shubiao jinxing Yidong He Youxi Nei " "Caidan" +#: engines/agi/detection.cpp:177 +#, fuzzy +msgid "Use Hercules hires font" +msgstr "Hercules Green" + +#: engines/agi/detection.cpp:178 +msgid "Uses Hercules hires font, when font file is available." +msgstr "" + +#: engines/agi/detection.cpp:187 +msgid "Pause when entering commands" +msgstr "" + +#: engines/agi/detection.cpp:188 +msgid "" +"Shows a command prompt window and pauses the game (like in SCI) instead of a " +"real-time prompt." +msgstr "" + #: engines/agi/saveload.cpp:777 engines/avalanche/parser.cpp:1887 #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore game:" @@ -2346,13 +2418,13 @@ msgstr "Huifu Youxi:" #: engines/cge/events.cpp:85 engines/cge2/events.cpp:78 #: engines/drascula/saveload.cpp:349 engines/dreamweb/saveload.cpp:169 #: engines/hugo/file.cpp:400 engines/neverhood/menumodule.cpp:890 -#: engines/sci/engine/kfile.cpp:867 engines/sherlock/scalpel/scalpel.cpp:1262 +#: engines/sci/engine/kfile.cpp:877 engines/sherlock/scalpel/scalpel.cpp:1263 #: engines/sherlock/tattoo/widget_files.cpp:94 engines/toltecs/menu.cpp:256 #: engines/toon/toon.cpp:3430 msgid "Restore" msgstr "Huifu" -#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2377 +#: engines/agos/saveload.cpp:160 engines/scumm/scumm.cpp:2374 #, c-format msgid "" "Failed to load game state from file:\n" @@ -2363,7 +2435,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2370 +#: engines/agos/saveload.cpp:195 engines/scumm/scumm.cpp:2367 #, c-format msgid "" "Failed to save game state to file:\n" @@ -2374,7 +2446,7 @@ msgstr "" "\n" "%s" -#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2388 +#: engines/agos/saveload.cpp:203 engines/scumm/scumm.cpp:2385 #, c-format msgid "" "Successfully saved game state in file:\n" @@ -2620,29 +2692,39 @@ msgstr "" "'import_savefile'.\n" "\n" +#: engines/mohawk/detection.cpp:168 +msgid "Play the Myst fly by movie" +msgstr "" + +#: engines/mohawk/detection.cpp:169 +msgid "The Myst fly by movie was not played by the original engine." +msgstr "" + #. I18N: Option for fast scene switching -#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:167 +#: engines/mohawk/dialogs.cpp:96 engines/mohawk/dialogs.cpp:239 msgid "~Z~ip Mode Activated" msgstr "~Z~Yasuo Moshi Qidong" -#: engines/mohawk/dialogs.cpp:93 +#: engines/mohawk/dialogs.cpp:97 msgid "~T~ransitions Enabled" msgstr "~T~Qiyong Zhuanyi" #. I18N: Drop book page -#: engines/mohawk/dialogs.cpp:95 +#: engines/mohawk/dialogs.cpp:99 msgid "~D~rop Page" msgstr "~D~shanchu Yemian" -#: engines/mohawk/dialogs.cpp:99 -msgid "~S~how Map" +#: engines/mohawk/dialogs.cpp:103 +#, fuzzy +msgid "Show ~M~ap" msgstr "~S~Xianshi Ditu" -#: engines/mohawk/dialogs.cpp:105 -msgid "~M~ain Menu" +#: engines/mohawk/dialogs.cpp:109 +#, fuzzy +msgid "Main Men~u~" msgstr "~M~Zhucaidan" -#: engines/mohawk/dialogs.cpp:168 +#: engines/mohawk/dialogs.cpp:240 msgid "~W~ater Effect Enabled" msgstr "~W~Qiyong Shuimian Xiaoguo" @@ -2762,35 +2844,35 @@ msgstr "QIta Jieshao" msgid "Use an alternative game intro (CD version only)" msgstr "Shiyong Qita Youxi Jieshao (Jin CD Ban)" -#: engines/sci/detection.cpp:374 +#: engines/sci/detection.cpp:380 msgid "Skip EGA dithering pass (full color backgrounds)" msgstr "Tiaoguo EGA Doudong (quancai Beijing)" -#: engines/sci/detection.cpp:375 +#: engines/sci/detection.cpp:381 msgid "Skip dithering pass in EGA games, graphics are shown with full colors" msgstr "tiaoguo EGA Youxi Zhong de Doudong, Tuxiang Yi Quancai Xianshi" -#: engines/sci/detection.cpp:384 +#: engines/sci/detection.cpp:390 msgid "Enable high resolution graphics" msgstr "QIyong Gaofenbianlv Tu" -#: engines/sci/detection.cpp:385 +#: engines/sci/detection.cpp:391 msgid "Enable high resolution graphics/content" msgstr "Qiyong Gaofenbianlv Tubian/Neirong" -#: engines/sci/detection.cpp:394 +#: engines/sci/detection.cpp:400 msgid "Prefer digital sound effects" msgstr "Youxianshiyong Shuzi Yinxiao" -#: engines/sci/detection.cpp:395 +#: engines/sci/detection.cpp:401 msgid "Prefer digital sound effects instead of synthesized ones" msgstr "Youxian SHiyong shuzi YInxiao, er fei Hecheng" -#: engines/sci/detection.cpp:414 +#: engines/sci/detection.cpp:420 msgid "Use IMF/Yamaha FB-01 for MIDI output" msgstr "Shiyong IMF/yamaha Fb-01 Huo MIDI shuchu" -#: engines/sci/detection.cpp:415 +#: engines/sci/detection.cpp:421 msgid "" "Use an IBM Music Feature card or a Yamaha FB-01 FM synth module for MIDI " "output" @@ -2798,32 +2880,41 @@ msgstr "" "Shiyong IBM Music Feature Ka Huozhe Yamaha FB-01 FM hecheng Mokuai zuowei " "MIDI shuchu" -#: engines/sci/detection.cpp:425 +#: engines/sci/detection.cpp:431 msgid "Use CD audio" msgstr "Shiyong CD YInpin" -#: engines/sci/detection.cpp:426 +#: engines/sci/detection.cpp:432 msgid "Use CD audio instead of in-game audio, if available" msgstr "Shiyong CD Yinpin erfei Youxinei Yinpin (ruguo keyong)" -#: engines/sci/detection.cpp:436 +#: engines/sci/detection.cpp:442 msgid "Use Windows cursors" msgstr "Shiyong WIndows Guangbiao" -#: engines/sci/detection.cpp:437 +#: engines/sci/detection.cpp:443 msgid "" "Use the Windows cursors (smaller and monochrome) instead of the DOS ones" msgstr "Shiyong Windows Guangbiao (gengxiao Danse) erfei DOS Guangbiao" -#: engines/sci/detection.cpp:447 +#: engines/sci/detection.cpp:453 msgid "Use silver cursors" msgstr "Shiyong Yinse Guangbiao" -#: engines/sci/detection.cpp:448 +#: engines/sci/detection.cpp:454 msgid "" "Use the alternate set of silver cursors, instead of the normal golden ones" msgstr "Shiyong Qita Yinse Guangbiao" +#: engines/scumm/detection.cpp:1335 +#, fuzzy +msgid "Show Object Line" +msgstr "Xianshi Wuti Biaoqian" + +#: engines/scumm/detection.cpp:1336 +msgid "Show the names of objects at the bottom of the screen" +msgstr "" + #: engines/scumm/dialogs.cpp:176 #, c-format msgid "Insert Disk %c and Press Button to Continue." @@ -3489,7 +3580,7 @@ msgstr "Yinyue Yinliang:" msgid "Subtitle speed: " msgstr "Zimu Sudu:" -#: engines/scumm/scumm.cpp:1832 +#: engines/scumm/scumm.cpp:1829 #, c-format msgid "" "Native MIDI support requires the Roland Upgrade from LucasArts,\n" @@ -3498,7 +3589,7 @@ msgstr "" "Bendi MIDI Zhichi Xuyao Cong LucasArts Shengji Zhi Roland,\n" "Dnahsi %s meiyou zhaodao. Shiyong AdLib." -#: engines/scumm/scumm.cpp:2644 +#: engines/scumm/scumm.cpp:2645 msgid "" "Usually, Maniac Mansion would start now. But for that to work, the game " "files for Maniac Mansion have to be in the 'Maniac' directory inside the " @@ -3671,6 +3762,15 @@ msgstr "Xianshi Wuti Biaoqian" msgid "Show labels for objects on mouse hover" msgstr "Dang Shubiao Yishang Shi Xianshi Wuti Biaoqian" +#: engines/sword25/detection.cpp:46 +msgid "Use English speech" +msgstr "" + +#: engines/sword25/detection.cpp:47 +msgid "" +"Use English speech instead of German for every language other than German" +msgstr "" + #: engines/teenagent/resources.cpp:95 msgid "" "You're missing the 'teenagent.dat' file. Get it from the ScummVM website" @@ -53,8 +53,43 @@ ifdef DYNAMIC_MODULES endif # Special target to create a application wrapper for Mac OS X + +ifdef USE_DOCKTILEPLUGIN + +# The NsDockTilePlugIn needs to be compiled in both 32 and 64 bits irrespective of how ScummVM itself is compiled. +# Therefore do not use $(CXXFLAGS) and $(LDFLAGS). + +ScummVMDockTilePlugin32.o: + $(CXX) -mmacosx-version-min=10.6 -arch i386 -O2 -c $(srcdir)/backends/taskbar/macosx/dockplugin/dockplugin.m -o ScummVMDockTilePlugin32.o + +ScummVMDockTilePlugin32: ScummVMDockTilePlugin32.o + $(CXX) -mmacosx-version-min=10.6 -arch i386 -bundle -framework Foundation -framework AppKit -fobjc-link-runtime ScummVMDockTilePlugin32.o -o ScummVMDockTilePlugin32 + +ScummVMDockTilePlugin64.o: + $(CXX) -mmacosx-version-min=10.6 -arch x86_64 -O2 -c $(srcdir)/backends/taskbar/macosx/dockplugin/dockplugin.m -o ScummVMDockTilePlugin64.o + +ScummVMDockTilePlugin64: ScummVMDockTilePlugin64.o + $(CXX) -mmacosx-version-min=10.6 -arch x86_64 -bundle -framework Foundation -framework AppKit -fobjc-link-runtime ScummVMDockTilePlugin64.o -o ScummVMDockTilePlugin64 + +ScummVMDockTilePlugin: ScummVMDockTilePlugin32 ScummVMDockTilePlugin64 + lipo -create ScummVMDockTilePlugin32 ScummVMDockTilePlugin64 -output ScummVMDockTilePlugin + +scummvm.docktileplugin: ScummVMDockTilePlugin + mkdir -p scummvm.docktileplugin/Contents + cp $(srcdir)/dists/macosx/dockplugin/Info.plist scummvm.docktileplugin/Contents + mkdir -p scummvm.docktileplugin/Contents/MacOS + cp ScummVMDockTilePlugIn scummvm.docktileplugin/Contents/MacOS/ + chmod 644 scummvm.docktileplugin/Contents/MacOS/ScummVMDockTilePlugIn + +endif + bundle_name = ScummVM.app + +ifdef USE_DOCKTILEPLUGIN +bundle: scummvm-static scummvm.docktileplugin +else bundle: scummvm-static +endif mkdir -p $(bundle_name)/Contents/MacOS mkdir -p $(bundle_name)/Contents/Resources echo "APPL????" > $(bundle_name)/Contents/PkgInfo @@ -62,7 +97,8 @@ bundle: scummvm-static ifdef USE_SPARKLE mkdir -p $(bundle_name)/Contents/Frameworks cp $(srcdir)/dists/macosx/dsa_pub.pem $(bundle_name)/Contents/Resources/ - cp -R $(STATICLIBPATH)/Sparkle.framework $(bundle_name)/Contents/Frameworks/ + rm -rf $(bundle_name)/Contents/Frameworks/Sparkle.framework + cp -R $(SPARKLEPATH)/Sparkle.framework $(bundle_name)/Contents/Frameworks/ endif cp $(srcdir)/icons/scummvm.icns $(bundle_name)/Contents/Resources/ cp $(DIST_FILES_DOCS) $(bundle_name)/ @@ -75,6 +111,10 @@ endif cp scummvm-static $(bundle_name)/Contents/MacOS/scummvm chmod 755 $(bundle_name)/Contents/MacOS/scummvm $(STRIP) $(bundle_name)/Contents/MacOS/scummvm +ifdef USE_DOCKTILEPLUGIN + mkdir -p $(bundle_name)/Contents/PlugIns + cp -r scummvm.docktileplugin $(bundle_name)/Contents/PlugIns/ +endif iphonebundle: iphone mkdir -p $(bundle_name) @@ -290,7 +330,10 @@ OSX_ZLIB ?= $(STATICLIBPATH)/lib/libz.a endif ifdef USE_SPARKLE -OSX_STATIC_LIBS += -framework Sparkle -F$(STATICLIBPATH) +ifneq ($(SPARKLEPATH),) +OSX_STATIC_LIBS += -F$(SPARKLEPATH) +endif +OSX_STATIC_LIBS += -framework Sparkle -Wl,-rpath,@loader_path/../Frameworks endif # Special target to create a static linked binary for Mac OS X. @@ -363,6 +406,9 @@ osxsnap: bundle ScummVM-snapshot.dmg rm -rf ScummVM-snapshot +publish-appcast: + scp dists/macosx/scummvm_appcast.xml www.scummvm.org:/var/www/html/appcasts/macosx/release.xml + # # Windows specific # @@ -441,12 +487,12 @@ CUR_BRANCH := $(shell cd $(srcdir); git describe --all |cut -d '-' -f 4-) ideprojects: devtools/create_project ifeq ($(VER_DIRTY), -dirty) - $(error You have uncommitted changes) -endif + $(error You have uncommitted changes) +endif ifeq "$(CUR_BRANCH)" "heads/master" - $(error You cannot do it on master) + $(error You cannot do it on master) else ifeq "$(CUR_BRANCH)" "" - $(error You must be on a release branch) + $(error You must be on a release branch) endif @echo Creating Code::Blocks project files... @cd $(srcdir)/dists/codeblocks && ../../devtools/create_project/create_project ../.. --codeblocks >/dev/null && git add -f engines/plugins_table.h *.workspace *.cbp diff --git a/video/mpegps_decoder.cpp b/video/mpegps_decoder.cpp index 6942efbe87..d2e9554c8f 100644 --- a/video/mpegps_decoder.cpp +++ b/video/mpegps_decoder.cpp @@ -21,7 +21,6 @@ */ #include "audio/audiostream.h" -#include "audio/decoders/raw.h" #include "audio/decoders/mp3.h" #include "common/debug.h" #include "common/endian.h" diff --git a/video/psx_decoder.cpp b/video/psx_decoder.cpp index 91f8e1dafc..4f14e2ea4f 100644 --- a/video/psx_decoder.cpp +++ b/video/psx_decoder.cpp @@ -24,7 +24,6 @@ // MDEC video emulation based on http://kenai.com/downloads/jpsxdec/Old/PlayStation1_STR_format1-00.txt #include "audio/audiostream.h" -#include "audio/mixer.h" #include "audio/decoders/raw.h" #include "common/bitstream.h" #include "common/huffman.h" |