diff options
37 files changed, 2650 insertions, 1541 deletions
| diff --git a/dists/scummvm_logo.bmp b/dists/scummvm_logo.bmpBinary files differ new file mode 100644 index 0000000000..8217019be4 --- /dev/null +++ b/dists/scummvm_logo.bmp diff --git a/doc/cz/PrectiMe b/doc/cz/PrectiMe index 2baf145cd9..d360aa46f9 100644 --- a/doc/cz/PrectiMe +++ b/doc/cz/PrectiMe @@ -1841,7 +1841,7 @@ Nebo novější (starší verze mohou fungovat, ale nejsou podporovány) a podpo  Některé části ScummVM, zvláště zvětšovače, mají vysoce optimalizované verze napsané v assembleru. Pokud si přejete tuto možnost použít, potřebuje mít nainstalován assembler nasm (viz http://nasm.sf.net). Nezapomeňte, že v současnosti máme pouze verze optimalizované pro x86 MMX, a nebudou sestaveny pro jiné procesory.
 -Na Win9x/NT/XP můžete určit USE_WINDBG a připojit WinDbg pro procházení ladících zpráv (viz http://www.sysinternals.com/ntw2k/freeware/debugview.shtml).
 +Na Win9x/NT/XP můžete určit USE_WINDBG a připojit WinDbg pro procházení ladících zpráv (viz https://technet.microsoft.com/en-us/sysinternals/debugview.aspx).
    GCC a MinGW32:
      * Zadejte "./configure"
 diff --git a/engines/engine.cpp b/engines/engine.cpp index 24008dd073..1a143e17b4 100644 --- a/engines/engine.cpp +++ b/engines/engine.cpp @@ -41,6 +41,7 @@  #include "common/error.h"  #include "common/list.h"  #include "common/list_intern.h" +#include "common/memstream.h"  #include "common/scummsys.h"  #include "common/taskbar.h"  #include "common/textconsole.h" @@ -48,7 +49,9 @@  #include "common/singleton.h"  #include "backends/keymapper/keymapper.h" +#include "base/version.h" +#include "gui/gui-manager.h"  #include "gui/debugger.h"  #include "gui/dialog.h"  #include "gui/message.h" @@ -56,7 +59,9 @@  #include "audio/mixer.h"  #include "graphics/cursorman.h" +#include "graphics/fontman.h"  #include "graphics/pixelformat.h" +#include "image/bmp.h"  #ifdef _WIN32_WCE  extern bool isSmartphone(); @@ -240,6 +245,59 @@ void initCommonGFX(bool defaultTo1XScaler) {  		g_system->setFeatureState(OSystem::kFeatureFullscreenMode, ConfMan.getBool("fullscreen"));  } +// Please leave the splash screen in working order for your releases, even if they're commercial. +// This is a proper and good way to show your appreciation for our hard work over these years. +bool splash = false; + +#include "logo_data.h" + +void splashScreen() { +	Common::MemoryReadStream stream(logo_data, ARRAYSIZE(logo_data)); + +	Image::BitmapDecoder bitmap; + +	if (!bitmap.loadStream(stream)) { +		warning("Error loading logo file"); +		return; +	} + +	g_system->showOverlay(); + +	// Fill with orange +	Graphics::Surface screen; +	screen.create(g_system->getOverlayWidth(), g_system->getOverlayHeight(), g_system->getOverlayFormat()); +	screen.fillRect(Common::Rect(screen.w, screen.h), screen.format.ARGBToColor(0xff, 0xd4, 0x75, 0x0b)); + +	// Load logo +	Graphics::Surface *logo = bitmap.getSurface()->convertTo(g_system->getOverlayFormat(), bitmap.getPalette()); +	int lx = (g_system->getOverlayWidth() - logo->w) / 2; +	int ly = (g_system->getOverlayHeight() - logo->h) / 2; + +	// Print version information +	const Graphics::Font *font = FontMan.getFontByUsage(Graphics::FontManager::kConsoleFont); +	int w = font->getStringWidth(gScummVMVersionDate); +	int x = g_system->getOverlayWidth() - w - 5; // lx + logo->w - w + 5; +	int y = g_system->getOverlayHeight() - font->getFontHeight() - 5; //ly + logo->h + 5; +	font->drawString(&screen, gScummVMVersionDate, x, y, w, screen.format.ARGBToColor(0xff, 0, 0, 0)); + +	g_system->copyRectToOverlay(screen.getPixels(), screen.pitch, 0, 0, screen.w, screen.h); + +	// Draw logo +	g_system->copyRectToOverlay(logo->getPixels(), logo->pitch, lx, ly, logo->w, logo->h); + +	// Delay 0.6 secs +	uint time0 = g_system->getMillis(); +	Common::Event event; +	while (time0 + 600 > g_system->getMillis()) { +		g_system->updateScreen(); +		g_system->getEventManager()->pollEvent(event); +		g_system->delayMillis(10); +	} +	g_system->hideOverlay(); + +	splash = true; +} +  void initGraphics(int width, int height, bool defaultTo1xScaler, const Graphics::PixelFormat *format) {  	g_system->beginGFXTransaction(); @@ -258,6 +316,9 @@ void initGraphics(int width, int height, bool defaultTo1xScaler, const Graphics:  	OSystem::TransactionError gfxError = g_system->endGFXTransaction(); +	if (!splash && !GUI::GuiManager::instance()._launched) +		splashScreen(); +  	if (gfxError == OSystem::kTransactionSuccess)  		return; diff --git a/engines/lab/anim.cpp b/engines/lab/anim.cpp index eb825fb4c0..0c01b072c4 100644 --- a/engines/lab/anim.cpp +++ b/engines/lab/anim.cpp @@ -80,6 +80,9 @@ void Anim::setOutputBuffer(byte *memoryBuffer) {  	_outputBuffer = memoryBuffer;  } +uint16 Anim::getDIFFHeight() { +	return _headerdata._height; +}  void Anim::diffNextFrame(bool onlyDiffData) {  	if (_lastBlockHeader == 65535) @@ -90,14 +93,12 @@ void Anim::diffNextFrame(bool onlyDiffData) {  	byte *startOfBuf = _outputBuffer;  	int bufPitch = _vm->_graphics->_screenWidth; -	if (!_outputBuffer) { +	if (!startOfBuf) {  		startOfBuf = _vm->_graphics->getCurrentDrawingBuffer();  		drawOnScreen = true;  	}  	byte *endOfBuf = startOfBuf + (int)_diffWidth * _diffHeight; -	_vm->_event->mouseHide(); -  	int curBit = 0;  	while (1) { @@ -217,7 +218,9 @@ void Anim::diffNextFrame(bool onlyDiffData) {  			_sampleSpeed = _diffFile->readUint16LE();  			_diffFile->skip(2); -			_vm->_music->playSoundEffect(_sampleSpeed, _size, _diffFile); +			// Sound effects embedded in animations are started here. These are +			// usually animation-specific, like door opening sounds, and are not looped +			_vm->_music->playSoundEffect(_sampleSpeed, _size, false, _diffFile);  			break;  		case 65535: diff --git a/engines/lab/anim.h b/engines/lab/anim.h index 1979aa5979..0118403842 100644 --- a/engines/lab/anim.h +++ b/engines/lab/anim.h @@ -66,12 +66,12 @@ private:  	uint32 _diffHeight;  	byte *_outputBuffer; +	DIFFHeader _headerdata;  public:  	Anim(LabEngine *vm); -	virtual ~Anim(); +	~Anim(); -	DIFFHeader _headerdata;  	char _diffPalette[256 * 3];  	bool _waitForEffect; // Wait for each sound effect to finish before continuing.  	bool _doBlack;       // Black the screen before new picture @@ -94,6 +94,8 @@ public:  	 * Stops an animation from running.  	 */  	void stopDiffEnd(); + +	uint16 getDIFFHeight();  };  } // End of namespace Lab diff --git a/engines/lab/console.cpp b/engines/lab/console.cpp index 31b52da0ba..12eafd3789 100644 --- a/engines/lab/console.cpp +++ b/engines/lab/console.cpp @@ -86,7 +86,7 @@ bool Console::Cmd_DumpSceneResources(int argc, const char **argv) {  			debugPrintf(" (from %s to %s)", directions[rule->_param1], directions[rule->_param2]);  		debugPrintf("\n"); -		Common::List<Action>::iterator action; +		ActionList::iterator action;  		for (action = rule->_actionList.begin(); action != rule->_actionList.end(); ++action) {  			debugPrintf("  - %s ('%s', %d, %d, %d)\n", actionTypes[action->_actionType], action->_messages[0].c_str(), action->_param1, action->_param2, action->_param3);  		} @@ -110,7 +110,7 @@ bool Console::Cmd_FindAction(int argc, const char **argv) {  		_vm->_resource->readViews(i);  		for (RuleList::iterator rule = _vm->_rooms[i]._rules.begin(); rule != _vm->_rooms[i]._rules.end(); ++rule) { -			Common::List<Action>::iterator action; +			ActionList::iterator action;  			for (action = rule->_actionList.begin(); action != rule->_actionList.end(); ++action) {  				if (action->_actionType == actionId &&  					(action->_param1 == param1 || param1 == -1) && diff --git a/engines/lab/detection.cpp b/engines/lab/detection.cpp index 0810c4cb44..805594bf6a 100644 --- a/engines/lab/detection.cpp +++ b/engines/lab/detection.cpp @@ -43,7 +43,6 @@ static const ADGameDescription labDescriptions[] = {  		"",  		{  			{ "doors",       0, "d77536010e7e5ae17ee066323ceb9585", 2537 }, // game/doors -			{ "notes11",     0, "63e873f659f8f46f9809d16a2bf653c7", 3562 }, // fonts/notes11  			{ "noteold.fon", 0, "6c1d90ad55149556e79d3f7bfddb4bd7", 9252 }, // game/spict/noteold.fon  			{ NULL, 0, NULL, 0 }  		}, @@ -57,7 +56,6 @@ static const ADGameDescription labDescriptions[] = {  		"Lowres",  		{  			{ "doors",   0, "d77536010e7e5ae17ee066323ceb9585", 2537 }, // game/doors -			{ "notes11", 0, "63e873f659f8f46f9809d16a2bf653c7", 3562 }, // fonts/notes11  			{ "64b",     0, "3a84d41bcc6a782f22e8e954bce09721", 39916 }, // game/pict/h2/64b  			{ NULL, 0, NULL, 0 }  		}, @@ -71,7 +69,6 @@ static const ADGameDescription labDescriptions[] = {  		"Rerelease",  		{  			{ "doors",   0, "d77536010e7e5ae17ee066323ceb9585", 2537 }, // game/doors -			{ "notes11", 0, "63e873f659f8f46f9809d16a2bf653c7", 3562 }, // fonts/notes11  			{ "noteold.fon", 0, "6c1d90ad55149556e79d3f7bfddb4bd7", 9252 }, // game/spict/noteold.fon  			{ "wyrmkeep",0, "97c7064c54c28b952d37c4ebff6efa50", 52286 }, // game/spict/intro  			{ NULL, 0, NULL, 0 } @@ -94,7 +91,6 @@ static const ADGameDescription labDescriptions[] = {  };  static const char *const directoryGlobs[] = { -		"fonts",  		"game",  		"pict",  		"spict", diff --git a/engines/lab/dispman.cpp b/engines/lab/dispman.cpp index 8ff6a61675..5dba424018 100644 --- a/engines/lab/dispman.cpp +++ b/engines/lab/dispman.cpp @@ -57,7 +57,7 @@ DisplayMan::DisplayMan(LabEngine *vm) : _vm(vm) {  	_screenHeight = 0;  	for (int i = 0; i < 256 * 3; i++) -		_curvgapal[i] = 0; +		_curVgaPal[i] = 0;  }  DisplayMan::~DisplayMan() { @@ -88,10 +88,6 @@ void DisplayMan::readPict(const Common::String filename, bool playOnce, bool onl  	_vm->_anim->stopDiff();  	loadPict(filename);  	_vm->updateMusicAndEvents(); - -	if (!_vm->_music->_loopSoundEffect) -		_vm->_music->stopSoundEffect(); -  	_vm->_anim->setOutputBuffer(memoryBuffer);  	_vm->_anim->readDiff(_curBitmap, playOnce, onlyDiffData);  } @@ -383,10 +379,10 @@ void DisplayMan::rectFill(Common::Rect fillRect, byte color) {  		height = _screenHeight - fillRect.top;  	if ((width > 0) && (height > 0)) { -		char *d = (char *)getCurrentDrawingBuffer() + fillRect.top * _screenWidth + fillRect.left; +		byte *d = getCurrentDrawingBuffer() + fillRect.top * _screenWidth + fillRect.left;  		while (height-- > 0) { -			char *dd = d; +			byte *dd = d;  			int ww = width;  			while (ww-- > 0) { @@ -458,11 +454,11 @@ void DisplayMan::writeColorRegs(byte *buf, uint16 first, uint16 numReg) {  		tmp[i] = (buf[i] << 2) | (buf[i] >> 4);	// better results than buf[i] * 4  	_vm->_system->getPaletteManager()->setPalette(tmp, first, numReg); -	memcpy(&(_curvgapal[first * 3]), buf, numReg * 3); +	memcpy(&(_curVgaPal[first * 3]), buf, numReg * 3);  }  void DisplayMan::setPalette(void *newPal, uint16 numColors) { -	if (memcmp(newPal, _curvgapal, numColors * 3) != 0) +	if (memcmp(newPal, _curVgaPal, numColors * 3) != 0)  		writeColorRegs((byte *)newPal, 0, numColors);  } @@ -473,7 +469,7 @@ byte *DisplayMan::getCurrentDrawingBuffer() {  	return _displayBuffer;  } -void DisplayMan::checkerboardEffect(uint16 penColor, uint16 x1, uint16 y1, uint16 x2, uint16 y2) { +void DisplayMan::checkerBoardEffect(uint16 penColor, uint16 x1, uint16 y1, uint16 x2, uint16 y2) {  	int w = x2 - x1 + 1;  	int h = y2 - y1 + 1; @@ -677,20 +673,19 @@ void DisplayMan::doScrollWipe(const Common::String filename) {  	uint16 nheight = height;  	uint16 startLine = 0, onRow = 0; -	while (onRow < _vm->_anim->_headerdata._height) { +	while (onRow < _vm->_anim->getDIFFHeight()) {  		_vm->updateMusicAndEvents();  		if ((by > nheight) && nheight)  			by = nheight; -		if ((startLine + by) > (_vm->_anim->_headerdata._height - height - 1)) +		if ((startLine + by) > (_vm->_anim->getDIFFHeight() - height - 1))  			break;  		if (nheight)  			nheight -= by;  		copyPage(width, height, nheight, startLine, mem); -  		screenUpdate();  		if (!nheight) @@ -719,7 +714,7 @@ void DisplayMan::doScrollBounce() {  	byte *mem = _vm->_anim->_scrollScreenBuffer;  	_vm->updateMusicAndEvents(); -	int startLine = _vm->_anim->_headerdata._height - height - 1; +	int startLine = _vm->_anim->getDIFFHeight() - height - 1;  	for (int i = 0; i < 5; i++) {  		_vm->updateMusicAndEvents(); @@ -738,7 +733,7 @@ void DisplayMan::doScrollBounce() {  	_vm->_event->mouseShow();  } -void DisplayMan::doTransWipe(CloseDataPtr *closePtrList, const Common::String filename) { +void DisplayMan::doTransWipe(const Common::String filename) {  	uint16 lastY, linesLast;  	if (_vm->_isHiRes) { @@ -763,7 +758,7 @@ void DisplayMan::doTransWipe(CloseDataPtr *closePtrList, const Common::String fi  				}  				if (j == 0) -					checkerboardEffect(0, 0, curY, _screenWidth - 1, curY + 1); +					checkerBoardEffect(0, 0, curY, _screenWidth - 1, curY + 1);  				else  					rectFill(0, curY, _screenWidth - 1, curY + 1, 0);  				curY += 4; @@ -773,26 +768,26 @@ void DisplayMan::doTransWipe(CloseDataPtr *closePtrList, const Common::String fi  	}	// for j  	if (filename.empty()) -		_vm->_curFileName = _vm->getPictName(closePtrList); +		_vm->_curFileName = _vm->getPictName(true);  	else if (filename[0] > ' ')  		_vm->_curFileName = filename;  	else -		_vm->_curFileName = _vm->getPictName(closePtrList); +		_vm->_curFileName = _vm->getPictName(true);  	byte *bitMapBuffer = new byte[_screenWidth * (lastY + 5)];  	readPict(_vm->_curFileName, true, false, bitMapBuffer);  	setPalette(_vm->_anim->_diffPalette, 256); -	Image imSource(_vm); -	imSource._width = _screenWidth; -	imSource._height = lastY; -	imSource._imageData = bitMapBuffer; +	Image imgSource(_vm); +	imgSource._width = _screenWidth; +	imgSource._height = lastY; +	imgSource.setData(bitMapBuffer, true); -	Image imDest(_vm); -	imDest._width = _screenWidth; -	imDest._height = _screenHeight; -	imDest._imageData = getCurrentDrawingBuffer(); +	Image imgDest(_vm); +	imgDest._width = _screenWidth; +	imgDest._height = _screenHeight; +	imgDest.setData(getCurrentDrawingBuffer(), false);  	for (int j = 0; j < 2; j++) {  		for (int i = 0; i < 2; i++) { @@ -805,14 +800,14 @@ void DisplayMan::doTransWipe(CloseDataPtr *closePtrList, const Common::String fi  					linesDone = 0;  				} -				imDest._imageData = getCurrentDrawingBuffer(); +				imgDest.setData(getCurrentDrawingBuffer(), false);  				if (j == 0) { -					imSource.blitBitmap(0, curY, &imDest, 0, curY, _screenWidth, 2, false); -					checkerboardEffect(0, 0, curY, _screenWidth - 1, curY + 1); +					imgSource.blitBitmap(0, curY, &imgDest, 0, curY, _screenWidth, 2, false); +					checkerBoardEffect(0, 0, curY, _screenWidth - 1, curY + 1);  				} else {  					uint16 bitmapHeight = (curY == lastY) ? 1 : 2; -					imSource.blitBitmap(0, curY, &imDest, 0, curY, _screenWidth, bitmapHeight, false); +					imgSource.blitBitmap(0, curY, &imgDest, 0, curY, _screenWidth, bitmapHeight, false);  				}  				curY += 4;  				linesDone++; @@ -820,31 +815,28 @@ void DisplayMan::doTransWipe(CloseDataPtr *closePtrList, const Common::String fi  		}	// for i  	}	// for j -	// Prevent the Image destructor from deleting the drawing buffer -	imDest._imageData = nullptr; -  	// bitMapBuffer will be deleted by the Image destructor  } -void DisplayMan::doTransition(TransitionType transitionType, CloseDataPtr *closePtrList, const Common::String filename) { +void DisplayMan::doTransition(TransitionType transitionType, const Common::String filename) {  	switch (transitionType) {  	case kTransitionWipe:  	case kTransitionTransporter: -		doTransWipe(closePtrList, filename); +		doTransWipe(filename);  		break; -	case kTransitionScrollWipe: +	case kTransitionScrollWipe:		// only used in scene 7 (street, when teleporting to the surreal maze)  		doScrollWipe(filename);  		break; -	case kTransitionScrollBlack: +	case kTransitionScrollBlack:	// only used in scene 7 (street, when teleporting to the surreal maze)  		doScrollBlack();  		break; -	case kTransitionScrollBounce: +	case kTransitionScrollBounce:	// only used in scene 7 (street, when teleporting to the surreal maze)  		doScrollBounce();  		break; -	case kTransitionReadFirstFrame: +	case kTransitionReadFirstFrame:	// only used in scene 7 (street, when teleporting to the surreal maze)  		readPict(filename, false);  		break; -	case kTransitionReadNextFrame: +	case kTransitionReadNextFrame:	// only used in scene 7 (street, when teleporting to the surreal maze)  		_vm->_anim->diffNextFrame();  		break;  	case kTransitionNone: @@ -876,8 +868,8 @@ void DisplayMan::blackAllScreen() {  }  void DisplayMan::scrollDisplayX(int16 dx, uint16 x1, uint16 y1, uint16 x2, uint16 y2, byte *buffer) { -	Image im(_vm); -	im._imageData = buffer; +	Image img(_vm); +	img.setData(buffer, false);  	if (x1 > x2)  		SWAP<uint16>(x1, x2); @@ -886,30 +878,27 @@ void DisplayMan::scrollDisplayX(int16 dx, uint16 x1, uint16 y1, uint16 x2, uint1  		SWAP<uint16>(y1, y2);  	if (dx > 0) { -		im._width = x2 - x1 + 1 - dx; -		im._height = y2 - y1 + 1; +		img._width = x2 - x1 + 1 - dx; +		img._height = y2 - y1 + 1; -		im.readScreenImage(x1, y1); -		im.drawImage(x1 + dx, y1); +		img.readScreenImage(x1, y1); +		img.drawImage(x1 + dx, y1);  		rectFill(x1, y1, x1 + dx - 1, y2, 0);  	} else if (dx < 0) { -		im._width = x2 - x1 + 1 + dx; -		im._height = y2 - y1 + 1; +		img._width = x2 - x1 + 1 + dx; +		img._height = y2 - y1 + 1; -		im.readScreenImage(x1 - dx, y1); -		im.drawImage(x1, y1); +		img.readScreenImage(x1 - dx, y1); +		img.drawImage(x1, y1);  		rectFill(x2 + dx + 1, y1, x2, y2, 0);  	} - -	// Prevent the Image destructor from deleting the external buffer -	im._imageData = nullptr;  }  void DisplayMan::scrollDisplayY(int16 dy, uint16 x1, uint16 y1, uint16 x2, uint16 y2, byte *buffer) { -	Image im(_vm); -	im._imageData = buffer; +	Image img(_vm); +	img.setData(buffer, false);  	if (x1 > x2)  		SWAP<uint16>(x1, x2); @@ -918,25 +907,22 @@ void DisplayMan::scrollDisplayY(int16 dy, uint16 x1, uint16 y1, uint16 x2, uint1  		SWAP<uint16>(y1, y2);  	if (dy > 0) { -		im._width = x2 - x1 + 1; -		im._height = y2 - y1 + 1 - dy; +		img._width = x2 - x1 + 1; +		img._height = y2 - y1 + 1 - dy; -		im.readScreenImage(x1, y1); -		im.drawImage(x1, y1 + dy); +		img.readScreenImage(x1, y1); +		img.drawImage(x1, y1 + dy);  		rectFill(x1, y1, x2, y1 + dy - 1, 0);  	} else if (dy < 0) { -		im._width = x2 - x1 + 1; -		im._height = y2 - y1 + 1 + dy; +		img._width = x2 - x1 + 1; +		img._height = y2 - y1 + 1 + dy; -		im.readScreenImage(x1, y1 - dy); -		im.drawImage(x1, y1); +		img.readScreenImage(x1, y1 - dy); +		img.drawImage(x1, y1);  		rectFill(x1, y2 + dy + 1, x2, y2, 0);  	} - -	// Prevent the Image destructor from deleting the external buffer -	im._imageData = nullptr;  }  uint16 DisplayMan::fadeNumIn(uint16 num, uint16 res, uint16 counter) { diff --git a/engines/lab/dispman.h b/engines/lab/dispman.h index 2cf58c379f..6d70172f17 100644 --- a/engines/lab/dispman.h +++ b/engines/lab/dispman.h @@ -70,22 +70,12 @@ private:  	 */  	Common::String getWord(const char *mainBuffer); -	byte _curPen; -	Common::File *_curBitmap; -	byte _curvgapal[256 * 3]; - -public: -	DisplayMan(LabEngine *lab); -	virtual ~DisplayMan(); - -	void loadPict(const Common::String filename); -	void loadBackPict(const Common::String fileName, uint16 *highPal); +	void createBox(uint16 y2);  	/** -	 * Reads in a picture into the display bitmap. +	 * Sets up either a low-res or a high-res 256 color screen.  	 */ -	void readPict(const Common::String filename, bool playOnce = true, bool onlyDiffData = false, byte *memoryBuffer = nullptr); -	void freePict(); +	void createScreen(bool hiRes);  	/**  	 * Scrolls the display to black. @@ -106,12 +96,57 @@ public:  	/**  	 * Does the transporter wipe.  	 */ -	void doTransWipe(CloseDataPtr *closePtrList, const Common::String filename); +	void doTransWipe(const Common::String filename); + +	/** +	 * Draws a vertical line. +	 */ +	void drawHLine(uint16 x, uint16 y1, uint16 y2, byte color); + +	/** +	 * Draws a horizontal line. +	 */ +	void drawVLine(uint16 x1, uint16 y, uint16 x2, byte color); + +	/** +	 * Draws the text to the screen. +	 */ +	void drawText(TextFont *tf, uint16 x, uint16 y, uint16 color, const Common::String text); + +	/** +	 * Gets a line of text for flowText; makes sure that its length is less than +	 * or equal to the maximum width. +	 */ +	Common::String getLine(TextFont *tf, const char **mainBuffer, uint16 lineWidth); + +	/** +	 * Returns the length of a text in the specified font. +	 */ +	uint16 textLength(TextFont *font, const Common::String text); + +	bool _actionMessageShown; +	byte _curPen; +	Common::File *_curBitmap; +	byte _curVgaPal[256 * 3]; +	byte *_currentDisplayBuffer; + +public: +	DisplayMan(LabEngine *lab); +	virtual ~DisplayMan(); + +	void loadPict(const Common::String filename); +	void loadBackPict(const Common::String fileName, uint16 *highPal); + +	/** +	 * Reads in a picture into the display bitmap. +	 */ +	void readPict(const Common::String filename, bool playOnce = true, bool onlyDiffData = false, byte *memoryBuffer = nullptr); +	void freePict();  	/**  	 * Does a certain number of pre-programmed wipes.  	 */ -	void doTransition(TransitionType transitionType, CloseDataPtr *closePtrList, const Common::String filename); +	void doTransition(TransitionType transitionType, const Common::String filename);  	/**  	 * Changes the front screen to black. @@ -127,7 +162,6 @@ public:  	 * Changes the entire screen to black.  	*/  	void blackAllScreen(); -	void createBox(uint16 y2);  	/**  	 * Draws the control panel display. @@ -149,11 +183,6 @@ public:  	void setActionMessage(bool val) { _actionMessageShown = val; }  	/** -	 * Sets the pen number to use on all the drawing operations. -	 */ -	void setPen(byte pennum); - -	/**  	 * Fills in a rectangle.  	 */  	void rectFill(uint16 x1, uint16 y1, uint16 x2, uint16 y2, byte color); @@ -178,23 +207,9 @@ public:  	int flowText(TextFont *font, int16 spacing, byte penColor, byte backPen, bool fillBack,  				bool centerh, bool centerv, bool output, Common::Rect textRect, const char *text, Image *targetImage = nullptr); -	/** -	 * Draws a vertical line. -	 */ -	void drawHLine(uint16 x, uint16 y1, uint16 y2, byte color); - -	/** -	 * Draws a horizontal line. -	 */ -	void drawVLine(uint16 x1, uint16 y, uint16 x2, byte color);  	void screenUpdate();  	/** -	 * Sets up either a low-res or a high-res 256 color screen. -	 */ -	void createScreen(bool hiRes); - -	/**  	 * Converts a 16-color Amiga palette to a VGA palette, then sets  	 * the VGA palette.  	 */ @@ -216,7 +231,7 @@ public:  	/**  	 * Overlays a region on the screen using the desired pen color.  	 */ -	void checkerboardEffect(uint16 penColor, uint16 x1, uint16 y1, uint16 x2, uint16 y2); +	void checkerBoardEffect(uint16 penColor, uint16 x1, uint16 y1, uint16 x2, uint16 y2);  	/**  	 * Returns the base address of the current VGA display. @@ -242,34 +257,16 @@ public:  	void freeFont(TextFont **font);  	/** -	 * Returns the length of a text in the specified font. -	 */ -	uint16 textLength(TextFont *font, const Common::String text); - -	/**  	 * Returns the height of a specified font.  	 */  	uint16 textHeight(TextFont *tf); -	/** -	 * Draws the text to the screen. -	 */ -	void drawText(TextFont *tf, uint16 x, uint16 y, uint16 color, const Common::String text); - -	/** -	 * Gets a line of text for flowText; makes sure that its length is less than -	 * or equal to the maximum width. -	 */ -	Common::String getLine(TextFont *tf, const char **mainBuffer, uint16 lineWidth); -  	bool _longWinInFront;  	bool _lastMessageLong; -	bool _actionMessageShown;  	uint32 _screenBytesPerPage;  	int _screenWidth;  	int _screenHeight;  	byte *_displayBuffer; -	byte *_currentDisplayBuffer;  	uint16 *_fadePalette;  }; diff --git a/engines/lab/engine.cpp b/engines/lab/engine.cpp index a01df7ec26..95dcc71923 100644 --- a/engines/lab/engine.cpp +++ b/engines/lab/engine.cpp @@ -39,15 +39,19 @@  #include "lab/music.h"  #include "lab/processroom.h"  #include "lab/resource.h" -#include "lab/tilepuzzle.h" +#include "lab/speciallocks.h"  #include "lab/utils.h"  namespace Lab { -// LAB: Labyrinth specific code for the special puzzles -#define SPECIALLOCK         100 -#define SPECIALBRICK        101 -#define SPECIALBRICKNOMOUSE 102 +#define CRUMBSWIDTH 24 +#define CRUMBSHEIGHT 24 + +enum SpecialLock { +	kLockCombination = 100, +	kLockTiles = 101, +	kLockTileSolution = 102 +};  enum Items {  	kItemHelmet = 1, @@ -103,7 +107,7 @@ void LabEngine::setQuarters(uint16 quarters) {  	_inventory[kItemQuarter]._quantity = quarters;  } -void LabEngine::drawRoomMessage(uint16 curInv, CloseDataPtr closePtr) { +void LabEngine::drawRoomMessage(uint16 curInv, const CloseData *closePtr) {  	if (_lastTooLong) {  		_lastTooLong = false;  		return; @@ -165,7 +169,7 @@ void LabEngine::eatMessages() {  	} while (msg && !shouldQuit());  } -bool LabEngine::doCloseUp(CloseDataPtr closePtr) { +bool LabEngine::doCloseUp(const CloseData *closePtr) {  	if (!closePtr)  		return false; @@ -425,7 +429,7 @@ void LabEngine::mainGameLoop() {  			// Sets the current picture properly on the screen  			if (_mainDisplay) -				_nextFileName = getPictName(&_closeDataPtr); +				_nextFileName = getPictName(true);  			if (_noUpdateDiff) {  				// Potentially entered another room @@ -440,16 +444,14 @@ void LabEngine::mainGameLoop() {  				_roomsFound->inclElement(_roomNum);  				_curFileName = _nextFileName; -				if (_closeDataPtr) { +				if (_closeDataPtr && _mainDisplay) {  					switch (_closeDataPtr->_closeUpType) { -					case SPECIALLOCK: -						if (_mainDisplay) -							_tilePuzzle->showCombination(_curFileName); +					case kLockCombination: +						_specialLocks->showCombinationLock(_curFileName);  						break; -					case SPECIALBRICK: -					case SPECIALBRICKNOMOUSE: -						if (_mainDisplay) -							_tilePuzzle->showTile(_curFileName, (_closeDataPtr->_closeUpType == SPECIALBRICKNOMOUSE)); +					case kLockTiles: +					case kLockTileSolution: +						_specialLocks->showTileLock(_curFileName, (_closeDataPtr->_closeUpType == kLockTileSolution));  						break;  					default:  						_graphics->readPict(_curFileName, false); @@ -498,7 +500,7 @@ void LabEngine::mainGameLoop() {  					gotMessage = true;  					mayShowCrumbIndicator();  					_graphics->screenUpdate(); -					if (!fromCrumbs(kMessageButtonUp, code, 0, _event->updateAndGetMousePos(), curInv, curMsg, forceDraw, code, actionMode)) +					if (!processEvent(kMessageButtonUp, code, 0, _event->updateAndGetMousePos(), curInv, curMsg, forceDraw, code, actionMode))  						break;  				}  			} @@ -508,7 +510,7 @@ void LabEngine::mainGameLoop() {  		} else {  			gotMessage = true;  			_followingCrumbs = false; -			if (!fromCrumbs(curMsg->_msgClass, curMsg->_code, curMsg->_qualifier, curMsg->_mouse, curInv, curMsg, forceDraw, curMsg->_code, actionMode)) +			if (!processEvent(curMsg->_msgClass, curMsg->_code, curMsg->_qualifier, curMsg->_mouse, curInv, curMsg, forceDraw, curMsg->_code, actionMode))  				break;  		}  	} @@ -533,59 +535,47 @@ void LabEngine::showLab2Teaser() {  	}  } -bool LabEngine::fromCrumbs(uint32 tmpClass, uint16 code, uint16 qualifier, Common::Point tmpPos, +bool LabEngine::processEvent(MessageClass tmpClass, uint16 code, uint16 qualifier, Common::Point tmpPos,  			uint16 &curInv, IntuiMessage *curMsg, bool &forceDraw, uint16 buttonId, uint16 &actionMode) { -	uint32 msgClass = tmpClass; +	MessageClass msgClass = tmpClass;  	Common::Point curPos = tmpPos; -  	uint16 oldDirection = 0;  	uint16 lastInv = kItemMap; -	bool leftButtonClick = false; -	bool rightButtonClick = false; + +	if (code == Common::KEYCODE_RETURN) +		msgClass = kMessageLeftClick; + +	bool leftButtonClick = (msgClass == kMessageLeftClick); +	bool rightButtonClick = (msgClass == kMessageRightClick);  	_anim->_doBlack = false;  	if (shouldQuit())  		return false; -	if ((msgClass == kMessageRawKey) && !_graphics->_longWinInFront) { -		if (!processKey(curMsg, msgClass, qualifier, curPos, curInv, forceDraw, code)) -			return false; -	} - -	leftButtonClick = (msgClass == kMessageLeftClick); -	rightButtonClick = (msgClass == kMessageRightClick); -  	if (_graphics->_longWinInFront) { -		if ((msgClass == kMessageRawKey) || (leftButtonClick || rightButtonClick)) { +		if (msgClass == kMessageRawKey || leftButtonClick || rightButtonClick) {  			_graphics->_longWinInFront = false;  			_graphics->drawPanel();  			drawRoomMessage(curInv, _closeDataPtr);  			_graphics->screenUpdate();  		} -	} else if ((msgClass == kMessageButtonUp) && !_alternate) { -		processMainButton(curInv, lastInv, oldDirection, forceDraw, buttonId, actionMode); -	} else if ((msgClass == kMessageButtonUp) && _alternate) { -		processAltButton(curInv, lastInv, buttonId, actionMode); +	} else if (msgClass == kMessageRawKey) { +		return processKey(curMsg, msgClass, qualifier, curPos, curInv, forceDraw, code); +	} else if (msgClass == kMessageButtonUp) { +		if (!_alternate) +			processMainButton(curInv, lastInv, oldDirection, forceDraw, buttonId, actionMode); +		else +			processAltButton(curInv, lastInv, buttonId, actionMode);  	} else if (leftButtonClick && _mainDisplay) {  		interfaceOff();  		_mainDisplay = true; -		if (_closeDataPtr) { -			switch (_closeDataPtr->_closeUpType) { -			case SPECIALLOCK: -				if (_mainDisplay) -					_tilePuzzle->mouseCombination(curPos); -				break; -			case SPECIALBRICK: -				if (_mainDisplay) -					_tilePuzzle->mouseTile(curPos); -				break; -			default: -				performAction(actionMode, curPos, curInv); -				break; -			} -		} else +		if (_closeDataPtr && _closeDataPtr->_closeUpType == kLockCombination) +			_specialLocks->combinationClick(curPos); +		else if (_closeDataPtr && _closeDataPtr->_closeUpType == kLockTiles) +			_specialLocks->tileClick(curPos); +		else  			performAction(actionMode, curPos, curInv);  		mayShowCrumbIndicator(); @@ -610,44 +600,20 @@ bool LabEngine::fromCrumbs(uint32 tmpClass, uint16 code, uint16 qualifier, Commo  		mayShowCrumbIndicator();  		_graphics->screenUpdate(); -	} else if (msgClass == kMessageMoveCursorToCloseup) { -		CloseDataPtr tmpClosePtr = _closeDataPtr; - -		// get next close-up in list after the one pointed to by curPos -		setCurrentClose(curPos, &tmpClosePtr, true, true); - -		if (tmpClosePtr == _closeDataPtr) { -			tmpClosePtr = nullptr; -			if (!_closeDataPtr) { -				ViewData *vptr = getViewData(_roomNum, _direction); -				if (!vptr->_closeUps.empty()) -					tmpClosePtr = &(*vptr->_closeUps.begin()); -			} else { -				if (!_closeDataPtr->_subCloseUps.empty()) -					tmpClosePtr = &(*_closeDataPtr->_subCloseUps.begin()); -			} -		} -		if (tmpClosePtr) -			_event->setMousePos(Common::Point(_utils->scaleX((tmpClosePtr->_x1 + tmpClosePtr->_x2) / 2), _utils->scaleY((tmpClosePtr->_y1 + tmpClosePtr->_y2) / 2)));  	}  	return true;  } -bool LabEngine::processKey(IntuiMessage *curMsg, uint32 &msgClass, uint16 &qualifier, Common::Point &curPos, uint16 &curInv, bool &forceDraw, uint16 code) { -	if (code == Common::KEYCODE_RETURN) { -		// The return key -		msgClass = kMessageLeftClick; -		qualifier = 0; -		curPos = _event->getMousePos(); -	} else if ((getPlatform() == Common::kPlatformWindows) && (code == Common::KEYCODE_b)) { +bool LabEngine::processKey(IntuiMessage *curMsg, uint32 msgClass, uint16 &qualifier, Common::Point &curPos, uint16 &curInv, bool &forceDraw, uint16 code) { +	if ((getPlatform() == Common::kPlatformWindows) && (code == Common::KEYCODE_b)) {  		// Start bread crumbs  		_breadCrumbs[0]._roomNum = 0;  		_numCrumbs = 0;  		_droppingCrumbs = true;  		mayShowCrumbIndicator();  		_graphics->screenUpdate(); -	} else if ((code == Common::KEYCODE_f) || (code == Common::KEYCODE_r)) { +	} else if (getPlatform() == Common::kPlatformWindows && (code == Common::KEYCODE_f || code == Common::KEYCODE_r)) {  		// Follow bread crumbs  		if (_droppingCrumbs) {  			if (_numCrumbs > 0) { @@ -708,10 +674,17 @@ bool LabEngine::processKey(IntuiMessage *curMsg, uint32 &msgClass, uint16 &quali  		forceDraw = true;  		interfaceOn(); -	} else if (code == Common::KEYCODE_TAB) -		msgClass = kMessageMoveCursorToCloseup; -	else if (code == Common::KEYCODE_ESCAPE) +	} else if (code == Common::KEYCODE_ESCAPE) {  		_closeDataPtr = nullptr; +	} else if (code == Common::KEYCODE_TAB) { +		const CloseData *tmpClosePtr = _closeDataPtr; + +		// get next close-up in list after the one pointed to by curPos +		setCurrentClose(curPos, &tmpClosePtr, true, true); + +		if (tmpClosePtr != _closeDataPtr) +			_event->setMousePos(Common::Point(_utils->scaleX((tmpClosePtr->_x1 + tmpClosePtr->_x2) / 2), _utils->scaleY((tmpClosePtr->_y1 + tmpClosePtr->_y2) / 2))); +	}  	eatMessages(); @@ -729,7 +702,7 @@ void LabEngine::processMainButton(uint16 &curInv, uint16 &lastInv, uint16 &oldDi  	case kButtonClose:  	case kButtonLook:  		if ((actionMode == 4) && (buttonId == kButtonLook) && _closeDataPtr) { -			doMainView(&_closeDataPtr); +			doMainView();  			_anim->_doBlack = true;  			_closeDataPtr = nullptr; @@ -745,6 +718,7 @@ void LabEngine::processMainButton(uint16 &curInv, uint16 &lastInv, uint16 &oldDi  			drawStaticMessage(kTextTakeWhat + buttonId);  		}  		break; +  	case kButtonInventory:  		eatMessages(); @@ -778,7 +752,7 @@ void LabEngine::processMainButton(uint16 &curInv, uint16 &lastInv, uint16 &oldDi  		oldDirection = _direction;  		newDir = processArrow(_direction, buttonId - 6); -		doTurn(_direction, newDir, &_closeDataPtr); +		doTurn(_direction, newDir);  		_anim->_doBlack = true;  		_direction = newDir;  		forceDraw = true; @@ -789,7 +763,7 @@ void LabEngine::processMainButton(uint16 &curInv, uint16 &lastInv, uint16 &oldDi  		_closeDataPtr = nullptr;  		oldRoomNum = _roomNum; -		if (doGoForward(&_closeDataPtr)) { +		if (doGoForward()) {  			if (oldRoomNum == _roomNum)  				_anim->_doBlack = true;  		} else { @@ -846,6 +820,7 @@ void LabEngine::processMainButton(uint16 &curInv, uint16 &lastInv, uint16 &oldDi  		mayShowCrumbIndicator();  		break; +  	case kButtonMap:  		doUse(kItemMap); @@ -981,13 +956,13 @@ void LabEngine::performAction(uint16 actionMode, Common::Point curPos, uint16 &c  	switch (actionMode) {  	case 0:  		// Take something. -		if (doActionRule(curPos, actionMode, _roomNum, &_closeDataPtr)) +		if (doActionRule(curPos, actionMode, _roomNum))  			_curFileName = _newFileName; -		else if (takeItem(curPos, &_closeDataPtr)) +		else if (takeItem(curPos))  			drawStaticMessage(kTextTakeItem); -		else if (doActionRule(curPos, kRuleActionTakeDef, _roomNum, &_closeDataPtr)) +		else if (doActionRule(curPos, kRuleActionTakeDef, _roomNum))  			_curFileName = _newFileName; -		else if (doActionRule(curPos, kRuleActionTake, 0, &_closeDataPtr)) +		else if (doActionRule(curPos, kRuleActionTake, 0))  			_curFileName = _newFileName;  		else if (curPos.y < (_utils->vgaScaleY(149) + _utils->svgaCord(2)))  			drawStaticMessage(kTextNothing); @@ -998,9 +973,9 @@ void LabEngine::performAction(uint16 actionMode, Common::Point curPos, uint16 &c  	case 2:  	case 3:  		// Manipulate an object, Open up a "door" or Close a "door" -		if (doActionRule(curPos, actionMode, _roomNum, &_closeDataPtr)) +		if (doActionRule(curPos, actionMode, _roomNum))  			_curFileName = _newFileName; -		else if (!doActionRule(curPos, actionMode, 0, &_closeDataPtr)) { +		else if (!doActionRule(curPos, actionMode, 0)) {  			if (curPos.y < (_utils->vgaScaleY(149) + _utils->svgaCord(2)))  				drawStaticMessage(kTextNothing);  		} @@ -1008,7 +983,7 @@ void LabEngine::performAction(uint16 actionMode, Common::Point curPos, uint16 &c  	case 4: {  		// Look at closeups -		CloseDataPtr tmpClosePtr = _closeDataPtr; +		const CloseData *tmpClosePtr = _closeDataPtr;  		setCurrentClose(curPos, &tmpClosePtr, true);  		if (_closeDataPtr == tmpClosePtr) { @@ -1025,7 +1000,7 @@ void LabEngine::performAction(uint16 actionMode, Common::Point curPos, uint16 &c  	case 5:  		if (_conditions->in(curInv)) {  			// Use an item on something else -			if (doOperateRule(curPos, curInv, &_closeDataPtr)) { +			if (doOperateRule(curPos, curInv)) {  				_curFileName = _newFileName;  				if (!_conditions->in(curInv)) @@ -1125,11 +1100,41 @@ MainButton LabEngine::followCrumbs() {  void LabEngine::mayShowCrumbIndicator() { -	static Image dropCrumbsImage(24, 24, nullptr, this); +	static byte dropCrumbsImageData[CRUMBSWIDTH * CRUMBSHEIGHT] = { +		0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, +		0, 4, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 4, 0, +		4, 7, 7, 3, 4, 4, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 7, 7, 4, +		4, 7, 4, 4, 0, 0, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 7, 4, +		4, 7, 4, 0, 0, 0, 3, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 4, 7, 4, +		4, 7, 4, 0, 0, 3, 2, 2, 2, 3, 0, 0, 0, 0, 0, 0, 0, 3, 2, 3, 0, 4, 7, 4, +		4, 7, 4, 0, 0, 0, 3, 3, 3, 4, 4, 4, 4, 4, 4, 0, 0, 3, 2, 3, 0, 4, 7, 4, +		4, 7, 4, 0, 0, 0, 0, 0, 4, 7, 7, 7, 7, 7, 7, 4, 3, 2, 2, 2, 3, 4, 7, 4, +		4, 7, 4, 0, 0, 0, 0, 4, 7, 7, 4, 4, 4, 4, 7, 7, 4, 3, 3, 3, 0, 4, 7, 4, +		4, 7, 4, 0, 0, 0, 0, 4, 7, 4, 4, 0, 0, 4, 4, 7, 4, 0, 0, 0, 0, 4, 7, 4, +		4, 7, 4, 0, 0, 0, 0, 4, 7, 4, 0, 0, 0, 0, 4, 7, 4, 0, 0, 0, 0, 4, 7, 4, +		4, 7, 4, 0, 0, 0, 0, 4, 4, 4, 3, 0, 0, 0, 4, 7, 4, 0, 0, 0, 0, 4, 7, 4, +		4, 7, 4, 0, 0, 0, 0, 0, 4, 3, 2, 3, 0, 0, 4, 7, 4, 0, 0, 0, 0, 4, 7, 4, +		4, 7, 4, 0, 0, 0, 0, 0, 0, 3, 2, 3, 0, 0, 4, 7, 4, 0, 0, 0, 0, 4, 7, 4, +		4, 7, 4, 0, 0, 0, 0, 0, 3, 2, 2, 2, 3, 4, 4, 7, 4, 0, 0, 0, 0, 4, 7, 4, +		4, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 7, 7, 4, 0, 0, 0, 0, 4, 7, 4, +		0, 4, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 4, 0, 0, 0, 0, 0, 4, 7, 4, +		0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 0, 0, 0, 0, 0, 4, 7, 4, +		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 3, 0, 0, 0, 0, 4, 7, 4, +		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 3, 0, 0, 0, 0, 4, 7, 4, +		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 2, 2, 3, 0, 0, 4, 4, 7, 4, +		0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 7, 7, 4, +		0, 0, 4, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 4, 0, +		0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0 +	}; +  	if (getPlatform() != Common::kPlatformWindows)  		return;  	if (_droppingCrumbs && _mainDisplay) { +		static byte *imgData = new byte[CRUMBSWIDTH * CRUMBSHEIGHT]; +		memcpy(imgData, dropCrumbsImageData, CRUMBSWIDTH * CRUMBSHEIGHT); +		static Image dropCrumbsImage(CRUMBSWIDTH, CRUMBSHEIGHT, imgData, this); +  		_event->mouseHide();  		dropCrumbsImage.drawMaskImage(612, 4);  		_event->mouseShow(); @@ -1137,12 +1142,41 @@ void LabEngine::mayShowCrumbIndicator() {  }  void LabEngine::mayShowCrumbIndicatorOff() { -	static Image dropCrumbsOffImage(24, 24, nullptr, this); +	static byte dropCrumbsOffImageData[CRUMBSWIDTH * CRUMBSHEIGHT] = { +		0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, +		0, 4, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 0, +		4, 8, 8, 3, 4, 4, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 8, 8, 4, +		4, 8, 4, 4, 0, 0, 3, 8, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 8, 4, +		4, 8, 4, 0, 0, 0, 3, 8, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 4, 8, 4, +		4, 8, 4, 0, 0, 3, 8, 8, 8, 3, 0, 0, 0, 0, 0, 0, 0, 3, 8, 3, 0, 4, 8, 4, +		4, 8, 4, 0, 0, 0, 3, 3, 3, 4, 4, 4, 4, 4, 4, 0, 0, 3, 8, 3, 0, 4, 8, 4, +		4, 8, 4, 0, 0, 0, 0, 0, 4, 8, 8, 8, 8, 8, 8, 4, 3, 8, 8, 8, 3, 4, 8, 4, +		4, 8, 4, 0, 0, 0, 0, 4, 8, 8, 4, 4, 4, 4, 8, 8, 4, 3, 3, 3, 0, 4, 8, 4, +		4, 8, 4, 0, 0, 0, 0, 4, 8, 4, 4, 0, 0, 4, 4, 8, 4, 0, 0, 0, 0, 4, 8, 4, +		4, 8, 4, 0, 0, 0, 0, 4, 8, 4, 0, 0, 0, 0, 4, 8, 4, 0, 0, 0, 0, 4, 8, 4, +		4, 8, 4, 0, 0, 0, 0, 4, 4, 4, 3, 0, 0, 0, 4, 8, 4, 0, 0, 0, 0, 4, 8, 4, +		4, 8, 4, 0, 0, 0, 0, 0, 4, 3, 8, 3, 0, 0, 4, 8, 4, 0, 0, 0, 0, 4, 8, 4, +		4, 8, 4, 0, 0, 0, 0, 0, 0, 3, 8, 3, 0, 0, 4, 8, 4, 0, 0, 0, 0, 4, 8, 4, +		4, 8, 4, 0, 0, 0, 0, 0, 3, 8, 8, 8, 3, 4, 4, 8, 4, 0, 0, 0, 0, 4, 8, 4, +		4, 8, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 4, 0, 0, 0, 0, 4, 8, 4, +		0, 4, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 0, 0, 0, 0, 0, 4, 8, 4, +		0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 0, 0, 0, 0, 0, 4, 8, 4, +		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 8, 3, 0, 0, 0, 0, 4, 8, 4, +		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 8, 3, 0, 0, 0, 0, 4, 8, 4, +		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 8, 8, 8, 3, 0, 0, 4, 4, 8, 4, +		0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 4, +		0, 0, 4, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 0, +		0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0 +	};  	if (getPlatform() != Common::kPlatformWindows)  		return;  	if (_mainDisplay) { +		static byte *imgData = new byte[CRUMBSWIDTH * CRUMBSHEIGHT]; +		memcpy(imgData, dropCrumbsOffImageData, CRUMBSWIDTH * CRUMBSHEIGHT); +		static Image dropCrumbsOffImage(CRUMBSWIDTH, CRUMBSHEIGHT, imgData, this); +  		_event->mouseHide();  		dropCrumbsOffImage.drawMaskImage(612, 4);  		_event->mouseShow(); diff --git a/engines/lab/eventman.cpp b/engines/lab/eventman.cpp index 83c50b9771..d1db854863 100644 --- a/engines/lab/eventman.cpp +++ b/engines/lab/eventman.cpp @@ -137,7 +137,7 @@ void EventManager::initMouse() {  	_vm->_system->setMouseCursor(mouseData, MOUSE_WIDTH, MOUSE_HEIGHT, 0, 0, 0);  	_vm->_system->showMouse(false); -	setMousePos(Common::Point(0, 0)); +	setMousePos(Common::Point(_vm->_graphics->_screenWidth / 2, _vm->_graphics->_screenHeight / 2));  }  void EventManager::mouseShow() { @@ -148,13 +148,6 @@ void EventManager::mouseHide() {  	_vm->_system->showMouse(false);  } -Common::Point EventManager::getMousePos() { -	if (_vm->_isHiRes) -		return _mousePos; -	else -		return Common::Point(_mousePos.x / 2, _mousePos.y); -} -  void EventManager::setMousePos(Common::Point pos) {  	if (_vm->_isHiRes)  		_vm->_system->warpMouse(pos.x, pos.y); @@ -191,9 +184,6 @@ void EventManager::processInput() {  			case Common::KEYCODE_RIGHTBRACKET:  				_vm->changeVolume(1);  				break; -			case Common::KEYCODE_z: -				//saveSettings(); -				break;  			case Common::KEYCODE_d:  				if (event.kbd.hasFlags(Common::KBD_CTRL)) {  					// Open debugger console diff --git a/engines/lab/eventman.h b/engines/lab/eventman.h index ec8f824cb2..cb91b12a76 100644 --- a/engines/lab/eventman.h +++ b/engines/lab/eventman.h @@ -38,22 +38,13 @@ namespace Lab {  class LabEngine;  class Image; -enum MessageClasses { -	kMessageLeftClick, -	kMessageRightClick, -	kMessageButtonUp, -	kMessageRawKey, -	kMessageMoveCursorToCloseup -}; -  struct IntuiMessage { -	uint32 _msgClass; +	MessageClass _msgClass;  	uint16 _code; // KeyCode or Button Id  	uint16 _qualifier;  	Common::Point _mouse;  }; -  struct Button {  	uint16 _x, _y, _buttonId;  	Common::KeyCode _keyEquiv; // the key which activates this button @@ -92,11 +83,6 @@ private:  	 */  	Button *checkNumButtonHit(ButtonList *buttonList, Common::KeyCode key); -	/** -	 * Make a key press have the right case for a button KeyEquiv value. -	 */ -	uint16 makeButtonKeyEquiv(uint16 key); -  public:  	EventManager (LabEngine *vm); @@ -111,11 +97,6 @@ public:  	void freeButtonList(ButtonList *buttonList);  	Button *getButton(uint16 id); -	/** -	 * Gets the current mouse co-ordinates.  NOTE: On IBM version, will scale -	 * from virtual to screen co-ordinates automatically. -	 */ -	Common::Point getMousePos();  	IntuiMessage *getMsg();  	/** diff --git a/engines/lab/image.cpp b/engines/lab/image.cpp index ce0d5431b6..ec516718e8 100644 --- a/engines/lab/image.cpp +++ b/engines/lab/image.cpp @@ -48,53 +48,56 @@ Image::Image(Common::File *s, LabEngine *vm) : _vm(vm) {  	_imageData = new byte[size];  	s->read(_imageData, size); +	_autoFree = true;  }  Image::~Image() { -	delete[] _imageData; +	if (_autoFree) +		delete[] _imageData;  } -void Image::blitBitmap(uint16 xs, uint16 ys, Image *imDest, -	uint16 xd, uint16 yd, uint16 width, uint16 height, byte masked) { -	int w = width; -	int h = height; -	int destWidth = (imDest) ? imDest->_width : _vm->_graphics->_screenWidth; -	int destHeight = (imDest) ? imDest->_height : _vm->_graphics->_screenHeight; -	byte *destBuffer = (imDest) ? imDest->_imageData : _vm->_graphics->getCurrentDrawingBuffer(); +void Image::setData(byte *d, bool autoFree) { +	if (_autoFree) +		delete[] _imageData; +	_imageData = d; +	_autoFree = autoFree; +} + +void Image::blitBitmap(uint16 srcX, uint16 srcY, Image *imgDest, +	uint16 destX, uint16 destY, uint16 width, uint16 height, byte masked) { +	int clipWidth = width; +	int clipHeight = height; +	int destWidth = (imgDest) ? imgDest->_width : _vm->_graphics->_screenWidth; +	int destHeight = (imgDest) ? imgDest->_height : _vm->_graphics->_screenHeight; +	byte *destBuffer = (imgDest) ? imgDest->_imageData : _vm->_graphics->getCurrentDrawingBuffer(); -	if (xd + w > destWidth) -		w = destWidth - xd; +	if (destX + clipWidth > destWidth) +		clipWidth = destWidth - destX; -	if (yd + h > destHeight) -		h = destHeight - yd; +	if (destY + clipHeight > destHeight) +		clipHeight = destHeight - destY; -	if ((w > 0) && (h > 0)) { -		byte *s = _imageData + ys * _width + xs; -		byte *d = destBuffer + yd * destWidth + xd; +	if ((clipWidth > 0) && (clipHeight > 0)) { +		byte *img = _imageData + srcY * _width + srcX; +		byte *dest = destBuffer + destY * destWidth + destX;  		if (!masked) { -			while (h-- > 0) { -				memcpy(d, s, w); -				s += _width; -				d += destWidth; +			for (int i = 0; i < clipHeight; i++) { +				memcpy(dest, img, clipWidth); +				img += _width; +				dest += destWidth;  			}  		} else { -			while (h-- > 0) { -				byte *ss = s; -				byte *dd = d; -				int ww = w; - -				while (ww-- > 0) { -					byte c = *ss++; +			for (int i = 0; i < clipHeight; i++) { +				for (int j = 0; j < clipWidth; j++) { +					byte c = img[j];  					if (c) -						*dd++ = c - 1; -					else -						dd++; +						dest[j] = c - 1;  				} -				s += _width; -				d += destWidth; +				img += _width; +				dest += destWidth;  			}  		}  	} @@ -109,23 +112,23 @@ void Image::drawMaskImage(uint16 x, uint16 y) {  }  void Image::readScreenImage(uint16 x, uint16 y) { -	int w = _width; -	int h = _height; +	int clipWidth = _width; +	int clipHeight = _height; -	if (x + w > _vm->_graphics->_screenWidth) -		w = _vm->_graphics->_screenWidth - x; +	if (x + clipWidth > _vm->_graphics->_screenWidth) +		clipWidth = _vm->_graphics->_screenWidth - x; -	if (y + h > _vm->_graphics->_screenHeight) -		h = _vm->_graphics->_screenHeight - y; +	if (y + clipHeight > _vm->_graphics->_screenHeight) +		clipHeight = _vm->_graphics->_screenHeight - y; -	if ((w > 0) && (h > 0)) { -		byte *s = _imageData; -		byte *d = _vm->_graphics->getCurrentDrawingBuffer() + y * _vm->_graphics->_screenWidth + x; +	if ((clipWidth > 0) && (clipHeight > 0)) { +		byte *img = _imageData; +		byte *screen = _vm->_graphics->getCurrentDrawingBuffer() + y * _vm->_graphics->_screenWidth + x; -		while (h-- > 0) { -			memcpy(s, d, w); -			s += _width; -			d += _vm->_graphics->_screenWidth; +		while (clipHeight-- > 0) { +			memcpy(img, screen, clipWidth); +			img += _width; +			screen += _vm->_graphics->_screenWidth;  		}  	}  } diff --git a/engines/lab/image.h b/engines/lab/image.h index bac32cd763..0f985e09eb 100644 --- a/engines/lab/image.h +++ b/engines/lab/image.h @@ -47,10 +47,12 @@ public:  	uint16 _height;  	byte *_imageData; -	Image(LabEngine *vm) : _width(0), _height(0), _imageData(nullptr), _vm(vm) {} -	Image(int w, int h, byte *d, LabEngine *vm) : _width(w), _height(h), _imageData(d), _vm(vm) {} +	Image(LabEngine *vm) : _width(0), _height(0), _imageData(nullptr), _vm(vm), _autoFree(true) {} +	Image(int w, int h, byte *d, LabEngine *vm, bool autoFree = true) : _width(w), _height(h), _imageData(d), _vm(vm), _autoFree(autoFree) {}  	Image(Common::File *s, LabEngine *vm); -	virtual ~Image(); +	~Image(); + +	void setData(byte *d, bool autoFree = true);  	/**  	 * Draws an image to the screen. @@ -70,7 +72,10 @@ public:  	/**  	 * Blits a piece of one image to another.  	 */ -	void blitBitmap(uint16 xs, uint16 ys, Image *ImDest, uint16 xd, uint16 yd, uint16 width, uint16 height, byte masked); +	void blitBitmap(uint16 srcX, uint16 srcY, Image *imgDest, uint16 destX, uint16 destY, uint16 width, uint16 height, byte masked); + +private: +	bool _autoFree; ///< Free _imageData in destructor?  };  } // End of namespace Lab diff --git a/engines/lab/interface.cpp b/engines/lab/interface.cpp index 507e0b27d5..30f2f13fa5 100644 --- a/engines/lab/interface.cpp +++ b/engines/lab/interface.cpp @@ -78,20 +78,13 @@ void EventManager::drawButtonList(ButtonList *buttonList) {  void EventManager::toggleButton(Button *button, uint16 disabledPenColor, bool enable) {  	if (!enable) -		_vm->_graphics->checkerboardEffect(disabledPenColor, button->_x, button->_y, button->_x + button->_image->_width - 1, button->_y + button->_image->_height - 1); +		_vm->_graphics->checkerBoardEffect(disabledPenColor, button->_x, button->_y, button->_x + button->_image->_width - 1, button->_y + button->_image->_height - 1);  	else  		button->_image->drawImage(button->_x, button->_y);  	button->_isEnabled = enable;  } -uint16 EventManager::makeButtonKeyEquiv(uint16 key) { -	if (Common::isAlnum(key)) -		key = tolower(key); - -	return key; -} -  Button *EventManager::checkNumButtonHit(ButtonList *buttonList, Common::KeyCode key) {  	uint16 gkey = key - '0'; diff --git a/engines/lab/intro.cpp b/engines/lab/intro.cpp index 8971c96786..46a20a502b 100644 --- a/engines/lab/intro.cpp +++ b/engines/lab/intro.cpp @@ -83,10 +83,10 @@ void Intro::doPictText(const Common::String filename, bool isScreen) {  	bool begin = true;  	Common::File *textFile = _vm->_resource->openDataFile(path); -	byte *textBuffer = new byte[textFile->size()]; +	char *textBuffer = new char[textFile->size()];  	textFile->read(textBuffer, textFile->size());  	delete textFile; -	byte *curText = textBuffer; +	const char *curText = textBuffer;  	while (1) {  		if (drawNextText) { @@ -98,10 +98,10 @@ void Intro::doPictText(const Common::String filename, bool isScreen) {  			if (isScreen) {  				_vm->_graphics->rectFillScaled(10, 10, 310, 190, 7); -				curText += _vm->_graphics->flowText(_font, _vm->_isHiRes ? 0 : -1, 5, 7, false, false, true, true, _vm->_utils->vgaRectScale(14, 11, 306, 189), (char *)curText); +				curText += _vm->_graphics->flowText(_font, _vm->_isHiRes ? 0 : -1, 5, 7, false, false, true, true, _vm->_utils->vgaRectScale(14, 11, 306, 189), curText);  				_vm->_graphics->fade(true);  			} else -				curText += _vm->_graphics->longDrawMessage(Common::String((char *)curText), false); +				curText += _vm->_graphics->longDrawMessage(Common::String(curText), false);  			doneFl = (*curText == 0); @@ -262,16 +262,13 @@ void Intro::play() {  	_vm->_graphics->_fadePalette = palette;  	for (int i = 0; i < 16; i++) { -		if (_quitIntro) -			break; -  		palette[i] = ((_vm->_anim->_diffPalette[i * 3] >> 2) << 8) +  					((_vm->_anim->_diffPalette[i * 3 + 1] >> 2) << 4) +  					(_vm->_anim->_diffPalette[i * 3 + 2] >> 2);  	} -  	_vm->updateMusicAndEvents(); -	_vm->_graphics->fade(true); +	if (!_quitIntro) +		_vm->_graphics->fade(true);  	for (int times = 0; times < 150; times++) {  		if (_quitIntro) @@ -289,9 +286,11 @@ void Intro::play() {  		_vm->waitTOF();  	} -	_vm->_graphics->fade(false); -	_vm->_graphics->blackAllScreen(); -	_vm->updateMusicAndEvents(); +	if (!_quitIntro) { +		_vm->_graphics->fade(false); +		_vm->_graphics->blackAllScreen(); +		_vm->updateMusicAndEvents(); +	}  	nReadPict("Title.A");  	nReadPict("AB"); diff --git a/engines/lab/lab.cpp b/engines/lab/lab.cpp index e942617a26..be299a8236 100644 --- a/engines/lab/lab.cpp +++ b/engines/lab/lab.cpp @@ -44,7 +44,7 @@  #include "lab/music.h"  #include "lab/processroom.h"  #include "lab/resource.h" -#include "lab/tilepuzzle.h" +#include "lab/speciallocks.h"  #include "lab/utils.h"  namespace Lab { @@ -85,7 +85,7 @@ LabEngine::LabEngine(OSystem *syst, const ADGameDescription *gameDesc)  	_graphics = nullptr;  	_rooms = nullptr;  	_roomsFound = nullptr; -	_tilePuzzle = nullptr; +	_specialLocks = nullptr;  	_utils = nullptr;  	_console = nullptr;  	_journalBackImage = nullptr; @@ -151,7 +151,7 @@ LabEngine::~LabEngine() {  	delete _music;  	delete _anim;  	delete _graphics; -	delete _tilePuzzle; +	delete _specialLocks;  	delete _utils;  	delete _console;  	delete _journalBackImage; @@ -168,7 +168,7 @@ Common::Error LabEngine::run() {  	_music = new Music(this);  	_graphics = new DisplayMan(this);  	_anim = new Anim(this); -	_tilePuzzle = new TilePuzzle(this); +	_specialLocks = new SpecialLocks(this);  	_utils = new Utils(this);  	_console = new Console(this);  	_journalBackImage = new Image(this); @@ -221,7 +221,12 @@ void LabEngine::drawStaticMessage(byte index) {  }  void LabEngine::changeVolume(int delta) { -	warning("STUB: changeVolume()"); +	int sfxPrev = _mixer->getVolumeForSoundType(Audio::Mixer::kSFXSoundType); +	int musicPrev = _mixer->getVolumeForSoundType(Audio::Mixer::kMusicSoundType); +	int sfxNew = (delta > 0) ? MIN<int>(sfxPrev + 10, Audio::Mixer::kMaxMixerVolume) : MAX<int>(sfxPrev - 10, 0); +	int musicNew = (delta > 0) ? MIN<int>(musicPrev + 10, Audio::Mixer::kMaxMixerVolume) : MAX<int>(musicPrev - 10, 0); +	_mixer->setVolumeForSoundType(Audio::Mixer::kSFXSoundType, sfxNew); +	_mixer->setVolumeForSoundType(Audio::Mixer::kMusicSoundType, musicNew);  }  void LabEngine::waitTOF() { diff --git a/engines/lab/lab.h b/engines/lab/lab.h index 0a2e407d92..fd09db0a37 100644 --- a/engines/lab/lab.h +++ b/engines/lab/lab.h @@ -63,7 +63,7 @@ class EventManager;  class Image;  class Music;  class Resource; -class TilePuzzle; +class SpecialLocks;  class Utils;  struct SaveGameHeader { @@ -87,8 +87,10 @@ struct CrumbData {  #define MAX_CRUMBS          128 -typedef CloseData *CloseDataPtr;  typedef Common::List<Rule> RuleList; +typedef Common::List<Action> ActionList; +typedef Common::List<CloseData> CloseDataList; +typedef Common::List<ViewData> ViewDataList;  enum Direction {  	kDirectionNorth, @@ -111,6 +113,13 @@ enum MainButton {  	kButtonMap  }; +enum MessageClass { +	kMessageLeftClick, +	kMessageRightClick, +	kMessageButtonUp, +	kMessageRawKey +}; +  class LabEngine : public Engine {  private:  	bool _interfaceOff; @@ -140,7 +149,7 @@ private:  	Common::String _newFileName;  	Common::String _monitorTextFilename; -	CloseDataPtr _closeDataPtr; +	const CloseData *_closeDataPtr;  	ButtonList _journalButtonList;  	ButtonList _mapButtonList;  	Image *_imgMap, *_imgRoom, *_imgUpArrowRoom, *_imgDownArrowRoom, *_imgBridge; @@ -184,7 +193,7 @@ public:  	Resource *_resource;  	RoomData *_rooms;  	TextFont *_msgFont; -	TilePuzzle *_tilePuzzle; +	SpecialLocks *_specialLocks;  	Utils *_utils;  	Console *_console;  	GUI::Debugger *getDebugger() { return _console; } @@ -209,7 +218,7 @@ public:  	/**  	 * Returns the current picture name.  	 */ -	Common::String getPictName(CloseDataPtr *closePtrList); +	Common::String getPictName(bool useClose);  	uint16 getQuarters();  	void setDirection(uint16 direction) { _direction = direction; };  	void setQuarters(uint16 quarters); @@ -230,27 +239,27 @@ private:  	/**  	 * Processes the action list.  	 */ -	void doActions(const Common::List<Action> &actionList, CloseDataPtr *closePtrList); +	void doActions(const ActionList &actionList);  	/**  	 * Goes through the rules if an action is taken.  	 */ -	bool doActionRule(Common::Point pos, int16 action, int16 roomNum, CloseDataPtr *closePtrList); +	bool doActionRule(Common::Point pos, int16 action, int16 roomNum);  	/**  	 * Does the work for doActionRule.  	 */ -	bool doActionRuleSub(int16 action, int16 roomNum, CloseDataPtr closePtr, CloseDataPtr *setCloseList, bool allowDefaults); +	bool doActionRuleSub(int16 action, int16 roomNum, const CloseData *closePtr, bool allowDefaults);  	/**  	 * Checks whether the close up is one of the special case closeups.  	 */ -	bool doCloseUp(CloseDataPtr closePtr); +	bool doCloseUp(const CloseData *closePtr);  	/**  	 * Goes through the rules if the user tries to go forward.  	 */ -	bool doGoForward(CloseDataPtr *closePtrList); +	bool doGoForward();  	/**  	 * Does the journal processing. @@ -260,7 +269,7 @@ private:  	/**  	 * Goes through the rules if the user tries to go to the main view  	 */ -	bool doMainView(CloseDataPtr *closePtrList); +	bool doMainView();  	/**  	 * Does the map processing. @@ -280,17 +289,17 @@ private:  	/**  	 * Does the work for doActionRule.  	 */ -	bool doOperateRuleSub(int16 itemNum, int16 roomNum, CloseDataPtr closePtr, CloseDataPtr *setCloseList, bool allowDefaults); +	bool doOperateRuleSub(int16 itemNum, int16 roomNum, const CloseData *closePtr, bool allowDefaults);  	/**  	 * Goes through the rules if the user tries to operate an item on an object.  	 */ -	bool doOperateRule(Common::Point pos, int16 ItemNum, CloseDataPtr *closePtrList); +	bool doOperateRule(Common::Point pos, int16 ItemNum);  	/**  	 * Goes through the rules if the user tries to turn.  	 */ -	bool doTurn(uint16 from, uint16 to, CloseDataPtr *closePtrList); +	bool doTurn(uint16 from, uint16 to);  	/**  	 * If the user hits the "Use" button; things that can get used on themselves. @@ -306,7 +315,7 @@ private:  	/**  	 * Draws the current direction to the screen.  	 */ -	void drawDirection(CloseDataPtr closePtr); +	void drawDirection(const CloseData *closePtr);  	/**  	 * Draws the journal from page x. @@ -336,7 +345,7 @@ private:  	/**  	 * Draws the message for the room.  	 */ -	void drawRoomMessage(uint16 curInv, CloseDataPtr closePtr); +	void drawRoomMessage(uint16 curInv, const CloseData *closePtr);  	void drawStaticMessage(byte index);  	/** @@ -350,7 +359,7 @@ private:  	 * some of the closeups have the same hit boxes, then this returns the first  	 * occurrence of the object with the same hit box.  	 */ -	CloseDataPtr findClosePtrMatch(CloseDataPtr closePtr, Common::List<CloseData> &list); +	const CloseData *findClosePtrMatch(const CloseData *closePtr, const CloseDataList &list);  	/**  	 * Checks if a floor has been visited. @@ -363,7 +372,7 @@ private:  	MainButton followCrumbs();  	void freeMapData();  	void freeScreens(); -	bool fromCrumbs(uint32 tmpClass, uint16 code, uint16 qualifier, Common::Point tmpPos, +	bool processEvent(MessageClass tmpClass, uint16 code, uint16 qualifier, Common::Point tmpPos,  		uint16 &curInv, IntuiMessage *curMsg, bool &forceDraw, uint16 buttonId, uint16 &actionMode);  	/** @@ -380,7 +389,7 @@ private:  	/**  	 * Gets an object, if any, from the user's click on the screen.  	 */ -	CloseData *getObject(Common::Point pos, CloseDataPtr closePtr); +	const CloseData *getObject(Common::Point pos, const CloseData *closePtr);  	/**  	 * Returns the floor to show when the up arrow is pressed @@ -455,18 +464,18 @@ private:  	/**  	 * Sets the current close up data.  	 */ -	void setCurrentClose(Common::Point pos, CloseDataPtr *closePtrList, bool useAbsoluteCoords, bool next=false); +	void setCurrentClose(Common::Point pos, const CloseData **closePtrList, bool useAbsoluteCoords, bool next=false);  	/**  	 * Takes the currently selected item.  	 */ -	bool takeItem(Common::Point pos, CloseDataPtr *closePtrList); +	bool takeItem(Common::Point pos);  	/**  	 * Does the turn page wipe.  	 */  	void turnPage(bool fromLeft); -	bool processKey(IntuiMessage *curMsg, uint32 &msgClass, uint16 &qualifier, Common::Point &curPos, uint16 &curInv, bool &forceDraw, uint16 code); +	bool processKey(IntuiMessage *curMsg, uint32 msgClass, uint16 &qualifier, Common::Point &curPos, uint16 &curInv, bool &forceDraw, uint16 code);  	void processMainButton(uint16 &curInv, uint16 &lastInv, uint16 &oldDirection, bool &forceDraw, uint16 buttonId, uint16 &actionMode);  	void processAltButton(uint16 &curInv, uint16 &lastInv, uint16 buttonId, uint16 &actionMode);  	void performAction(uint16 actionMode, Common::Point curPos, uint16 &curInv); diff --git a/engines/lab/map.cpp b/engines/lab/map.cpp index 21a0830913..f7b2cfe9ea 100644 --- a/engines/lab/map.cpp +++ b/engines/lab/map.cpp @@ -83,16 +83,14 @@ void LabEngine::loadMapData() {  	Common::File *mapFile = _resource->openDataFile("Lab:Maps", MKTAG('M', 'A', 'P', '0'));  	updateMusicAndEvents(); -	if (!_music->_loopSoundEffect) -		_music->stopSoundEffect();  	_maxRooms = mapFile->readUint16LE();  	_maps = new MapData[_maxRooms + 1];	// will be freed when the user exits the map -	for (int i = 1; i <= _maxRooms; i++) { +	for (int i = 0; i <= _maxRooms; i++) {  		_maps[i]._x = mapFile->readUint16LE();  		_maps[i]._y = mapFile->readUint16LE();  		_maps[i]._pageNumber = mapFile->readUint16LE(); -		_maps[i]._specialID = mapFile->readUint16LE(); +		_maps[i]._specialID = (SpecialRoom) mapFile->readUint16LE();  		_maps[i]._mapFlags = mapFile->readUint32LE();  	} @@ -135,18 +133,18 @@ Common::Rect LabEngine::roomCoords(uint16 curRoom) {  	Image *curRoomImg = nullptr;  	switch (_maps[curRoom]._specialID) { -	case NORMAL: -	case UPARROWROOM: -	case DOWNARROWROOM: +	case kNormalRoom: +	case kUpArrowRoom: +	case kDownArrowRoom:  		curRoomImg = _imgRoom;  		break; -	case BRIDGEROOM: +	case kBridgeRoom:  		curRoomImg = _imgBridge;  		break; -	case VCORRIDOR: +	case kVerticalCorridor:  		curRoomImg = _imgVRoom;  		break; -	case HCORRIDOR: +	case kHorizontalCorridor:  		curRoomImg = _imgHRoom;  		break;  	default: @@ -175,12 +173,12 @@ void LabEngine::drawRoomMap(uint16 curRoom, bool drawMarkFl) {  	uint32 flags = _maps[curRoom]._mapFlags;  	switch (_maps[curRoom]._specialID) { -	case NORMAL: -	case UPARROWROOM: -	case DOWNARROWROOM: -		if (_maps[curRoom]._specialID == NORMAL) +	case kNormalRoom: +	case kUpArrowRoom: +	case kDownArrowRoom: +		if (_maps[curRoom]._specialID == kNormalRoom)  			_imgRoom->drawImage(x, y); -		else if (_maps[curRoom]._specialID == DOWNARROWROOM) +		else if (_maps[curRoom]._specialID == kDownArrowRoom)  			_imgDownArrowRoom->drawImage(x, y);  		else  			_imgUpArrowRoom->drawImage(x, y); @@ -206,7 +204,7 @@ void LabEngine::drawRoomMap(uint16 curRoom, bool drawMarkFl) {  		break; -	case BRIDGEROOM: +	case kBridgeRoom:  		_imgBridge->drawImage(x, y);  		drawX = x + (_imgBridge->_width - _imgMapX[_direction]->_width) / 2; @@ -214,7 +212,7 @@ void LabEngine::drawRoomMap(uint16 curRoom, bool drawMarkFl) {  		break; -	case VCORRIDOR: +	case kVerticalCorridor:  		_imgVRoom->drawImage(x, y);  		offset = (_imgVRoom->_width - _imgPath->_width) / 2; @@ -252,7 +250,7 @@ void LabEngine::drawRoomMap(uint16 curRoom, bool drawMarkFl) {  		break; -	case HCORRIDOR: +	case kHorizontalCorridor:  		_imgHRoom->drawImage(x, y);  		offset = (_imgRoom->_width - _imgPath->_width) / 2; @@ -339,10 +337,11 @@ void LabEngine::drawMap(uint16 curRoom, uint16 curMsg, uint16 floorNum, bool fad  	for (int i = 1; i <= _maxRooms; i++) {  		if ((_maps[i]._pageNumber == floorNum) && _roomsFound->in(i) && _maps[i]._x) {  			drawRoomMap(i, (bool)(i == curRoom)); -			updateMusicAndEvents();  		}  	} +	updateMusicAndEvents(); +  	// Makes sure the X is drawn in corridors  	// NOTE: this here on purpose just in case there's some weird  	// condition, like the surreal maze where there are no rooms diff --git a/engines/lab/module.mk b/engines/lab/module.mk index a619cba6ed..7bb86c8c1e 100644 --- a/engines/lab/module.mk +++ b/engines/lab/module.mk @@ -18,7 +18,7 @@ MODULE_OBJS := \  	resource.o \  	savegame.o \  	special.o \ -	tilepuzzle.o \ +	speciallocks.o \  	utils.o  # This module can be built as a plugin diff --git a/engines/lab/music.cpp b/engines/lab/music.cpp index 95581aec5c..bdd9d8973f 100644 --- a/engines/lab/music.cpp +++ b/engines/lab/music.cpp @@ -56,21 +56,24 @@ Music::Music(LabEngine *vm) : _vm(vm) {  	_leftInFile = 0;  	_musicOn = false; -	_loopSoundEffect = false;  	_queuingAudioStream = nullptr; -	_lastMusicRoom = 1; -	_doReset = true; +	_curRoomMusic = 1; +} + +byte Music::getSoundFlags() { +	byte soundFlags = Audio::FLAG_LITTLE_ENDIAN; +	if (_vm->getPlatform() == Common::kPlatformWindows) +		soundFlags |= Audio::FLAG_16BITS; +	else if (_vm->getPlatform() == Common::kPlatformDOS) +		soundFlags |= Audio::FLAG_UNSIGNED; + +	return soundFlags;  }  void Music::updateMusic() {  	if (!_musicOn || (getPlayingBufferCount() >= MAXBUFFERS))  		return; -	// NOTE: We need to use malloc(), cause this will be freed with free() -	// by the music code -	byte *musicBuffer = (byte *)malloc(MUSICBUFSIZE); -	fillbuffer(musicBuffer); -  	// Queue a music block, and start the music, if needed  	bool startMusicFlag = false; @@ -79,13 +82,7 @@ void Music::updateMusic() {  		startMusicFlag = true;  	} -	byte soundFlags = Audio::FLAG_LITTLE_ENDIAN; -	if (_vm->getPlatform() == Common::kPlatformWindows) -		soundFlags |= Audio::FLAG_16BITS; -	else if (_vm->getPlatform() == Common::kPlatformDOS) -		soundFlags |= Audio::FLAG_UNSIGNED; - -	_queuingAudioStream->queueBuffer(musicBuffer, MUSICBUFSIZE, DisposeAfterUse::YES, soundFlags); +	_queuingAudioStream->queueBuffer(fillBuffer(), MUSICBUFSIZE, DisposeAfterUse::YES, getSoundFlags());  	if (startMusicFlag)  		_vm->_mixer->playStream(Audio::Mixer::kMusicSoundType, &_musicHandle, _queuingAudioStream); @@ -95,26 +92,20 @@ uint16 Music::getPlayingBufferCount() {  	return (_queuingAudioStream) ? _queuingAudioStream->numQueuedStreams() : 0;  } -void Music::playSoundEffect(uint16 sampleSpeed, uint32 length, Common::File *dataFile) { +void Music::playSoundEffect(uint16 sampleSpeed, uint32 length, bool loop, Common::File *dataFile) {  	pauseBackMusic();  	stopSoundEffect();  	if (sampleSpeed < 4000)  		sampleSpeed = 4000; -	byte soundFlags = Audio::FLAG_LITTLE_ENDIAN; -	if (_vm->getPlatform() == Common::kPlatformWindows) -		soundFlags |= Audio::FLAG_16BITS; -	else -		soundFlags |= Audio::FLAG_UNSIGNED; -  	// NOTE: We need to use malloc(), cause this will be freed with free()  	// by the music code  	byte *soundData = (byte *)malloc(length);  	dataFile->read(soundData, length); -	Audio::SeekableAudioStream *audioStream = Audio::makeRawStream((const byte *)soundData, length, sampleSpeed, soundFlags); -	uint loops = (_loopSoundEffect) ? 0 : 1; +	Audio::SeekableAudioStream *audioStream = Audio::makeRawStream(soundData, length, sampleSpeed, getSoundFlags()); +	uint loops = (loop) ? 0 : 1;  	Audio::LoopingAudioStream *loopingAudioStream = new Audio::LoopingAudioStream(audioStream, loops);  	_vm->_mixer->playStream(Audio::Mixer::kSFXSoundType, &_sfxHandle, loopingAudioStream);  } @@ -128,18 +119,24 @@ bool Music::isSoundEffectActive() const {  	return _vm->_mixer->isSoundHandleActive(_sfxHandle);  } -void Music::fillbuffer(byte *musicBuffer) { +byte *Music::fillBuffer() { +	// NOTE: We need to use malloc(), cause this will be freed with free() +	// by the music code +	byte *musicBuffer = (byte *)malloc(MUSICBUFSIZE); +  	if (MUSICBUFSIZE < _leftInFile) {  		_file->read(musicBuffer, MUSICBUFSIZE);  		_leftInFile -= MUSICBUFSIZE;  	} else {  		_file->read(musicBuffer, _leftInFile); -		memset((char *)musicBuffer + _leftInFile, 0, MUSICBUFSIZE - _leftInFile); +		memset(musicBuffer + _leftInFile, 0, MUSICBUFSIZE - _leftInFile);  		_file->seek(0);  		_leftInFile = _file->size();  	} + +	return musicBuffer;  }  void Music::startMusic(bool restartFl) { @@ -214,17 +211,15 @@ void Music::setMusic(bool on) {  }  void Music::checkRoomMusic() { -	if ((_lastMusicRoom == _vm->_roomNum) || !_musicOn) +	if ((_curRoomMusic == _vm->_roomNum) || !_musicOn)  		return;  	if (_vm->_roomNum == CLOWNROOM)  		changeMusic("Music:Laugh");  	else if (_vm->_roomNum == DIMROOM)  		changeMusic("Music:Rm81"); -	else if (_doReset) -		resetMusic(); -	_lastMusicRoom = _vm->_roomNum; +	_curRoomMusic = _vm->_roomNum;  }  void Music::changeMusic(const Common::String filename) { @@ -263,33 +258,27 @@ void Music::resetMusic() {  	setMusic(false);  	_vm->updateMusicAndEvents(); -	if (!_oldMusicOn) { -		_tFile = 0; -		return; -	} - -	_musicOn = _oldMusicOn; -	startMusic(false); +	if (_oldMusicOn) +		startMusic(false);  	_tFile = 0;  } -bool Music::readMusic(const Common::String filename, bool waitTillFinished) { +bool Music::readMusic(const Common::String filename, bool loop, bool waitTillFinished) {  	Common::File *file = _vm->_resource->openDataFile(filename, MKTAG('D', 'I', 'F', 'F'));  	_vm->updateMusicAndEvents(); -	if (!_loopSoundEffect) -		stopSoundEffect(); +	stopSoundEffect();  	if (!file)  		return false;  	_vm->_anim->_doBlack = false; -	readSound(waitTillFinished, file); +	readSound(waitTillFinished, loop, file);  	return true;  } -void Music::readSound(bool waitTillFinished, Common::File *file) { +void Music::readSound(bool waitTillFinished, bool loop, Common::File *file) {  	uint32 magicBytes = file->readUint32LE();  	if (magicBytes != 1219009121) {  		warning("readSound: Bad signature, skipping"); @@ -320,7 +309,7 @@ void Music::readSound(bool waitTillFinished, Common::File *file) {  			uint16 sampleRate = file->readUint16LE();  			file->skip(2); -			playSoundEffect(sampleRate, soundSize, file); +			playSoundEffect(sampleRate, soundSize, loop, file);  		} else if (soundTag == 65535) {  			if (waitTillFinished) {  				while (isSoundEffectActive()) { diff --git a/engines/lab/music.h b/engines/lab/music.h index 42fdf41d67..47c538ee25 100644 --- a/engines/lab/music.h +++ b/engines/lab/music.h @@ -52,12 +52,11 @@ private:  	Common::File *_file;  	Common::File *_tFile; -	bool _doReset;  	bool _musicOn;  	bool _musicPaused;  	bool _oldMusicOn; -	uint16 _lastMusicRoom ; +	uint16 _curRoomMusic ;  	uint32 _tLeftInFile;  	uint32 _leftInFile; @@ -67,22 +66,21 @@ private:  	Audio::QueuingAudioStream *_queuingAudioStream;  private: -	void fillbuffer(byte *musicBuffer); +	byte *fillBuffer();  	uint16 getPlayingBufferCount();  	/**  	 * Pauses the background music.  	 */  	void pauseBackMusic(); -	void readSound(bool waitTillFinished, Common::File *file); +	void readSound(bool waitTillFinished, bool loop, Common::File *file);  	/**  	 * Starts up the music initially.  	 */  	void startMusic(bool restartFl); -public: -	bool _loopSoundEffect; +	byte getSoundFlags();  public:  	Music(LabEngine *vm); @@ -107,12 +105,12 @@ public:  	 */  	bool initMusic(const Common::String filename);  	bool isSoundEffectActive() const; -	void playSoundEffect(uint16 sampleSpeed, uint32 length, Common::File *dataFile); +	void playSoundEffect(uint16 sampleSpeed, uint32 length, bool loop, Common::File *dataFile);  	/**  	 * Reads in a music file.  Ignores any graphics.  	 */ -	bool readMusic(const Common::String filename, bool waitTillFinished); +	bool readMusic(const Common::String filename, bool loop, bool waitTillFinished);  	/**  	 * Changes the background music to the original piece playing. @@ -128,7 +126,6 @@ public:  	 * Turns the music on and off.  	 */  	void setMusic(bool on); -	void setMusicReset(bool reset) { _doReset = reset; }  	void stopSoundEffect();  	/** diff --git a/engines/lab/processroom.cpp b/engines/lab/processroom.cpp index c096c75e21..997eb75dce 100644 --- a/engines/lab/processroom.cpp +++ b/engines/lab/processroom.cpp @@ -56,9 +56,8 @@ ViewData *LabEngine::getViewData(uint16 roomNum, uint16 direction) {  	if (_rooms[roomNum]._roomMsg.empty())  		_resource->readViews(roomNum); -	Common::List<ViewData> &views = _rooms[roomNum]._view[direction]; - -	Common::List<ViewData>::iterator view; +	ViewDataList &views = _rooms[roomNum]._view[direction]; +	ViewDataList::iterator view;  	for (view = views.begin(); view != views.end(); ++view) {  		if (checkConditions(view->_condition)) @@ -68,14 +67,15 @@ ViewData *LabEngine::getViewData(uint16 roomNum, uint16 direction) {  	error("No view with matching condition found");  } -CloseData *LabEngine::getObject(Common::Point pos, CloseDataPtr closePtr) { -	Common::List<CloseData> *list; +const CloseData *LabEngine::getObject(Common::Point pos, const CloseData *closePtr) { +	const CloseDataList *list;  	if (!closePtr)  		list = &(getViewData(_roomNum, _direction)->_closeUps);  	else  		list = &(closePtr->_subCloseUps); -	Common::List<CloseData>::iterator wrkClosePtr; +	CloseDataList::const_iterator wrkClosePtr; +  	for (wrkClosePtr = list->begin(); wrkClosePtr != list->end(); ++wrkClosePtr) {  		Common::Rect objRect;  		objRect = _utils->rectScale(wrkClosePtr->_x1, wrkClosePtr->_y1, wrkClosePtr->_x2, wrkClosePtr->_y2); @@ -86,8 +86,8 @@ CloseData *LabEngine::getObject(Common::Point pos, CloseDataPtr closePtr) {  	return nullptr;  } -CloseDataPtr LabEngine::findClosePtrMatch(CloseDataPtr closePtr, Common::List<CloseData> &list) { -	Common::List<CloseData>::iterator i; +const CloseData *LabEngine::findClosePtrMatch(const CloseData *closePtr, const CloseDataList &list) { +	CloseDataList::const_iterator i;  	for (i = list.begin(); i != list.end(); ++i) {  		if ((closePtr->_x1 == i->_x1) && (closePtr->_x2 == i->_x2) && @@ -95,8 +95,7 @@ CloseDataPtr LabEngine::findClosePtrMatch(CloseDataPtr closePtr, Common::List<Cl  			  (closePtr->_depth == i->_depth))  			return &(*i); -		CloseDataPtr resClosePtr; -		resClosePtr = findClosePtrMatch(closePtr, i->_subCloseUps); +		const CloseData *resClosePtr = findClosePtrMatch(closePtr, i->_subCloseUps);  		if (resClosePtr)  			return resClosePtr; @@ -105,20 +104,20 @@ CloseDataPtr LabEngine::findClosePtrMatch(CloseDataPtr closePtr, Common::List<Cl  	return nullptr;  } -Common::String LabEngine::getPictName(CloseDataPtr *closePtrList) { +Common::String LabEngine::getPictName(bool useClose) {  	ViewData *viewPtr = getViewData(_roomNum, _direction); -	if (*closePtrList) { -		*closePtrList = findClosePtrMatch(*closePtrList, viewPtr->_closeUps); +	if (useClose && _closeDataPtr) { +		_closeDataPtr = findClosePtrMatch(_closeDataPtr, viewPtr->_closeUps); -		if (*closePtrList) -			return (*closePtrList)->_graphicName; +		if (_closeDataPtr) +			return _closeDataPtr->_graphicName;  	}  	return viewPtr->_graphicName;  } -void LabEngine::drawDirection(CloseDataPtr closePtr) { +void LabEngine::drawDirection(const CloseData *closePtr) {  	if (closePtr && !closePtr->_message.empty()) {  		_graphics->drawMessage(closePtr->_message, false);  		return; @@ -172,16 +171,15 @@ uint16 LabEngine::processArrow(uint16 curDirection, uint16 arrow) {  	return curDirection;  } -void LabEngine::setCurrentClose(Common::Point pos, CloseDataPtr *closePtrList, bool useAbsoluteCoords, bool next) { - -	Common::List<CloseData> *list; +void LabEngine::setCurrentClose(Common::Point pos, const CloseData **closePtrList, bool useAbsoluteCoords, bool next) { +	const CloseDataList *list;  	if (!*closePtrList)  		list = &(getViewData(_roomNum, _direction)->_closeUps);  	else  		list = &((*closePtrList)->_subCloseUps); -	Common::List<CloseData>::iterator closePtr; +	CloseDataList::const_iterator closePtr;  	for (closePtr = list->begin(); closePtr != list->end(); ++closePtr) {  		Common::Rect target;  		if (!useAbsoluteCoords) @@ -202,19 +200,26 @@ void LabEngine::setCurrentClose(Common::Point pos, CloseDataPtr *closePtrList, b  			return;  		}  	} + +	// If we got here, no match was found. If we want the "next" close-up, +	// return the first one in the list, if any. +	if (next) { +		if (!list->empty()) +			*closePtrList = &(*list->begin()); +	}  } -bool LabEngine::takeItem(Common::Point pos, CloseDataPtr *closePtrList) { -	Common::List<CloseData> *list; -	if (!*closePtrList) { +bool LabEngine::takeItem(Common::Point pos) { +	const CloseDataList *list; +	if (!_closeDataPtr) {  		list = &(getViewData(_roomNum, _direction)->_closeUps); -	} else if ((*closePtrList)->_closeUpType < 0) { -		_conditions->inclElement(abs((*closePtrList)->_closeUpType)); +	} else if (_closeDataPtr->_closeUpType < 0) { +		_conditions->inclElement(abs(_closeDataPtr->_closeUpType));  		return true;  	} else -		list = &((*closePtrList)->_subCloseUps); +		list = &(_closeDataPtr->_subCloseUps); -	Common::List<CloseData>::iterator closePtr; +	CloseDataList::const_iterator closePtr;  	for (closePtr = list->begin(); closePtr != list->end(); ++closePtr) {  		Common::Rect objRect;  		objRect = _utils->rectScale(closePtr->_x1, closePtr->_y1, closePtr->_x2, closePtr->_y2); @@ -227,25 +232,22 @@ bool LabEngine::takeItem(Common::Point pos, CloseDataPtr *closePtrList) {  	return false;  } -void LabEngine::doActions(const Common::List<Action> &actionList, CloseDataPtr *closePtrList) { -	Common::List<Action>::const_iterator action; +void LabEngine::doActions(const ActionList &actionList) { +	ActionList::const_iterator action;  	for (action = actionList.begin(); action != actionList.end(); ++action) {  		updateMusicAndEvents();  		switch (action->_actionType) {  		case kActionPlaySound: -			_music->_loopSoundEffect = false; -			_music->readMusic(action->_messages[0], true); +			_music->readMusic(action->_messages[0], false, true);  			break; -		case kActionPlaySoundNoWait: -			_music->_loopSoundEffect = false; -			_music->readMusic(action->_messages[0], false); +		case kActionPlaySoundNoWait:	// only used in scene 7 (street, when teleporting to the surreal maze) +			_music->readMusic(action->_messages[0], false, false);  			break;  		case kActionPlaySoundLooping: -			_music->_loopSoundEffect = true; -			_music->readMusic(action->_messages[0], false); +			_music->readMusic(action->_messages[0], true, false);  			break;  		case kActionShowDiff: @@ -260,7 +262,6 @@ void LabEngine::doActions(const Common::List<Action> &actionList, CloseDataPtr *  			if (!action->_messages[0].empty())  				// Puts a file into memory  				_graphics->loadPict(action->_messages[0]); -  			break;  		case kActionLoadBitmap: @@ -270,7 +271,7 @@ void LabEngine::doActions(const Common::List<Action> &actionList, CloseDataPtr *  			error("Unused opcode kActionShowBitmap has been called");  		case kActionTransition: -			_graphics->doTransition((TransitionType)action->_param1, closePtrList, action->_messages[0].c_str()); +			_graphics->doTransition((TransitionType)action->_param1, action->_messages[0].c_str());  			break;  		case kActionNoUpdate: @@ -283,7 +284,7 @@ void LabEngine::doActions(const Common::List<Action> &actionList, CloseDataPtr *  			break;  		case kActionShowCurPict: { -			Common::String test = getPictName(closePtrList); +			Common::String test = getPictName(true);  			if (test != _curFileName) {  				_curFileName = test; @@ -308,7 +309,7 @@ void LabEngine::doActions(const Common::List<Action> &actionList, CloseDataPtr *  			break;  		case kActionCShowMessage: -			if (!*closePtrList) +			if (!_closeDataPtr)  				_graphics->drawMessage(action->_messages[0], true);  			break; @@ -320,7 +321,7 @@ void LabEngine::doActions(const Common::List<Action> &actionList, CloseDataPtr *  			if (action->_param1 & 0x8000) {  				// This is a Wyrmkeep Windows trial version, thus stop at this  				// point, since we can't check for game payment status -				_graphics->readPict(getPictName(closePtrList)); +				_graphics->readPict(getPictName(true));  				GUI::MessageDialog trialMessage("This is the end of the trial version. You can play the full game using the original interpreter from Wyrmkeep");  				trialMessage.runModal();  				break; @@ -328,21 +329,21 @@ void LabEngine::doActions(const Common::List<Action> &actionList, CloseDataPtr *  			_roomNum   = action->_param1;  			_direction = action->_param2 - 1; -			*closePtrList = nullptr; +			_closeDataPtr = nullptr;  			_anim->_doBlack = true;  			break;  		case kActionSetCloseup: {  			Common::Point curPos = Common::Point(_utils->scaleX(action->_param1), _utils->scaleY(action->_param2)); -				CloseDataPtr tmpClosePtr = getObject(curPos, *closePtrList); +				const CloseData *tmpClosePtr = getObject(curPos, _closeDataPtr);  				if (tmpClosePtr) -					*closePtrList = tmpClosePtr; +					_closeDataPtr = tmpClosePtr;  			}  			break;  		case kActionMainView: -			*closePtrList = nullptr; +			_closeDataPtr = nullptr;  			break;  		case kActionSubInv: @@ -385,12 +386,10 @@ void LabEngine::doActions(const Common::List<Action> &actionList, CloseDataPtr *  		case kActionChangeMusic:  			_music->changeMusic(action->_messages[0]); -			_music->setMusicReset(false);  			break;  		case kActionResetMusic:  			_music->resetMusic(); -			_music->setMusicReset(true);  			break;  		case kActionFillMusic: @@ -407,12 +406,7 @@ void LabEngine::doActions(const Common::List<Action> &actionList, CloseDataPtr *  			break;  		case kActionClearSound: -			if (_music->_loopSoundEffect) { -				_music->_loopSoundEffect = false; -				_music->stopSoundEffect(); -			} else if (_music->isSoundEffectActive()) -				_music->stopSoundEffect(); - +			_music->stopSoundEffect();  			break;  		case kActionWinMusic: @@ -470,19 +464,10 @@ void LabEngine::doActions(const Common::List<Action> &actionList, CloseDataPtr *  		}  	} -	if (_music->_loopSoundEffect) { -		_music->_loopSoundEffect = false; -		_music->stopSoundEffect(); -	} else { -		while (_music->isSoundEffectActive()) { -			updateMusicAndEvents(); -			_anim->diffNextFrame(); -			waitTOF(); -		} -	} +	_music->stopSoundEffect();  } -bool LabEngine::doActionRuleSub(int16 action, int16 roomNum, CloseDataPtr closePtr, CloseDataPtr *setCloseList, bool allowDefaults) { +bool LabEngine::doActionRuleSub(int16 action, int16 roomNum, const CloseData *closePtr, bool allowDefaults) {  	action++;  	if (closePtr) { @@ -500,7 +485,7 @@ bool LabEngine::doActionRuleSub(int16 action, int16 roomNum, CloseDataPtr closeP  					  ((rule->_param2 == 0) && allowDefaults)) ||  					  ((action == 1) && (rule->_param2 == -closePtr->_closeUpType))) {  					if (checkConditions(rule->_condition)) { -						doActions(rule->_actionList, setCloseList); +						doActions(rule->_actionList);  						return true;  					}  				} @@ -511,27 +496,27 @@ bool LabEngine::doActionRuleSub(int16 action, int16 roomNum, CloseDataPtr closeP  	return false;  } -bool LabEngine::doActionRule(Common::Point pos, int16 action, int16 roomNum, CloseDataPtr *closePtrList) { +bool LabEngine::doActionRule(Common::Point pos, int16 action, int16 roomNum) {  	if (roomNum)  		_newFileName = NOFILE;  	else  		_newFileName = _curFileName; -	CloseDataPtr curClosePtr = getObject(pos, *closePtrList); +	const CloseData *curClosePtr = getObject(pos, _closeDataPtr); -	if (doActionRuleSub(action, roomNum, curClosePtr, closePtrList, false)) +	if (doActionRuleSub(action, roomNum, curClosePtr, false))  		return true; -	else if (doActionRuleSub(action, roomNum, *closePtrList, closePtrList, false)) +	else if (doActionRuleSub(action, roomNum, _closeDataPtr, false))  		return true; -	else if (doActionRuleSub(action, roomNum, curClosePtr, closePtrList, true)) +	else if (doActionRuleSub(action, roomNum, curClosePtr, true))  		return true; -	else if (doActionRuleSub(action, roomNum, *closePtrList, closePtrList, true)) +	else if (doActionRuleSub(action, roomNum, _closeDataPtr, true))  		return true;  	return false;  } -bool LabEngine::doOperateRuleSub(int16 itemNum, int16 roomNum, CloseDataPtr closePtr, CloseDataPtr *setCloseList, bool allowDefaults) { +bool LabEngine::doOperateRuleSub(int16 itemNum, int16 roomNum, const CloseData *closePtr, bool allowDefaults) {  	if (closePtr)  		if (closePtr->_closeUpType > 0) {  			RuleList *rules = &(_rooms[roomNum]._rules); @@ -546,7 +531,7 @@ bool LabEngine::doOperateRuleSub(int16 itemNum, int16 roomNum, CloseDataPtr clos  					  ((rule->_param1 == itemNum) || ((rule->_param1 == 0) && allowDefaults)) &&  						((rule->_param2 == closePtr->_closeUpType) || ((rule->_param2 == 0) && allowDefaults))) {  					if (checkConditions(rule->_condition)) { -						doActions(rule->_actionList, setCloseList); +						doActions(rule->_actionList);  						return true;  					}  				} @@ -556,41 +541,41 @@ bool LabEngine::doOperateRuleSub(int16 itemNum, int16 roomNum, CloseDataPtr clos  	return false;  } -bool LabEngine::doOperateRule(Common::Point pos, int16 ItemNum, CloseDataPtr *closePtrList) { +bool LabEngine::doOperateRule(Common::Point pos, int16 ItemNum) {  	_newFileName = NOFILE; -	CloseDataPtr closePtr = getObject(pos, *closePtrList); +	const CloseData *closePtr = getObject(pos, _closeDataPtr); -	if (doOperateRuleSub(ItemNum, _roomNum, closePtr, closePtrList, false)) +	if (doOperateRuleSub(ItemNum, _roomNum, closePtr, false))  		return true; -	else if (doOperateRuleSub(ItemNum, _roomNum, *closePtrList, closePtrList, false)) +	else if (doOperateRuleSub(ItemNum, _roomNum, _closeDataPtr, false))  		return true; -	else if (doOperateRuleSub(ItemNum, _roomNum, closePtr, closePtrList, true)) +	else if (doOperateRuleSub(ItemNum, _roomNum, closePtr, true))  		return true; -	else if (doOperateRuleSub(ItemNum, _roomNum, *closePtrList, closePtrList, true)) +	else if (doOperateRuleSub(ItemNum, _roomNum, _closeDataPtr, true))  		return true;  	else {  		_newFileName = _curFileName; -		if (doOperateRuleSub(ItemNum, 0, closePtr, closePtrList, false)) +		if (doOperateRuleSub(ItemNum, 0, closePtr, false))  			return true; -		else if (doOperateRuleSub(ItemNum, 0, *closePtrList, closePtrList, false)) +		else if (doOperateRuleSub(ItemNum, 0, _closeDataPtr, false))  			return true; -		else if (doOperateRuleSub(ItemNum, 0, closePtr, closePtrList, true)) +		else if (doOperateRuleSub(ItemNum, 0, closePtr, true))  			return true; -		else if (doOperateRuleSub(ItemNum, 0, *closePtrList, closePtrList, true)) +		else if (doOperateRuleSub(ItemNum, 0, _closeDataPtr, true))  			return true;  	}  	return false;  } -bool LabEngine::doGoForward(CloseDataPtr *closePtrList) { +bool LabEngine::doGoForward() {  	RuleList &rules = _rooms[_roomNum]._rules;  	for (RuleList::iterator rule = rules.begin(); rule != rules.end(); ++rule) {  		if ((rule->_ruleType == kRuleTypeGoForward) && (rule->_param1 == (_direction + 1))) {  			if (checkConditions(rule->_condition)) { -				doActions(rule->_actionList, closePtrList); +				doActions(rule->_actionList);  				return true;  			}  		} @@ -599,7 +584,7 @@ bool LabEngine::doGoForward(CloseDataPtr *closePtrList) {  	return false;  } -bool LabEngine::doTurn(uint16 from, uint16 to, CloseDataPtr *closePtrList) { +bool LabEngine::doTurn(uint16 from, uint16 to) {  	from++;  	to++; @@ -610,7 +595,7 @@ bool LabEngine::doTurn(uint16 from, uint16 to, CloseDataPtr *closePtrList) {  			  ((rule->_ruleType == kRuleTypeTurnFromTo) &&  			  (rule->_param1 == from) && (rule->_param2 == to))) {  			if (checkConditions(rule->_condition)) { -				doActions(rule->_actionList, closePtrList); +				doActions(rule->_actionList);  				return true;  			}  		} @@ -619,12 +604,12 @@ bool LabEngine::doTurn(uint16 from, uint16 to, CloseDataPtr *closePtrList) {  	return false;  } -bool LabEngine::doMainView(CloseDataPtr *closePtrList) { +bool LabEngine::doMainView() {  	RuleList &rules = _rooms[_roomNum]._rules;  	for (RuleList::iterator rule = rules.begin(); rule != rules.end(); ++rule) {  		if (rule->_ruleType == kRuleTypeGoMainView) {  			if (checkConditions(rule->_condition)) { -				doActions(rule->_actionList, closePtrList); +				doActions(rule->_actionList);  				return true;  			}  		} diff --git a/engines/lab/processroom.h b/engines/lab/processroom.h index 5051588ab1..1d53ce01af 100644 --- a/engines/lab/processroom.h +++ b/engines/lab/processroom.h @@ -119,23 +119,20 @@ enum MapDoors {  	kDoorBottomWest = 128  }; -// Special Map ID's -#define     NORMAL           0 -#define     UPARROWROOM      1 -#define     DOWNARROWROOM    2 -#define     BRIDGEROOM       3 -#define     VCORRIDOR        4 -#define     HCORRIDOR        5 -#define     MEDMAZE          6 -#define     HEDGEMAZE        7 -#define     SURMAZE          8 -#define     MULTIMAZEF1      9 -#define     MULTIMAZEF2     10 -#define     MULTIMAZEF3     11 - -#if defined(WIN32) -#pragma pack(push, 1) -#endif +enum SpecialRoom { +	kNormalRoom = 0, +	kUpArrowRoom, +	kDownArrowRoom, +	kBridgeRoom, +	kVerticalCorridor, +	kHorizontalCorridor, +	kMedMaze, +	kHedgeMaze, +	kSurMaze, +	kMultiMazeF1, +	kMultiMazeF2, +	kMultiMazeF3 +};  struct CloseData {  	uint16 _x1, _y1, _x2, _y2; @@ -143,13 +140,13 @@ struct CloseData {  	uint16 _depth;               // Level of the closeup.  	Common::String _graphicName;  	Common::String _message; -	Common::List<CloseData> _subCloseUps; +	CloseDataList _subCloseUps;  };  struct ViewData {  	Common::Array<int16> _condition;  	Common::String _graphicName; -	Common::List<CloseData> _closeUps; +	CloseDataList _closeUps;  };  struct Action { @@ -165,13 +162,13 @@ struct Rule {  	int16 _param1;  	int16 _param2;  	Common::Array<int16> _condition; -	Common::List<Action> _actionList; +	ActionList _actionList;  };  struct RoomData {  	uint16 _doors[4];  	byte _transitionType; -	Common::List<ViewData> _view[4]; +	ViewDataList _view[4];  	RuleList _rules;  	Common::String _roomMsg;  }; @@ -183,14 +180,11 @@ struct InventoryData {  };  struct MapData { -	uint16 _x, _y, _pageNumber, _specialID; +	uint16 _x, _y, _pageNumber; +	SpecialRoom _specialID;  	uint32 _mapFlags;  }; -#if defined(WIN32) -#pragma pack(pop) -#endif -  } // End of namespace Lab  #endif // LAB_PROCESSROOM_H diff --git a/engines/lab/resource.cpp b/engines/lab/resource.cpp index 985a71b490..17535a7659 100644 --- a/engines/lab/resource.cpp +++ b/engines/lab/resource.cpp @@ -253,7 +253,7 @@ void Resource::readRule(Common::File *file, RuleList &rules) {  	}  } -void Resource::readAction(Common::File *file, Common::List<Action>& list) { +void Resource::readAction(Common::File *file, ActionList &list) {  	list.clear();  	while (file->readByte() == 1) { @@ -275,7 +275,7 @@ void Resource::readAction(Common::File *file, Common::List<Action>& list) {  	}  } -void Resource::readCloseUps(uint16 depth, Common::File *file, Common::List<CloseData> &list) { +void Resource::readCloseUps(uint16 depth, Common::File *file, CloseDataList &list) {  	list.clear();  	while (file->readByte() != '\0') {  		list.push_back(CloseData()); @@ -293,7 +293,7 @@ void Resource::readCloseUps(uint16 depth, Common::File *file, Common::List<Close  	}  } -void Resource::readView(Common::File *file, Common::List<ViewData> &list) { +void Resource::readView(Common::File *file, ViewDataList &list) {  	list.clear();  	while (file->readByte() == 1) {  		list.push_back(ViewData()); diff --git a/engines/lab/resource.h b/engines/lab/resource.h index 7a7cfb4b95..307eac3068 100644 --- a/engines/lab/resource.h +++ b/engines/lab/resource.h @@ -110,9 +110,9 @@ private:  	Common::String readString(Common::File *file);  	Common::Array<int16> readConditions(Common::File *file);  	void readRule(Common::File *file, RuleList &rules); -	void readAction(Common::File *file, Common::List<Action> &action); -	void readCloseUps(uint16 depth, Common::File *file, Common::List<CloseData> &close); -	void readView(Common::File *file, Common::List<ViewData> &view); +	void readAction(Common::File *file, ActionList &action); +	void readCloseUps(uint16 depth, Common::File *file, CloseDataList &close); +	void readView(Common::File *file, ViewDataList &view);  	void readStaticText();  	Common::String translateFileName(const Common::String filename); diff --git a/engines/lab/savegame.cpp b/engines/lab/savegame.cpp index 0bdaf74865..1564babfc8 100644 --- a/engines/lab/savegame.cpp +++ b/engines/lab/savegame.cpp @@ -43,7 +43,7 @@  #include "lab/labsets.h"  #include "lab/music.h"  #include "lab/processroom.h" -#include "lab/tilepuzzle.h" +#include "lab/speciallocks.h"  namespace Lab { @@ -128,8 +128,8 @@ bool LabEngine::saveGame(int slot, const Common::String desc) {  		return false;  	// Load scene pic -	CloseDataPtr closePtr = nullptr; -	_graphics->readPict(getPictName(&closePtr)); +	_graphics->readPict(getPictName(false)); +  	writeSaveGameHeader(file, desc);  	file->writeUint16LE(_roomNum); @@ -144,7 +144,7 @@ bool LabEngine::saveGame(int slot, const Common::String desc) {  	for (int i = 0; i < _roomsFound->_lastElement / (8 * 2); i++)  		file->writeUint16LE(_roomsFound->_array[i]); -	_tilePuzzle->save(file); +	_specialLocks->save(file);  	// Breadcrumbs  	for (uint i = 0; i < MAX_CRUMBS; i++) { @@ -181,7 +181,7 @@ bool LabEngine::loadGame(int slot) {  	for (int i = 0; i < _roomsFound->_lastElement / (8 * 2); i++)  		_roomsFound->_array[i] = file->readUint16LE(); -	_tilePuzzle->load(file); +	_specialLocks->load(file);  	// Breadcrumbs  	for (int i = 0; i < MAX_CRUMBS; i++) { diff --git a/engines/lab/special.cpp b/engines/lab/special.cpp index e15561d9fb..8e503665c7 100644 --- a/engines/lab/special.cpp +++ b/engines/lab/special.cpp @@ -134,7 +134,7 @@ void LabEngine::loadJournalData() {  	delete journalFile;  	_anim->_noPalChange = true; -	_journalBackImage->_imageData = new byte[_graphics->_screenBytesPerPage]; +	_journalBackImage->setData(new byte[_graphics->_screenBytesPerPage]);  	_graphics->readPict("P:Journal.pic", true, false, _journalBackImage->_imageData);  	_anim->_noPalChange = false; @@ -232,13 +232,13 @@ void LabEngine::processJournal() {  		if (!msg)  			updateMusicAndEvents();  		else { -			uint32 msgClass  = msg->_msgClass; -			uint16 buttonId  = msg->_code; +			MessageClass msgClass  = msg->_msgClass;  			if ((msgClass == kMessageRightClick) || -				((msgClass == kMessageRawKey) && (buttonId == Common::KEYCODE_ESCAPE))) +				((msgClass == kMessageRawKey) && (msg->_code == Common::KEYCODE_ESCAPE)))  				return;  			else if (msgClass == kMessageButtonUp) { +				uint16 buttonId  = msg->_code;  				if (buttonId == 0) {  					if (_journalPage >= 2) {  						_journalPage -= 2; @@ -263,7 +263,7 @@ void LabEngine::doJournal() {  	_journalBackImage->_width = _graphics->_screenWidth;  	_journalBackImage->_height = _graphics->_screenHeight; -	_journalBackImage->_imageData = nullptr; +	_journalBackImage->setData(nullptr, true);  	updateMusicAndEvents();  	loadJournalData(); @@ -276,8 +276,8 @@ void LabEngine::doJournal() {  	_event->mouseHide();  	delete[] _blankJournal; -	delete[] _journalBackImage->_imageData; -	_blankJournal = _journalBackImage->_imageData = nullptr; +	_blankJournal = nullptr; +	_journalBackImage->setData(nullptr, true);  	_event->freeButtonList(&_journalButtonList);  	_graphics->freeFont(&_journalFont); @@ -333,13 +333,13 @@ void LabEngine::drawMonText(const char *text, TextFont *monitorFont, Common::Rec  	curText = text + charsDrawn;  	_lastPage = (*curText == 0); -	charsDrawn = _graphics->flowText(monitorFont, yspacing, 2, 0, false, false, false, true, textRect, curText); +	_graphics->flowText(monitorFont, yspacing, 2, 0, false, false, false, true, textRect, curText);  	_event->mouseShow();  }  void LabEngine::processMonitor(const char *ntext, TextFont *monitorFont, bool isInteractive, Common::Rect textRect) {  	Common::String startFileName = _monitorTextFilename; -	CloseDataPtr startClosePtr = _closeDataPtr, lastClosePtr[10]; +	const CloseData *startClosePtr = _closeDataPtr, *lastClosePtr[10];  	uint16 depth = 0;  	lastClosePtr[0] = _closeDataPtr; @@ -349,15 +349,15 @@ void LabEngine::processMonitor(const char *ntext, TextFont *monitorFont, bool is  			if (!_closeDataPtr)  				_closeDataPtr = startClosePtr; -			Common::String test; +			Common::String filename;  			if (_closeDataPtr == startClosePtr) -				test = startFileName; +				filename = startFileName;  			else -				test = _closeDataPtr->_graphicName; +				filename = _closeDataPtr->_graphicName; -			if (test != _monitorTextFilename) { +			if (filename != _monitorTextFilename) {  				_monitorPage = 0; -				_monitorTextFilename = test; +				_monitorTextFilename = filename;  				Common::String text = _resource->getText(_monitorTextFilename);  				_graphics->fade(false); @@ -374,22 +374,24 @@ void LabEngine::processMonitor(const char *ntext, TextFont *monitorFont, bool is  			return;  		} -		if (!msg) { +		if (!msg)  			updateMusicAndEvents(); -		} else { -			uint32 msgClass  = msg->_msgClass; -			uint16 mouseX    = msg->_mouse.x; -			uint16 mouseY    = msg->_mouse.y; -			uint16 code      = msg->_code; +		else { +			MessageClass msgClass  = msg->_msgClass;  			if ((msgClass == kMessageRightClick) || -				  ((msgClass == kMessageRawKey) && (code == Common::KEYCODE_ESCAPE))) +				  ((msgClass == kMessageRawKey) && (msg->_code == Common::KEYCODE_ESCAPE)))  				return; -			else if (msgClass == kMessageLeftClick) { + +			if (msgClass == kMessageLeftClick) { +				int16 mouseX = msg->_mouse.x; +				int16 mouseY = msg->_mouse.y; +  				if ((mouseY >= _utils->vgaScaleY(171)) && (mouseY <= _utils->vgaScaleY(200))) { -					if (mouseX <= _utils->vgaScaleX(31)) { +					if (mouseX <= _utils->vgaScaleX(31))  						return; -					} else if (mouseX <= _utils->vgaScaleX(59)) { +					 +					if (mouseX <= _utils->vgaScaleX(59)) {  						if (isInteractive) {  							_monitorPage = 0; @@ -409,12 +411,12 @@ void LabEngine::processMonitor(const char *ntext, TextFont *monitorFont, bool is  							drawMonText(ntext, monitorFont, textRect, isInteractive);  						}  					} else if (_monitorPage >= 1) { -						// mouseX between 290 and 320 (scaled) +						// mouseX is greater than 290 (scaled)  						_monitorPage -= 1;  						drawMonText(ntext, monitorFont, textRect, isInteractive);  					}  				} else if (isInteractive) { -					CloseDataPtr tmpClosePtr = _closeDataPtr; +					const CloseData *tmpClosePtr = _closeDataPtr;  					mouseY = 64 + (mouseY / _monitorButtonHeight) * 42;  					mouseX = 101;  					setCurrentClose(Common::Point(mouseX, mouseY), &_closeDataPtr, false); diff --git a/engines/lab/tilepuzzle.cpp b/engines/lab/speciallocks.cpp index 8f21cee4b4..fe70b0f111 100644 --- a/engines/lab/tilepuzzle.cpp +++ b/engines/lab/speciallocks.cpp @@ -38,7 +38,7 @@  #include "lab/image.h"  #include "lab/labsets.h"  #include "lab/resource.h" -#include "lab/tilepuzzle.h" +#include "lab/speciallocks.h"  #include "lab/utils.h"  namespace Lab { @@ -69,7 +69,7 @@ const uint16 SOLUTION[4][4] = {  const int COMBINATION_X[6] = { 45, 83, 129, 166, 211, 248 }; -TilePuzzle::TilePuzzle(LabEngine *vm) : _vm(vm) { +SpecialLocks::SpecialLocks(LabEngine *vm) : _vm(vm) {  	for (int i = 0; i < 16; i++)  		_tiles[i] = nullptr; @@ -85,7 +85,7 @@ TilePuzzle::TilePuzzle(LabEngine *vm) : _vm(vm) {  		_numberImages[i] = nullptr;  } -TilePuzzle::~TilePuzzle() { +SpecialLocks::~SpecialLocks() {  	for (int i = 0; i < 16; i++)  		delete _tiles[i]; @@ -95,7 +95,7 @@ TilePuzzle::~TilePuzzle() {  	}  } -void TilePuzzle::mouseTile(Common::Point pos) { +void SpecialLocks::tileClick(Common::Point pos) {  	Common::Point realPos = _vm->_utils->vgaUnscale(pos);  	if ((realPos.x < 101) || (realPos.y < 26)) @@ -108,7 +108,7 @@ void TilePuzzle::mouseTile(Common::Point pos) {  		changeTile(tileX, tileY);  } -void TilePuzzle::changeTile(uint16 col, uint16 row) { +void SpecialLocks::changeTile(uint16 col, uint16 row) {  	int16 scrolltype = -1;  	if (row > 0) { @@ -174,7 +174,7 @@ void TilePuzzle::changeTile(uint16 col, uint16 row) {  	}  } -void TilePuzzle::mouseCombination(Common::Point pos) { +void SpecialLocks::combinationClick(Common::Point pos) {  	Common::Point realPos = _vm->_utils->vgaUnscale(pos);  	if (!Common::Rect(44, 63, 285, 99).contains(realPos)) @@ -197,7 +197,7 @@ void TilePuzzle::mouseCombination(Common::Point pos) {  	changeCombination(number);  } -void TilePuzzle::doTile(bool showsolution) { +void SpecialLocks::doTile(bool showsolution) {  	uint16 row = 0, col = 0, rowm, colm, num;  	int16 rows, cols; @@ -235,7 +235,7 @@ void TilePuzzle::doTile(bool showsolution) {  	}  } -void TilePuzzle::showTile(const Common::String filename, bool showSolution) { +void SpecialLocks::showTileLock(const Common::String filename, bool showSolution) {  	_vm->_anim->_doBlack = true;  	_vm->_anim->_noPalChange = true;  	_vm->_graphics->readPict(filename); @@ -255,7 +255,7 @@ void TilePuzzle::showTile(const Common::String filename, bool showSolution) {  	_vm->_graphics->setPalette(_vm->_anim->_diffPalette, 256);  } -void TilePuzzle::doTileScroll(uint16 col, uint16 row, uint16 scrolltype) { +void SpecialLocks::doTileScroll(uint16 col, uint16 row, uint16 scrolltype) {  	int16 dX = 0, dY = 0, dx = 0, dy = 0, sx = 0, sy = 0;  	int last = 0; @@ -296,7 +296,15 @@ void TilePuzzle::doTileScroll(uint16 col, uint16 row, uint16 scrolltype) {  	delete[] buffer;  } -void TilePuzzle::changeCombination(uint16 number) { +void SpecialLocks::scrollRaster(int16 dx, int16 dy, uint16 x1, uint16 y1, uint16 x2, uint16 y2, byte *buffer) { +	if (dx) +		_vm->_graphics->scrollDisplayX(dx, x1, y1, x2, y2, buffer); + +	if (dy) +		_vm->_graphics->scrollDisplayY(dy, x1, y1, x2, y2, buffer); +} + +void SpecialLocks::changeCombination(uint16 number) {  	const int solution[6] = { 0, 4, 0, 8, 7, 2 };  	Image display(_vm); @@ -308,27 +316,25 @@ void TilePuzzle::changeCombination(uint16 number) {  	uint16 combnum = _combination[number]; -	display._imageData = _vm->_graphics->getCurrentDrawingBuffer(); -	display._width     = _vm->_graphics->_screenWidth; -	display._height    = _vm->_graphics->_screenHeight; +	display.setData(_vm->_graphics->getCurrentDrawingBuffer(), false); +	display._width = _vm->_graphics->_screenWidth; +	display._height = _vm->_graphics->_screenHeight; -	byte *buffer = new byte[_tiles[1]->_width * _tiles[1]->_height * 2]; +	byte *buffer = new byte[_numberImages[1]->_width * _numberImages[1]->_height * 2];  	for (int i = 1; i <= (_numberImages[combnum]->_height / 2); i++) {  		if (_vm->_isHiRes) {  			if (i & 1)  				_vm->waitTOF(); -		} else +		} +		else  			_vm->waitTOF(); -		display._imageData = _vm->_graphics->getCurrentDrawingBuffer(); +		display.setData(_vm->_graphics->getCurrentDrawingBuffer(), false);  		_vm->_graphics->scrollDisplayY(2, _vm->_utils->vgaScaleX(COMBINATION_X[number]), _vm->_utils->vgaScaleY(65), _vm->_utils->vgaScaleX(COMBINATION_X[number]) + (_numberImages[combnum])->_width - 1, _vm->_utils->vgaScaleY(65) + (_numberImages[combnum])->_height, buffer);  		_numberImages[combnum]->blitBitmap(0, (_numberImages[combnum])->_height - (2 * i), &(display), _vm->_utils->vgaScaleX(COMBINATION_X[number]), _vm->_utils->vgaScaleY(65), (_numberImages[combnum])->_width, 2, false);  	} -	// Prevent the Image destructor from deleting the display buffer -	display._imageData = nullptr; -  	delete[] buffer;  	bool unlocked = true; @@ -341,20 +347,7 @@ void TilePuzzle::changeCombination(uint16 number) {  		_vm->_conditions->exclElement(COMBINATIONUNLOCKED);  } -void TilePuzzle::scrollRaster(int16 dx, int16 dy, uint16 x1, uint16 y1, uint16 x2, uint16 y2, byte *buffer) { -	if (dx) -		_vm->_graphics->scrollDisplayX(dx, x1, y1, x2, y2, buffer); - -	if (dy) -		_vm->_graphics->scrollDisplayY(dy, x1, y1, x2, y2, buffer); -} - -void TilePuzzle::doCombination() { -	for (int i = 0; i <= 5; i++) -		_numberImages[_combination[i]]->drawImage(_vm->_utils->vgaScaleX(COMBINATION_X[i]), _vm->_utils->vgaScaleY(65)); -} - -void TilePuzzle::showCombination(const Common::String filename) { +void SpecialLocks::showCombinationLock(const Common::String filename) {  	_vm->_anim->_doBlack = true;  	_vm->_anim->_noPalChange = true;  	_vm->_graphics->readPict(filename); @@ -364,18 +357,20 @@ void TilePuzzle::showCombination(const Common::String filename) {  	Common::File *numFile = _vm->_resource->openDataFile("P:Numbers"); -	for (int CurBit = 0; CurBit < 10; CurBit++) -		_numberImages[CurBit] = new Image(numFile, _vm); +	for (int i = 0; i < 10; i++) { +		_numberImages[i] = new Image(numFile, _vm); +	}  	delete numFile; -	doCombination(); +	for (int i = 0; i <= 5; i++) +		_numberImages[_combination[i]]->drawImage(_vm->_utils->vgaScaleX(COMBINATION_X[i]), _vm->_utils->vgaScaleY(65));  	_vm->_graphics->setPalette(_vm->_anim->_diffPalette, 256);  } -void TilePuzzle::save(Common::OutSaveFile *file) { -	// Combination lock and tile stuff +void SpecialLocks::save(Common::OutSaveFile *file) { +	// Combination lock  	for (int i = 0; i < 6; i++)  		file->writeByte(_combination[i]); @@ -385,8 +380,8 @@ void TilePuzzle::save(Common::OutSaveFile *file) {  			file->writeUint16LE(_curTile[i][j]);  } -void TilePuzzle::load(Common::InSaveFile *file) { -	// Combination lock and tile stuff +void SpecialLocks::load(Common::InSaveFile *file) { +	// Combination lock  	for (int i = 0; i < 6; i++)  		_combination[i] = file->readByte(); diff --git a/engines/lab/tilepuzzle.h b/engines/lab/speciallocks.h index dd4abba8ec..424eba242a 100644 --- a/engines/lab/tilepuzzle.h +++ b/engines/lab/speciallocks.h @@ -37,7 +37,7 @@ namespace Lab {  class LabEngine; -class TilePuzzle { +class SpecialLocks {  private:  	LabEngine *_vm;  	Image *_tiles[16]; @@ -46,28 +46,23 @@ private:  	byte _combination[6];  public: -	TilePuzzle(LabEngine *vm); -	virtual ~TilePuzzle(); +	SpecialLocks(LabEngine *vm); +	~SpecialLocks(); -	/** -	 * Processes mouse clicks and changes the combination. -	 */ -	void mouseTile(Common::Point pos); +	void showTileLock(const Common::String filename, bool showSolution);  	/** -	 * Processes mouse clicks and changes the combination. +	 * Processes mouse clicks and changes tile positions.  	 */ -	void mouseCombination(Common::Point pos); +	void tileClick(Common::Point pos); -	/** -	 * Reads in a backdrop picture. -	 */ -	void showCombination(const Common::String filename); +	void showCombinationLock(const Common::String filename);  	/** -	 * Reads in a backdrop picture. +	 * Processes mouse clicks and changes the door combination.  	 */ -	void showTile(const Common::String filename, bool showSolution); +	void combinationClick(Common::Point pos); +  	void save(Common::OutSaveFile *file);  	void load(Common::InSaveFile *file); @@ -78,18 +73,13 @@ private:  	void changeCombination(uint16 number);  	/** -	 * Changes the combination number of one of the slots +	 * Changes the tile positions in the tile puzzle  	 */  	void changeTile(uint16 col, uint16 row);  	/**  	 * Draws the images of the combination lock to the display bitmap.  	 */ -	void doCombination(); - -	/** -	 * Draws the images of the combination lock to the display bitmap. -	 */  	void doTile(bool showsolution);  	/** diff --git a/engines/logo_data.h b/engines/logo_data.h new file mode 100644 index 0000000000..2eaff6930f --- /dev/null +++ b/engines/logo_data.h @@ -0,0 +1,1099 @@ +/* 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. + * + */ + +// This is a BMP file dumped into array. +//   recode ../d1 <dists/scummvm_logo.bmp >logo_data.h +// The tool is from https://github.com/pinard/Recode + +byte logo_data[] = { + 66,  77, 180,  62,   0,   0,   0,   0,   0,   0,  54,   4,   0,   0,  40, +  0,   0,   0,  44,   1,   0,   0,  83,   0,   0,   0,   1,   0,   8,   0, +  1,   0,   0,   0, 126,  58,   0,   0,  19,  11,   0,   0,  19,  11,   0, +  0,   0,   1,   0,   0,   0,   1,   0,   0,   0,   1,   0,   0,   0,   2, +  0,   0,   0,   1,   9,   0,   0,   4,   1,   0,   1,   5,   3,   0,   2, +  4,  11,   0,   5,   7,  14,   0,   6,  10,   7,   0,   0,  10,  11,   0, +  0,   8,  18,   0,   3,  15,  14,   0,   5,  14,  21,   0,  13,  16,  14, +  0,   1,  16,  28,   0,   1,  20,  16,   0,   0,  22,  18,   0,   7,  19, + 31,   0,   3,  21,  35,   0,   2,  26,  21,   0,  22,  24,  23,   0,  12, + 26,  23,   0,   0,  29,  25,   0,   4,  24,  43,   0,   0,  33,  28,   0, +  2,  27,  48,   0,  29,  31,  29,   0,   8,  31,  52,   0,   4,  32,  57, +  0,  13,  39,  33,   0,   0,  41,  34,   0,  36,  38,  36,   0,   4,  36, + 64,   0,   8,  48,  40,   0,  42,  45,  43,   0,   5,  41,  73,   0,   2, + 52,  42,   0,  25,  53,  49,   0,   5,  46,  83,   0,  49,  52,  50,   0, +  0,  58,  47,   0,  54,  57,  55,   0,   6,  52,  92,   0,   4,  68,  56, +  0,  59,  62,  60,   0,  31,  67,  59,   0,   5,  57, 102,   0,  23,  70, + 61,   0,  63,  66,  64,   0,   0,  75,  62,   0,   3,  62, 110,   0,   7, + 63, 116,   0,  69,  71,  70,   0,   2,  67, 121,   0,  43,  79,  71,   0, +  6,  85,  70,   0,  75,  77,  76,   0,   7,  71, 126,   0,  38,  85,  77, +  0,  78,  81,  79,   0,   0,  91,  73,   0,   4,  74, 136,   0,  81,  84, + 82,   0,   9,  97,  77,   0,  10,  78, 141,   0,  85,  87,  86,   0,   1, + 80, 144,   0,  88,  91,  89,   0,   0, 103,  80,   0,   1, 106,  71,   0, +  0, 102,  85,   0,   5,  83, 148,   0,  41,  98,  86,   0,   3, 110,  67, +  0,  10,  85, 154,   0,  92,  95,  93,   0,   0, 112,  72,   0,  96,  99, + 97,   0,   6,  89, 162,   0,   0, 112,  87,   0,   0, 117,  76,   0,   2, +117,  82,   0,  28, 111,  94,   0, 100, 102, 101,   0,   0,  95, 169,   0, +  0, 122,  80,   0,   0, 121,  87,   0, 103, 106, 104,   0,   3,  96, 172, +  0,  10,  97, 179,   0,   0, 126,  86,   0,   0, 128,  81,   0,   0, 123, + 98,   0, 107, 110, 108,   0,   1, 127,  94,   0,  19, 124, 101,   0, 110, +113, 111,   0,  61, 120, 105,   0,   0, 132,  87,   0,   4, 103, 186,   0, +114, 117, 115,   0,   0, 136,  91,   0,   0, 135,  96,   0,   0, 132, 107, +  0,  12, 107, 192,   0,   0, 135, 103,   0,   1, 140,  87,   0, 118, 121, +119,   0,   2, 109, 199,   0,   5, 142,  89,   0,   0, 145,  94,   0, 122, +125, 123,   0,   0, 143, 105,   0,  12, 140, 112,   0,   0, 145, 101,   0, + 11, 113, 206,   0,   0, 144, 115,   0,   1, 150,  99,   0, 127, 130, 128, +  0,  53, 140, 120,   0,   2, 118, 212,   0,   6, 152, 101,   0, 131, 134, +132,   0,  41, 146, 123,   0,   0, 154, 111,   0,   0, 156, 106,   0,   0, +153, 117,   0,   0, 158, 101,   0, 135, 138, 136,   0,  78, 147, 130,   0, +  4, 163, 106,   0, 139, 142, 140,   0,   0, 167, 111,   0,   0, 164, 122, +  0,   0, 169, 106,   0,   0, 166, 117,   0, 144, 147, 145,   0,   0, 171, +115,   0,  21, 165, 136,   0,   6, 172, 124,   0,  44, 165, 137,   0,   7, +176, 113,   0,   9, 175, 120,   0,   2, 171, 137,   0, 151, 154, 152,   0, +  0, 178, 124,   0,   0, 180, 118,   0,  82, 164, 146,   0,  30, 178, 122, +  0, 155, 158, 156,   0,   3, 186, 117,   0,   5, 186, 124,   0,   4, 185, +131,   0,   0, 183, 145,   0,   0, 191, 123,   0,  29, 186, 131,   0,  40, +185, 132,   0, 161, 164, 162,   0,   0, 190, 130,   0,  51, 185, 134,   0, + 32, 182, 155,   0,  46, 183, 151,   0,   0, 195, 127,   0,   4, 199, 123, +  0,  80, 181, 158,   0,  63, 184, 154,   0,  10, 196, 136,   0,  47, 189, +147,   0, 169, 172, 170,   0,  21, 192, 153,   0,   0, 202, 128,   0,  26, +195, 143,   0,  66, 191, 143,   0,   0, 201, 134,   0,   0, 199, 141,   0, + 57, 194, 145,   0,  42, 196, 144,   0,   0, 199, 154,   0,   0, 206, 132, +  0,  98, 188, 166,   0,   4, 211, 129,   0,   4, 206, 147,   0, 177, 180, +178,   0,   6, 208, 142,   0,  84, 197, 153,   0,  28, 206, 146,   0,   0, +212, 139,   0,  37, 205, 152,   0,   0, 215, 134,   0,  61, 202, 161,   0, + 58, 206, 156,   0,  43, 205, 166,   0,   0, 211, 163,   0, 183, 187, 185, +  0,   0, 215, 155,   0,   0, 218, 145,   0,   0, 220, 140,   0,  25, 216, +151,   0,   5, 223, 135,   0,  25, 213, 162,   0,   0, 224, 137,   0,  43, +215, 154,   0,  67, 207, 175,   0,  46, 213, 162,   0, 188, 191, 189,   0, +  0, 226, 139,   0, 101, 209, 171,   0, 192, 195, 193,   0,  67, 216, 165, +  0,  19, 227, 146,   0,   0, 228, 150,   0,  24, 227, 155,   0,  25, 230, +149,   0, 109, 211, 187,   0, 196, 200, 198,   0, 120, 214, 179,   0,  44, +230, 157,   0,  45, 225, 180,   0,  34, 227, 181,   0, 201, 204, 202,   0, +  7, 235, 164,   0,  59, 232, 164,   0,  65, 229, 179,   0,  61, 232, 173, +  0,  71, 234, 167,   0, 205, 209, 207,   0,  53, 234, 176,   0,  81, 235, +174,   0, 210, 213, 211,   0,  92, 237, 178,   0,  93, 232, 195,   0, 213, +216, 214,   0, 100, 236, 186,   0, 120, 229, 203,   0, 101, 238, 180,   0, +108, 236, 186,   0,  28, 244, 188,   0,  34, 243, 199,   0, 121, 234, 202, +  0, 120, 239, 191,   0, 218, 221, 219,   0,  56, 247, 189,   0, 223, 226, +224,   0,  83, 249, 202,   0,  98, 250, 200,   0, 130, 246, 204,   0, 110, +250, 200,   0, 227, 230, 228,   0, 231, 234, 232,   0, 125, 252, 212,   0, +117, 253, 214,   0, 105, 255, 215,   0, 234, 237, 235,   0, 134, 253, 222, +  0, 137, 255, 234,   0, 240, 243, 241,   0, 244, 247, 245,   0, 255, 119, + 24, 119,   0,  13, 114, 107, 103,  98,  88,  87,  77,  73,  70,  63,  70, + 77, 107,   0,   8, 119,   0,   0, 255, 119,  20, 119,   0,   5, 114,  87, + 65,  60,  60,   0,  11,  63,   1,  60,   1,  88,   7, 119,   0,   0, 255, +119,  19, 119,   0,   3,  98,  63,  63,   0,   4,  65,   0,   9,  70,  63, + 60,  52,  50,  45,  45,  50,  65,   0,   3,  63,   1,  98,   6, 119,   0, +  0, 251, 119,   0,   6, 107,  98,  88,  77,  73,  63,   3,  60,   1,  77, +  1, 114,  11, 119,   0,  13, 114,  65,  52,  49,  41,  31,  22,  11,   4, +  1,   1,   4,   1,   0,   3,   4,   0,   5,   2,  49,  65,  63,  65,   0, +  6, 119,   0,   0, 204, 119,   4, 114,  41, 119,   1,  88,   1,  60,   5, + 63,   1,  65,   1,  65,   4,  63,   1,  88,  10, 119,   1,  52,   3,   4, +  1,   1,   3,   4,   1,   1,   4,   4,   1,   1,   4,   4,   0,   4,  45, + 65,  63, 103,   5, 119,   0,   0, 203, 119,   1,  77,   5,  63,   0,   4, + 77,  98, 114, 114,  16, 119,   5, 114,  14, 119,   0,  11,  70,  65,  65, + 63,  60,  60,  56,  52,  45,  45,  56,   0,   4,  63,   1,  88,   8, 119, +  1,  77,   4,   4,   0,   5,   1,   4,   1,   4,   1,   0,   3,   4,   1, +  1,   1,   1,   3,   4,   0,   5,   1,   1,  60,  63,  88,   0,   5, 119, +  0,   0, 202, 119,   4,  65,   8,  63,   1,  70,   1,  88,   6, 119,   0, +  4, 107,  87,  77,  70,   9,  63,   1,  77,  11, 119,   0,   4,  77,  56, + 24,   1,   3,   4,   0,   7,   1,   4,   1,   4,   1,   1,  52,   0,   3, + 63,   1, 107,   6, 119,   0,   7, 114,   1,   1,   4,   1,   4,   1,   0, +  3,   4,   0,  14,   1,   1,   4,   4,   1,   4,   4,   1,   4,   1,   4, + 31,  65,  87,   5, 119,   0,   0,  80, 119,   1, 114,   1,  88,   3,  77, +  1,  87,   1, 107,   4, 119,   0,   4, 103,  87,  83,  87,   3,  88,   0, +  4,  98,  98, 103, 114,  99, 119,   0,   6,  88,  45,  16,   9,  27,  49, + 10,  63,   0,   4, 114, 119, 119, 107,  15,  63,   1,  65,  10, 119,   1, + 16,   6,   4,   1,   1,   1,   1,   5,   4,   0,   4,  37,  65,  63,  73, +  6, 119,   1,  37,   4,   4,   1,   1,   5,   4,   0,   3,  19,  30,  33, +  0,   3,  43,   0,   7,   4,   4,   1,   4,  11,  70,  77,   0,   5, 119, +  0,   0,  15, 119,   0,   3, 107,  77,  65,   0,   8,  63,   1,  73,   1, + 98,  21, 119,   0,   3, 114,  88,  70,   0,   6,  63,   1,  77,   1,  98, + 16, 119,   1, 114,   1,  77,  25,  63,   0,   3,  65,  98,  98,   0,   7, + 77,   0,   8,  87,  88,  98, 114, 119, 119, 103,  70,  12,  63,   1,  77, +  6, 119,   0,  11, 114,  98,  77,  70,  63,  65,  77, 114, 119, 119,  98, +  0,   7,  77,   0,   8,  87,  88,  98, 114, 119, 119,  98,  70,  12,  63, +  1,  77,   6, 119,   0,   8, 107,  98,  77,  70,  63,  65,  83, 114,   7, +119,   0,   3, 114,   4,   1,   0,   3,   4,   0,   8,   1,   4,   2,   4, + 17,  41,  60,  65,   4,  63,   0,  16, 119, 107,  63,  63,  65,  65,  63, + 56,  45,  34,  27,  17,   4,   4,  22,  56,   3,  63,   1,  77,   8, 119, +  0,  20,  13,   4,   1,   4,   1,   1,   4,   4,   1,   4,   1,   4,   1, +  1,   4,   4,  50,  63,  63,  98,   5, 119,   1,   4,   1,   4,   3,   1, +  1,  40,   3,  43,   0,   4,  47,  12,  47,  43,   4,  47,   0,   7,   7, +  4,   1,   4,   4,  70,  77,   0,   5, 119,   0,   0,  12, 119,   0,   3, + 88,  65,  65,   0,  14,  63,   0,   3,  65,  77, 114,   0,  14, 119,   0, +  3,  98,  65,  65,   0,  12,  63,   1,  65,   1,  83,  11, 119,   1,  98, +  1,  65,   3,  63,   6,  65,   5,  63,  10,  65,  17,  63,   1,  65,   1, + 65,  15,  63,   5,  65,   9,  63,   1,  65,  13,  63,   1,  65,   1,  65, + 15,  63,   5,  65,   9,  63,   1,  77,   6, 119,   1,  22,   5,   4,   0, +  4,   1,   4,   4,   1,   3,   4,   0,  18,   1,  11,  65,  63,  63, 107, + 70,  17,   4,   4,   2,   4,   1,   1,   4,   4,   1,   4,   3,   1,   0, +  5,  13,  65,  63,  63, 107,   0,   6, 119,   0,   4,  45,   4,   1,   1, +  3,   4,   0,  14,   1,   1,   4,   1,   4,   1,   1,   4,   4,   1,   1, + 65,  63,  65,   5, 119,   1,   1,   3,   4,   1,  19,   5,  47,   1,  19, +  1,  43,   5,  47,   0,   7,  19,   4,   4,   1,   1,  70,  73,   0,   5, +119,   0,   0,  10, 119,   0,  14,  77,  65,  63,  63,  65,  70,  52,  37, + 31,  26,  26,  27,  34,  45,   3,  65,   5,  63,   1,  70,   1, 107,  10, +119,   0,  12,  88,  65,  63,  63,  65,  70,  60,  45,  41,  37,  41,  50, +  3,  65,   4,  63,   1,  65,   1,  83,   8, 119,   0,   8,  70,  63,  65, + 63,  37,  13,   4,   4,   3,   1,   0,  11,   4,  11,  37,  56,  34,   9, +  4,   2,   4,   5,   2,   0,   4,   4,   0,   6,   5,  17,  45,  70,  65, + 65,   6,  70,   4,  65,   3,  63,   0,  15,  70,  56,  37,  31,  27,  27, + 26,  22,  17,  16,  13,  16,  34,  60,  65,   0,   6,  63,   0,  11,  65, + 65,  70,  65,  60,  70,  65,  63,  63,  65,  65,   0,   6,  70,   4,  65, +  3,  63,   0,  15,  70,  56,  37,  31,  27,  27,  26,  22,  17,  13,  13, + 16,  34,  63,  65,   0,   5,  63,   3,  65,   0,   5,  70,  65,  60,  70, + 65,   0,   3,  63,   1,  87,   4, 119,   1,  88,   4,   4,   0,   4,   1, +  1,   4,   1,   4,   4,   0,   7,   1,   4,   1,   4,  65,  63,  52,   0, +  3,   1,   4,   4,   1,   1,   1,   1,   6,   4,   0,   5,   1,  13,  70, + 63,  88,   0,   6, 119,   0,  15,   7,   4,   4,   1,   4,   4,  19,  30, + 38,  43,  43,  47,  43,   2,   1,   0,   3,   4,   0,   4,  37,  65,  63, + 87,   4, 119,   0,   6,   1,   4,   4,   1,  12,  51,   3,  47,   0,   3, + 51,  25,  40,   0,   4,  47,   0,   8,  51,  30,   1,   1,   4,   1,  60, + 70,   5, 119,   0,   0,   8, 119,   0,   8, 103,  65,  65,  70,  41,  16, +  5,   2,   9,   1,   0,   5,   4,  11,  31,  60,  65,   0,   4,  63,   1, + 77,   7, 119,   0,   8, 114,  70,  63,  70,  45,  22,   9,   4,   7,   1, +  0,   5,   4,  11,  37,  65,  65,   0,   3,  63,   1,  65,   1, 114,   4, +119,   0,   5, 107,  65,  63,  22,   5,   0,  26,   1,   1,   4,   1,   9, +  3,   4,   0,  12,   2,   2,   4,   2,   4,   4,   5,   9,  22,  41,  17, +  4,  13,   1,   0,  17,   9,  52,  63,  49,  37,  24,  11,   9,   4,   4, +  1,   1,   2,   6,  27,  27,   9,   0,   3,   4,   0,  12,   2,   2,   4, +  2,   4,   4,   5,   9,  24,  41,  16,   2,  13,   1,   0,   9,  11,  52, + 60,  49,  37,  24,  11,   9,   4,   0,   4,   1,   0,   6,   5,  45,  65, + 63,  63, 114,   3, 119,   5,   4,   5,   1,   6,   4,   0,   3,   1,  22, + 63,   0,   3,   1,   0,   5,   4,   1,   1,   4,   1,   0,   3,   4,   1, +  1,   1,   1,   3,   4,   0,   5,   1,   1,  41,  63,  77,   0,   5, 119, +  0,   6, 114,   4,   4,   1,   4,  25,   3,  51,   1,  47,   5,  51,   5, +  4,   0,   4,  60,  63,  63, 114,   3, 119,   0,   5,   5,   1,   1,   4, +  7,   0,   5,  51,   1,  30,   1,  38,   5,  51,   0,   7,  33,   1,   4, +  4,   1,  52,  65,   0,   5, 119,   0,   0,   7, 119,   0,   4,  77,  65, + 50,  13,  18,   1,   0,   3,   9,  34,  70,   0,   3,  63,   1,  70,   1, +114,   4, 119,   0,   5,  98,  65,  60,  17,   4,   0,  15,   1,   0,   3, + 13,  56,  65,   0,   3,  63,   0,   6, 103, 119, 119, 107,  65,  26, 119, +  1,   0,   7,  31,  65,  63,  98, 119, 119,  56,   0,   3,   1,   0,  22, +  4,   5,  40,  40,  38,  33,  19,   7,   1,   1,   4,   1,   4,   1,   4, + 11,   4,   4,   1,   1,   4,   4,   6,   1,   1,   7,   1,   5,   3,   1, +  0,   4,   4,  16,  70,  77,   5, 119,   1,  41,   3,   4,   1,   1,   1, + 43,   9,  51,   0,   9,  19,   1,   4,   1,   1,  24,  65,  63,  77,   0, +  3, 119,   0,   5,  22,   4,   4,   1,   1,   0,   5,  51,   1,  38,   1, + 33,   5,  51,   1,  43,   1,   1,   3,   4,   1,  49,   1,  63,   5, 119, +  0,   0,   6, 119,   0,   3,  70,  60,  13,   0,  22,   1,   0,   3,   4, + 41,  65,   0,   3,  63,   0,   6, 114, 119, 119,  98,  65,  24,  20,   1, +  1,  22,   1,  65,   3,  63,   0,   4,  98, 107,  56,   9, 121,   1,   0, +  5,  49,  63,  77, 119, 103,   0,   4,   4,   0,   3,   1,  40,  43,   0, +  5,  47,   0,   4,  43,  38,   4,   4,   4,   1,   3,   4,   0,   7,   2, + 33,  40,  43,  43,  47,  51,   0,   3,  55,   0,   8,  58,  12,   1,   1, +  4,   4,  70,  70,   5, 119,   0,   8,   5,   1,   4,   1,   1,  55,  55, + 51,   3,  55,   1,  51,   3,  55,   0,  24,  58,   4,   4,   1,   4,   4, + 50,  63,  63, 103, 119, 119,  37,   4,   4,   1,   1,  51,  55,  51,  55, + 55,  40,  30,   3,  55,   3,  51,   0,   6,   1,   1,   4,   4,  41,  63, +  5, 119,   0,   0,   5, 119,   1,  70,   1,  34,  26,   1,   1,  22,   1, + 70,   3,  63,   0,   4, 107,  98,  50,   5,  22,   1,   0,   6,   6,  56, + 65,  63,  63,  45,  10,   1,   0,   4,   8,  21,  23,  21,   6,   1,   0, +  6,   4,  10,   8,   4,   4,   0,  97,   1,   0,   5,  22,  65,  73, 119, + 31,   0,   4,   4,   1,  19,   9,  47,   1,  38,   3,   1,   0,   6,   4, +  1,   4,   1,   1,  38,   3,  55,   1,  58,   3,  55,   0,  10,  58,  55, + 58,  33,   1,   4,   1,   4,  56,  63,   5, 119,   1,   2,   3,   4,   1, + 25,   1,  58,   3,  55,   0,  20,  58,  55,  58,  58,  55,  58,  55,  33, +  1,   1,   4,   1,  11,  70,  63,  70, 119, 119,  50,   4,   3,   1,   0, + 20,  51,  58,  55,  58,  55,  43,  12,  38,  43,  58,  55,  58,  61,   1, +  1,   4,   1,  37,  63, 107,   4, 119,   0,   0,   4, 119,   1,  73,   1, + 22,   9,   1,   0,   4,  29,  48,  59,  62,   3,  67,   0,   4,  59,  48, + 35,   8,   8,   1,   1,   5,   1,  60,   3,  63,   1,  41,   9,   1,   0, +  9,  21,  39,  48,  54,  59,  59,  48,  32,   4,   0,   8,   1,   0,   3, + 50,  65,  50,   0,   7,   1,   0,  11,  18,  54,  78,  93,  89,  80,  79, + 89,  93,  78,  42,   0,   3,   1,   0,   4, 112,  89,  85,  85,   5,  93, +  1, 104,   1,  21,   3,   1,   0,   7,   8,  23,  21,  21,  18,  15,  14, +  0,   3,   8,   6,   1,   0,   3,  59,  62,  62,   0,   5,  67,   0,   3, + 78,  78,   8,   0,   9,   1,   0,   4,   4,  21,  35,  42,   5,   1,   0, + 10,   8,  23,  21,  21,  18,  14,  14,   8,   8,   4,   5,   1,   0,   4, + 10,  59,  62,  62,   5,  67,   0,   3,  78,  78,   4,   0,   9,   1,   0, +  4,   8,  21,  35,  48,   5,   1,   0,   3,  65,  63,  77,   0,   3,   4, +  0,   7,   1,   4,  51,  47,  47,  51,  51,   0,   5,  47,   0,   5,  43, +  4,   4,   1,   1,   0,   4,   4,   1,  33,  10,  58,   0,   8,  47,   2, +  1,   4,   4,  45,  63, 114,   3, 119,   1,  70,   1,   4,   3,   1,   1, + 47,  10,  58,   0,   3,  55,  61,   7,   0,   4,   4,   0,  11,  37,  63, + 63,  88, 119,  65,   4,   1,   4,   1,  51,   0,   4,  58,   0,  15,  55, + 40,  33,  25,  19,  61,  58,  61,   4,   4,   1,   1,  31,  63,  98,   0, +  4, 119,   0,   0,   3, 119,   1,  77,   1,  11,   7,   1,   0,  17,  35, + 67,  93,  79,  75,  72,  72,  68,  72,  75,  72,  72,  80,  93,  78,  42, +  4,   0,   7,   1,   0,   3,  60,  65,  41,   0,   7,   1,   0,   5,  29, + 59,  93,  85,  79,   0,   3,  75,   0,   6,  72,  72,  80,  93,  67,  35, +  7,   1,   1,  27,   1,   4,   5,   1,   0,   5,  14,  67,  89,  75,  75, +  0,   5,  79,   0,   7,  75,  68,  80,  93,  29,   1, 104,   0,   5,  79, +  0,   5,  72,  68,  68,  79,  32,   0,   3,   1,   0,   5, 115,  89,  89, + 85,  85,   0,   3,  89,   0,   3,  93,  93,  67,   0,   4,   1,   0,  12, + 18,  89,  75,  75,  79,  75,  75,  72,  68,  68,  80,   8,   3,   1,   0, + 11,  35,  42,  54,  67,  78,  93,  93,  85,  80,  80,  35,   0,   4,   1, +  1, 102,   1,  89,   6,  85,   0,   3,  89,  93,  59,   0,   4,   1,   0, +  4,  39,  89,  79,  79,   3,  75,   0,  19,  72,  68,  68,  80,   4,   1, +  1,   4,  35,  42,  54,  67,  78,  93,  93,  89,  80,  80,  14,   0,   4, +  1,   0,   8,  52,  65,  11,   4,   1,   1,   4,  33,  10,  51,   1,  47, +  1,   1,   5,   4,   0,   3,   1,   4,  19,   0,   4,  61,   1,  58,   1, + 58,   3,  61,   0,   9,  58,  61,   1,   4,   4,   1,  37,  63,  98,   0, +  3, 119,   0,   7,  16,   1,   4,   1,   1,  55,  58,   0,   4,  61,   0, +  3,  58,  61,  58,   0,   4,  61,   0,  17,  47,   2,   4,   4,   1,   5, + 65,  63,  65, 119,  88,   4,   4,   1,   1,  47,  58,   0,   7,  61,   1, +  2,   3,  19,   0,   7,   4,   1,   4,   1,  26,  65,  88,   0,   4, 119, +  0,   0,   0,   4, 119, 119,  98,   9,   6,   1,   0,   5,  32,  91,  79, + 75,  79,   0,   8,  90,   0,   7,  89,  79,  72,  68,  72,  93,  48,   0, +  6,   1,   1,   2,   1,  31,   6,   1,   0,  18,  18,  78,  85,  72,  79, + 79,  89,  90, 100, 100,  90,  79,  79,  75,  72,  79,  78,  18,  11,   1, +  0,  28,  39, 101,  79,  90,  90, 100, 100, 105, 105, 108, 105,  97,  90, + 89,  79, 101,  67, 100, 109, 120, 109, 108, 100,  90,  79,  72,  80,  29, +  3,   1,   0,  11, 125,  90,  89,  79,  89,  89,  79,  75,  68,  68,  67, +  0,   4,   1,   1,   8,   1, 113,   4, 100,   0,   5,  90,  90,  75,  68, + 80,   0,   3,   1,   1,  35,   1,  89,   3,  79,   0,   7,  89,  90,  90, + 75,  68,  72,  62,   0,   4,   1,   0,  11, 112,  79,  79,  90,  89,  79, + 79,  72,  68,  68,  78,   0,   4,   1,   0,  16,  39, 120, 100,  97, 100, +100,  90,  90,  79,  72,  80,   4,   1,   1,  54,  89,   7,  79,   0,   3, + 75,  68,  42,   0,   4,   1,   0,   7,  45,  37,   1,   4,   4,   1,   7, +  0,   3,  51,   1,  55,   4,  51,   0,   4,  55,  51,  51,  55,   3,   1, +  5,   4,   1,   7,   1,  64,   5,  61,   0,  15,  64,  61,  64,  61,  64, +  4,   1,   4,   4,  31,  63,  88, 119, 119, 114,   0,   3,   4,   1,   1, +  1,  12,   4,  64,   4,  61,   1,  64,   4,  61,   0,  29,  64,  19,   1, +  1,   4,   4,  27,  65,  63,  77, 114,   1,   1,   4,   2,  47,  61,  61, + 64,  61,  61,  64,  61,  61,  58,  51,  55,  55,   7,   0,   3,   4,   0, +  3,  22,  65,  87,   0,   4, 119,   0,   0,   0,   3, 119, 119,  13,   0, +  6,   1,   0,   8,  67,  89,  79,  90,  97, 109, 129, 129,   3, 126,   3, +109,   0,   9, 105, 100,  90,  79,  75,  72,  80,  93,  18,   0,  11,   1, +  0,  20,  39, 101,  79,  79,  90,  90, 109, 116, 109, 108, 109, 109, 100, + 97,  97,  89,  75,  68,  93,  32,   9,   1,   0,  29,  39,  89,  89, 100, +109, 116, 109, 105, 109, 116, 126, 126, 116, 109, 108, 105, 109, 109, 120, +131, 136, 129, 116, 108, 109, 108,  84,  79,  23,   0,   3,   1,   0,  11, +168, 116, 109, 109, 108, 109, 116, 108,  84,  72,  67,   0,   5,   1,   0, + 10, 124, 120, 124, 126, 120, 116,  97,  79,  72,  80,   4,   1,   1, 124, +  4, 109,   0,   6, 126, 116,  90,  75,  68,  91,   4,   1,   1, 132,   4, +109,   0,   6, 100,  97,  89,  75,  72,  78,   4,   1,   0,   4,  35, 136, +126, 116,   3, 109,   0,   9, 108,  90,  79,  85,   4,   1,   1,  23, 124, +  0,   3, 108,   0,   7, 109, 109, 100, 100,  89,  72,  78,   0,   4,   1, +  0,   7,  34,   4,   1,   1,   4,   1,  47,   0,  12,  55,   0,   4,  19, +  4,   1,   1,   4,   4,   1,   1,   4,  64,   1,  66,   1,  61,   4,  64, +  0,  11,  66,   7,   1,   1,   4,  22,  65,  77, 119, 119,  98,   0,   4, +  4,   0,   4,  43,  64,  64,  61,   5,  64,   1,  66,   4,  64,   0,   3, + 61,  61,   4,   0,   4,   1,   0,   9,  60,  63,  63, 114,   5,   1,   4, +  4,  47,   0,   5,  64,   1,  61,   5,  64,   0,   8,  66,  12,   1,   1, +  4,  13,  70,  77,   4, 119,   0,   0,   1, 119,   1,  41,   5,   1,   0, + 13,  10, 104,  79,  90, 108, 116, 116, 109, 126, 147, 147, 141, 136,   0, +  5, 126,   0,   8, 109,  97,  90,  89,  75,  72,  93,  21,   9,   1,   0, + 22,  54,  89,  90, 105, 109, 105, 105, 116, 126, 116, 120, 126, 129, 126, +116, 116, 109, 100,  79,  72,  80,  32,   7,   1,   0,  14,  21, 113,  90, +100, 109, 124, 129, 129, 120, 120, 126, 129, 131, 129,   6, 126,   0,  10, +129, 133, 131, 126, 109, 109, 116,  97,  89,  21,   3,   1,   0,  11, 191, +133, 131, 129, 126, 109, 109, 129, 116,  79,  78,   0,   5,   1,   0,   3, +145, 129, 126,   0,   3, 129,   0,   4, 116,  97,  79,  80,   4,   1,   1, +151,   3, 129,   3, 126,   0,   4, 109,  90,  72,  91,   4,   1,   1, 152, +  1, 131,   3, 129,   0,   6, 126, 120, 100,  79,  72,  91,   4,   1,   0, + 12,  32, 150, 136, 136, 126, 109, 116, 116, 109,  90,  93,   4,   3,   1, +  0,   3, 170, 129, 129,   0,   3, 126,   0,   5, 120, 109,  90,  79, 104, +  0,   4,   1,   5,   4,   0,   7,   7,  51,  58,  58,  55,  58,  55,   0, +  7,  58,   0,   5,  33,   4,   4,   1,   1,   0,   3,   4,   1,   1,   1, + 58,   3,  66,   0,  25,  64,  66,  66,  64,  66,  64,  66,  12,   4,   4, +  1,  11,  70,  73, 119, 119,  37,   1,   4,   4,   1,  55,  66,  66,  64, +  0,   6,  66,   0,  20,  64,  64,  66,  64,  66,  66,  30,   1,   1,   4, +  4,  13,  65,  63,  65,   5,   1,   4,   1,  38,   5,  66,   1,  64,   4, + 66,   0,   9,  64,  66,  12,   4,   1,   4,   6,  70,  77,   0,   4, 119, +  0,   0,   1,  83,   5,   1,   0,  28,   8, 125,  90, 108, 120, 129, 131, +131, 126, 126, 136, 147, 147, 136, 133, 129, 129, 133, 133, 129, 116, 100, + 90,  90,  79,  75,  85,   8,   7,   1,   0,  24,  42, 101, 100, 109, 126, +133, 129, 126, 120, 126, 129, 129, 136, 147, 141, 133, 131, 129, 126, 108, + 90,  72,  85,  14,   6,   1,   0,  30, 115, 108, 116, 109, 109, 116, 129, +147, 141, 133, 133, 136, 141, 141, 136, 136, 133, 129, 133, 133, 131, 133, +136, 136, 129, 116, 109,  97,  89,  14,   3,   1,   0,  11, 217, 147, 147, +141, 136, 126, 109, 116, 109,  84,  78,   0,   5,   1,   0,  10, 154, 141, +129, 126, 126, 131, 136, 120,  90,  85,   4,   1,   0,   5, 190, 147, 147, +136, 131,   0,   3, 129,   0,   3, 109,  79,  80,   0,   4,   1,   0,  11, +168, 158, 147, 136, 136, 133, 131, 120,  90,  75,  91,   0,   4,   1,   0, + 12,  23, 170, 147, 147, 133, 126, 116, 109, 109, 105, 101,   4,   3,   1, +  0,  12, 160, 155, 147, 136, 131, 129, 129, 120, 105,  89, 104,   4,   4, +  1,   0,  12,   4,   4,   1,   4,  33,   7,  19,  47,  58,  61,  58,  61, +  5,  58,   0,  11,  61,  51,   4,   1,   4,   4,   1,   4,   4,   1,  47, +  0,  10,  66,   1,  19,   3,   1,   0,  10,   2,  70,  70, 119, 119,   4, +  1,   4,   1,   2,  16,  66,   0,  14,  74,   7,   1,   4,   4,   1,  50, + 63,  63,   5,   4,   1,   1,  33,  12,  66,   1,  25,   1,   1,   3,   4, +  1,  70,   1,  73,   4, 119,   0,   0,   1,  37,   4,   1,   0,  17,   8, +132, 109, 116, 126, 129, 133, 136, 136, 131, 129, 136, 136, 147, 147, 136, +133,   0,   4, 129,   0,   8, 126, 116, 108, 100,  90,  79,  72, 102,   6, +  1,   0,  16,  14, 123, 105, 120, 126, 129, 133, 133, 129, 131, 136, 141, +136, 136, 147, 147,   3, 136,   0,   6, 133, 126, 109,  79,  68, 112,   5, +  1,   0,  10,  32, 113, 116, 126, 126, 120, 116, 120, 131, 141,   3, 136, +  0,   7, 147, 147, 155, 147, 147, 136, 136,   0,   4, 133,   0,   7, 136, +131, 126, 116, 100,  89,   8,   0,   3,   1,   0,  11, 217, 155, 147, 147, +141, 131, 116, 116, 105,  79,  78,   0,   5,   1,   0,  10, 154, 147, 131, +126, 116, 126, 131, 126,  90,  80,   4,   1,   0,  11, 122, 171, 147, 141, +136, 133, 129, 129, 116,  90,  80,   0,   4,   1,   0,   3, 166, 158, 147, +  0,   4, 136,   0,   4, 129, 105,  79,  91,   4,   1,   0,  11,  18, 170, +136, 133, 131, 129, 120, 109, 100,  90, 104,   0,   4,   1,   0,  12, 122, +171, 158, 147, 136, 133, 129, 126, 109,  90,  85,   8,   4,   1,   0,   4, +  4,   4,   1,  33,   3,  61,   0,  12,  25,   1,  25,  51,  61,  64,  61, + 58,  61,  61,  64,  55,   4,   1,   1,   4,   3,   1,   0,  35,  40,  74, + 66,  74,  74,  66,  74,  74,  66,  74,  74,  33,   1,   4,   4,   1,  60, + 65, 119, 103,   4,   1,   1,   4,  33,  74,  66,  74,  74,  66,  74,  74, + 66,  74,  66,   0,   4,  74,   0,  16,  66,  66,  74,  43,   1,   4,   1, +  4,   4,  65,  63,   4,   1,   4,   1,  25,   4,  74,   0,   5,  66,  66, + 74,  74,  66,   0,   3,  74,   1,  33,   3,   1,   0,   3,   4,  65,  70, +  0,   4, 119,   0,   0,   1,  17,   4,   1,   0,   5, 168, 126, 129, 131, +133,   0,   3, 136,   0,   5, 141, 141, 136, 147, 158,   0,   3, 171,   0, + 14, 155, 136, 131, 129, 129, 126, 129, 126, 108,  90,  89,  75,  80,  32, +  5,   1,   0,   6, 104, 109, 126, 129, 129, 133,   3, 136,   0,   3, 131, +140, 147,   0,   3, 155,   0,  11, 158, 147, 147, 141, 136, 129, 124, 100, + 79,  72,  39,   0,   4,   1,   1,  91,   1, 109,   3, 126,   0,  14, 129, +126, 116, 120, 129, 133, 136, 147, 158, 171, 183, 171, 171, 155,   3, 136, +  0,   9, 133, 136, 136, 133, 126, 116, 100, 101,   4,   0,   3,   1,   0, + 11, 217, 155, 147, 136, 136, 133, 126, 120, 108,  79,  78,   0,   5,   1, +  0,   5, 154, 147, 136, 133, 126,   0,   3, 109,   1,  90,   1,  80,   4, +  1,   0,  12,  32, 171, 158, 147, 136, 133, 131, 131, 126, 100,  79,  14, +  3,   1,   0,  11, 170, 155, 147, 136, 136, 133, 131, 126, 109,  79, 102, +  0,   4,   1,   0,  11,  14, 165, 136, 133, 129, 126, 126, 120, 100,  79, + 93,   0,   4,   1,   0,  12,  71, 171, 171, 155, 141, 131, 131, 126, 116, + 90,  79,   8,   4,   1,   0,   4,   4,   1,  12,  66,   3,  64,   0,  31, + 61,  64,  51,  12,   1,  38,  64,  64,  61,  64,  64,  61,   1,   1,   4, +  4,   1,   4,   1,   1,  33,  76,  76,  66,  64,  66,  55,  40,  30,  12, +  1,   0,   4,   4,   0,  10,   1,  50,  63, 119,  63,   1,   1,   4,   4, + 64,   6,  74,   3,  76,   4,  74,   0,   6,  76,  66,  74,  74,  76,  12, +  4,   1,   1,  34,   1,  63,   4,   4,   0,   8,  19,  76,  74,  76,  76, + 74,  76,  76,   3,  74,   0,   9,  76,  66,  43,   1,   4,   1,   4,  56, + 65,   0,   4, 119,   0,   0,   1,   9,   3,   1,   0,   6,  14, 186, 147, +155, 147, 147,   4, 141,   0,  12, 147, 158, 183, 183, 205, 214, 205, 205, +171, 147, 136, 136,   3, 131,   0,   6, 126, 100,  97,  89,  75, 104,   4, +  1,   0,  14,  21, 134, 129, 136, 131, 131, 136, 136, 141, 147, 147, 141, +147, 158,   4, 183,   0,  10, 158, 155, 141, 136, 129, 124, 100,  79, 112, +  4,   3,   1,   0,  21, 168, 129, 131, 131, 129, 131, 131, 124, 116, 129, +136, 136, 155, 188, 205, 214, 214, 183, 171, 158, 147,   0,   4, 136,   0, +  5, 141, 136, 124,  97,  89,   0,   4,   1,   0,   4, 216, 155, 147, 136, +  3, 131,   0,   4, 129, 116,  90,  78,   5,   1,   0,  10, 166, 147, 141, +141, 131, 116, 109, 109,  89,  80,   5,   1,   0,  11, 188, 171, 155, 141, +136, 136, 131, 129, 109,  89,  35,   0,   3,   1,   0,  11, 170, 155, 147, +141, 136, 131, 129, 124, 109,  89, 102,   0,   4,   1,   0,  11,   8, 186, +147, 136, 136, 131, 129, 129, 108,  79,  93,   0,   4,   1,   0,  12,  18, +207, 171, 155, 141, 141, 136, 129, 120, 100,  79,  15,   4,   1,   0,   3, +  4,   1,  51,   0,   3,  66,   0,  16,  61,  64,  64,  66,  66,  74,  12, + 66,  64,  64,  66,  64,  66,   2,   4,   4,   3,   1,   1,   4,   1,   1, +  4,   4,   0,   9,   7,  25,  40,  55,  74,  82,  82,  66,   1,   0,   3, +  4,   0,   4,  37,  63, 107,  13,   4,   1,   0,   4,  74,  76,  76,  74, +  6,  76,   1,  74,   8,  76,   1,  61,   1,   1,   3,   4,   0,   9,   1, + 65,   5,   4,   4,   1,   7,  82,  74,   0,  10,  76,   0,   7,  51,   1, +  1,   4,   4,  49,  65,   0,   4, 119,   0,   0,   1,  27,   4,   1,   0, +  5,  71, 171, 183, 171, 158,   0,   5, 155,   0,   3, 189, 201,  44,   0, +  3,   1,   0,  15,   7, 205, 158, 155, 141, 141, 136, 140, 131, 120, 109, +100,  79,  80,   4,   0,   3,   1,   0,   5, 102, 129, 136, 141, 141,   0, +  4, 136,   0,  23, 141, 141, 155, 175, 229, 163, 212, 232, 214, 205, 171, +155, 154, 141, 136, 126, 100,  89,  23,   1,   1,  23, 165,   0,   3, 141, +  0,   9, 136, 140, 136, 131, 124, 129, 141, 176,  62,   0,   3,   1,   0, +  8,  57, 237, 205, 171, 158, 141, 136, 136,   3, 131,   0,   3, 126, 100, + 93,   0,   4,   1,   0,  11, 216, 158, 147, 141, 141, 136, 131, 131, 126, +100,  78,   0,   5,   1,   0,  10, 175, 155, 141, 141, 136, 126, 116, 116, +100,  80,   5,   1,   0,  11, 188, 171, 158, 155, 141, 136, 131, 124, 100, + 79,  54,   0,   3,   1,   0,  11, 170, 147, 155, 141, 141, 136, 131, 129, +116,  89, 104,   0,   4,   1,   0,  11,   8, 186, 155, 154, 141, 136, 136, +131, 116,  89, 104,   0,   5,   1,   1, 207,   1, 155,   4, 141,   0,   5, +136, 124, 100,  79,  32,   0,   5,   1,   1,  25,   7,  66,   0,   5,  64, + 66,  74,  12,  74,   0,   4,  66,   0,  11,  74,  25,   1,   4,   1,   4, +  1,   4,   1,   7,  86,   0,   3,  82,   4,  76,   0,  16,  82,  76,  86, +  4,   4,   1,   4,  27,  63,  77,   1,   1,   4,   4,  19,  82,   4,  76, +  1,  82,   8,  76,   1,  82,   3,  76,   0,  22,  82,  82,  33,   1,   4, +  1,   1,  17,  17,   1,   4,   4,   1,  86,  82,  76,  76,  82,  82,  76, + 76,  82,   3,  76,   0,   7,  66,   1,   4,   1,   4,  41,  63,   0,   4, +119,   0,   0,   1,  50,   5,   1,   0,  10, 163, 214, 214, 205, 171, 174, +155, 198,  94,   0,   6,   1,   1,  32,   1, 174,   3, 154,   0,   9, 141, +141, 140, 131, 116, 116,  89,  80,  18,   0,   3,   1,   0,   6, 132, 131, +140, 141, 154, 154,   5, 140,   1, 217,   1,  14,   4,   1,   0,  15, 128, +214, 214, 183, 171, 166, 155, 140, 129, 100, 104,   1,   1,  48, 157,   0, +  3, 154,   1, 141,   3, 140,   0,   4, 129, 126, 151,  29,   5,   1,   0, +  6,   7, 237, 183, 174, 158, 154,   3, 140,   0,   4, 131, 124, 100,  93, +  4,   1,   0,  11, 216, 166, 155, 154, 141, 140, 140, 136, 124, 100,  78, +  0,   5,   1,   0,  10, 189, 174, 155, 154, 141, 136, 120, 116,  97,  85, +  5,   1,   0,  11, 188, 174, 155, 155, 154, 140, 136, 129, 109,  89,  69, +  0,   3,   1,   0,  11, 170, 155, 155, 154, 141, 141, 140, 131, 124,  97, +104,   0,   4,   1,   0,  11,   8, 186, 155, 154, 154, 141, 140, 136, 126, + 90, 104,   0,   5,   1,   0,   3, 166, 155, 141,   0,   3, 140,   0,   5, +141, 136, 116,  79,  48,   0,   4,   1,   1,   4,   4,  74,   1,  66,   1, + 74,   3,  66,   0,  10,  74,  74,   6,  76,  74,  66,  74,  66,  66,  40, +  3,   1,   0,  11,   4,   1,   4,   4,   1,  82,  82,  86,  86,  82,  86, +  0,   4,  82,   1,  86,   1,   7,   3,   4,   0,   3,  22,  65,  52,   0, +  4,   1,   0,   4,  58,  82,  86,  76,   5,  82,   0,   6,  86,  82,  86, + 82,  86,  76,   5,  82,   0,   9,  86,  74,   1,   1,   4,   1,   1,  24, +  4,   0,   3,   1,   0,   3,  76,  82,  86,   0,   4,  82,   0,  13,  86, + 82,  86,  82,  82,  86,   1,   4,   1,   4,  37,  63, 114,   0,   3, 119, +  0,   0,   1, 119,   6,   1,   0,   7, 232, 214, 214, 205, 188, 142,   4, +  0,   8,   1,   0,  21,  10, 170, 154, 145, 145, 141, 145, 145, 136, 124, +120, 100,  79,  39,   1,   1,  14, 151, 136, 145, 145,   0,   4, 154,   0, +  4, 145, 145, 191,   8,   6,   1,   0,  24,  53, 214, 214, 205, 183, 174, +155, 150, 180, 112,   1,   1,  81, 154, 154, 144, 145, 145, 136, 145, 140, +124, 116,  91,   7,   1,   1,  28,   1, 205,   3, 174,   0,   7, 154, 154, +144, 145, 131, 100,  93,   0,   4,   1,   0,  11, 216, 174, 154, 154, 144, +145, 144, 145, 124, 100,  94,   0,   5,   1,   0,  10, 189, 154, 151, 145, +144, 136, 124, 116,  90,  85,   5,   1,   0,  11, 160, 174, 166, 154, 155, +154, 151, 140, 124, 100,  91,   0,   3,   1,   1, 190,   1, 166,   3, 154, +  0,   6, 144, 136, 136, 124, 100, 104,   4,   1,   0,  11,   8, 202, 154, +154, 145, 145, 136, 131, 129,  97, 104,   0,   5,   1,   0,   4, 139, 166, +144, 136,   3, 145,   0,   4, 144, 131,  90,  59,   4,   1,   1,  33,   1, + 76,   4,  74,   1,  66,   3,  74,   0,   4,  76,  82,   4,  76,   5,  74, +  1,  64,   1,   1,   6,   4,   0,   5,   1,  66,  86,  86,  82,   0,   3, + 86,   1,  82,   3,  86,   0,   7,  12,   4,   4,   1,  16,  70,  27,   0, +  3,   4,   0,   4,   1,  19,  19,   7,   4,  86,   1,  82,   5,  86,   1, + 82,   8,  86,   1,  47,   4,   1,   1,   4,   1,   4,   3,   1,   0,   4, + 74,  86,  86,  82,   8,  86,   0,   8,  95,   4,   4,   1,   1,  31,  63, +103,   3, 119,   0,   0,   1, 119,   1,  87,   5,   1,   0,   5,   4, 232, +214, 229,  57,   0,  10,   1,   0,  20, 142, 150, 145, 145, 144, 145, 144, +145, 136, 131, 131, 116,  89,  42,   1,   1,  59, 144, 131, 145,   3, 150, +  0,   5, 151, 154, 145, 134,  29,   0,   8,   1,   0,   8, 128, 214, 205, +237, 229, 122,  21,   8,   3,   1,   0,  12,  94, 175, 151, 145, 144, 145, +144, 136, 136, 124, 113,  32,   7,   1,   0,  12,   4, 229, 174, 175, 154, +175, 175, 150, 145, 136, 100,  85,   4,   1,   0,  11, 217, 175, 154, 145, +145, 150, 145, 144, 136, 100,  91,   0,   5,   1,   0,  10, 170, 151, 150, +145, 145, 141, 131, 124, 100,  85,   5,   1,   0,  11, 102, 189, 175, 154, +151, 151, 154, 145, 129, 100, 102,   0,   3,   1,   0,  11, 168, 175, 151, +150, 150, 144, 131, 136, 131, 100, 104,   0,   4,   1,   0,  11,   8, 202, +175, 150, 144, 144, 141, 131, 124, 100, 104,   0,   5,   1,   0,  11, 122, +175, 145, 131, 145, 150, 145, 144, 136, 100,  69,   0,   4,   1,   1,  38, +  7,  76,   0,   7,  74,  76,  76,  82,  61,   1,  55,   0,   3,  82,   0, +  6,  76,  74,   1,   4,   4,   1,   3,   4,   1,   1,   1,  51,   7,  86, +  0,  21,  92,  86,  92,  25,   4,   4,   1,   4,  70,   1,   1,   4,   4, +  1,  86,  95,   7,  92,  86,  86,  92,   0,   5,  86,   1,  40,   9,  86, +  0,   3,  92,   4,   4,   0,   3,   1,   0,   5,   4,   1,   4,   1,  66, +  0,   6,  86,   1,  92,   4,  86,   1,  95,   1,   7,   3,   1,   0,   3, + 24,  63,  98,   0,   3, 119,   0,   0,   0,   3, 119, 119,  56,   0,   5, +  1,   0,   3,  36, 249,  36,   0,  10,   1,   0,   6,  69, 151, 150, 150, +145, 145,   3, 150,   0,  12, 145, 136, 136, 124, 100,  48,   1,   1, 115, +170, 144, 144,   4, 150,   0,   3, 144, 129, 137,   0,   9,   1,   0,   4, +  7, 146,  46,  14,   7,   1,   0,   3,  94, 175, 170,   0,   5, 150,   0, +  4, 144, 124, 100,  21,   8,   1,   0,  11, 242, 188, 175, 170, 150, 150, +145, 144, 131, 100,  91,   0,   4,   1,   0,  11, 217, 175, 170, 150, 145, +150, 150, 145, 141, 116,  93,   0,   5,   1,   0,  10, 186, 170, 170, 157, +150, 145, 136, 124, 100,  93,   5,   1,   0,  11,  54, 186, 175, 170, 170, +150, 150, 136, 124, 100, 115,   0,   3,   1,   0,  11, 190, 157, 157, 150, +150, 145, 136, 136, 124, 100, 104,   0,   4,   1,   0,   4,   8, 198, 175, +157,   3, 150,   0,   5, 144, 136, 100, 104,   4,   0,   4,   1,   0,  11, + 81, 189, 170, 141, 136, 150, 150, 144, 124, 101,  67,   0,   4,   1,   0, +  7,  40,  82,  76,  76,  82,  82,  76,   0,   3,  82,   0,  13,  76,  82, + 76,  76,  19,   6,   7,   7,  33,  76,   1,   4,   1,   0,   4,   4,   1, +  1,   1,  40,   3,  92,   1,  95,   1,  38,   5,  12,   0,  14,   4,   1, +  1,   4,   1,  52,   4,   1,   1,   4,  40,  92,  95,   7,   4,  92,   1, + 86,   3,  92,   0,   3,  47,   4,  95,   0,   8,  92,   0,   3,  95,  64, +  1,   0,   4,   4,   0,   4,   1,   4,   1,  64,   9,  92,   0,  10,  86, + 92,  92,  12,   1,   4,   1,  17,  65,  88,   3, 119,   0,   0,   3, 119, +  1,  34,   5,   1,   1,   7,  10,   1,   0,   3,  91, 134, 145,   0,   5, +157,   0,  13, 165, 170, 165, 157, 144, 124, 113,  29,   1,   1, 137, 170, +170,   0,   4, 157,   0,   4, 150, 136, 113, 102,  20,   1,   0,   4,  94, +175, 170, 170,   5, 157,   0,   3, 131, 101,  21,   0,   8,   1,   0,  11, +216, 189, 170, 170, 157, 144, 136, 134, 134, 113,  91,   0,   4,   1,   0, + 11, 217, 175, 165, 145, 144, 145, 145, 136, 124, 113,  93,   0,   5,   1, +  1, 186,   4, 170,   0,   5, 165, 150, 136, 113,  93,   0,   5,   1,   1, + 35,   1, 202,   3, 170,   0,   6, 157, 145, 134, 113, 101, 115,   3,   1, +  0,  11, 190, 175, 170, 170, 157, 144, 131, 136, 134, 100, 104,   0,   4, +  1,   0,   4,   8, 198, 170, 170,   4, 157,   0,   4, 145, 113, 104,   4, +  4,   1,   0,  11,  54, 202, 175, 157, 145, 150, 157, 145, 134, 101,  67, +  0,   4,   1,   0,  13,  38,  82,  82,  86,  82,  86,  82,  86,  86,  82, + 82,  86,  82,   0,   5,  86,   1,  33,   1,  19,   3,   4,   1,   1,   1, +  1,   3,   4,   1,   7,   3,  19,   1,   5,   1,  51,   5,  82,   1,  47, +  1,   1,   3,   4,   1,  27,   1,   1,   3,   4,   0,   8,  86,  95,  99, +  7,  95,  92,  95,  95,   3,  92,   0,   8,  95,  12,   4,  19,  92,  95, + 92,  95,   4,  92,   0,  11,  95,  95,  19,   4,   4,   1,   4,   1,   4, +  1,  61,   0,   5,  95,   0,   8,  92,  95,  92,  95,  95,  92,  95,  19, +  3,   4,   0,   3,  13,  65,  77,   0,   3, 119,   0,   0,   4, 119,   1, + 11,  13,   1,   0,   4,  39, 115, 124, 144,   4, 165,   0,   3, 157, 151, +150,   0,   3, 165,   0,   8, 157, 134, 123,   4,   1,   1, 159, 186,   4, +165,   0,   5, 157, 157, 141, 113,  62,   0,  20,   1,   0,  12,  94, 189, +189, 186, 165, 157, 144, 144, 157, 136, 101,  23,   8,   1,   0,  11, 217, +189, 186, 165, 165, 157, 144, 136, 134, 124,  91,   0,   4,   1,   0,   4, +216, 189, 186, 150,   3, 144,   0,   4, 124, 113, 101,  93,   5,   1,   0, +  4, 202, 184, 165, 157,   3, 165,   0,   3, 144, 113, 104,   0,   5,   1, +  0,   3,  18, 202, 186,   0,   3, 165,   0,   5, 157, 144, 124, 100, 115, +  0,   3,   1,   0,  11, 201, 189, 188, 189, 186, 157, 134, 134, 124, 101, +104,   0,   4,   1,   0,   6,  14, 216, 186, 186, 165, 157,   3, 144,   0, +  3, 124, 104,   4,   0,   4,   1,   0,  11,  42, 198, 184, 165, 165, 157, +157, 150, 136, 100,  69,   0,   4,   1,   1,  40,   3,  86,   1,  82,   8, + 86,   1,  82,   5,  86,   0,   4,  51,   1,   4,   1,   3,   4,   0,   7, +  1,   1,  19,  82,  76,  76,  92,   0,   6,  95,   0,   3,  76,   1,   1, +  0,   4,   4,   0,   8,   1,   4,   4,  95,  95,  99,   7,  99,   6,  95, +  1,  92,   3,   1,   1,  86,   9,  95,   1,  86,   1,   1,   6,   4,   6, + 12,   1,  76,   4,  95,   0,   9,  99,  95,  25,   4,   4,   1,  11,  70, + 73,   0,   3, 119,   0,   0,   4, 119,   1, 114,  11,   1,   0,   6,  14, + 91, 111, 123, 151, 165,   4, 184,   0,   9, 165, 157, 144, 151, 165, 165, +157, 138, 152,   0,   3,   1,   0,   3, 160, 186, 184,   0,   3, 173,   0, +  5, 165, 173, 151, 113,  59,   0,  20,   1,   0,  12,  81, 207, 189, 186, +184, 165, 151, 141, 136, 124, 101,  29,   8,   1,   1, 236,   1, 186,   3, +184,   0,   6, 165, 157, 157, 144, 123,  91,   4,   1,   0,  11, 217, 207, +186, 165, 144, 144, 151, 144, 124, 101,  93,   0,   5,   1,   0,  11, 198, +186, 173, 157, 151, 157, 157, 151, 124, 101,   4,   0,   4,   1,   0,  11, + 14, 198, 186, 184, 173, 184, 165, 157, 134, 113, 115,   0,   3,   1,   1, +190,   1, 207,   3, 186,   0,   6, 184, 144, 124, 123, 113, 104,   4,   1, +  0,  12,  29, 216, 186, 186, 184, 173, 157, 138, 134, 113, 104,   4,   4, +  1,   0,  11,  48, 198, 184, 165, 165, 172, 165, 157, 151, 113,  69,   0, +  4,   1,   1,  40,   3,  86,   1,  92,  11,  86,   0,   5,  92,  86,  86, + 92,  47,   0,   3,   1,   4,   4,   1,   0,   1, 110,   4,  99,   1,  95, +  4,  99,   0,   3, 106,   1,   1,   0,   6,   4,   0,   6,  25,  99,  99, +106,   7, 106,   6,  99,   0,   5,  82,   1,   1,   4,  12,   0,  10,  99, +  0,  14,  38,   1,   1,   4,   1,   4,   4,  40,  92,  92,  86,  95,  40, + 76,   3,  99,   0,   4,  95,  99,  99,  30,   4,   4,   1,  70,   1,  73, +  3, 119,   0,   0,   5, 119,   1,  98,   9,   1,   0,   9,  59, 115, 101, +113, 144, 173, 180, 184, 184,   0,   4, 180,   1, 173,   3, 157,   0,   3, +151, 134, 115,   0,   3,   1,   0,   3, 139, 207, 202,   0,   3, 180,   0, +  5, 172, 172, 165, 123,  91,   0,  20,   1,   0,  12,  62, 207, 202, 202, +200, 180, 173, 151, 138, 123, 101,  35,   8,   1,   0,  11, 236, 200, 184, +180, 200, 184, 173, 144, 138, 113,  78,   0,   4,   1,   0,  11, 236, 207, +207, 200, 173, 157, 173, 157, 134, 101, 104,   0,   4,   1,   0,  12,  21, +180, 200, 180, 173, 157, 157, 151, 144, 124, 101,  32,   4,   1,   1,  35, +  1, 193,   5, 180,   0,   4, 173, 138, 113,  91,   3,   1,   0,  11, 190, +184, 180, 180, 202, 202, 173, 151, 134, 113, 112,   0,   4,   1,   0,   3, + 54, 193, 200,   0,   3, 184,   0,   6, 172, 151, 138, 113, 101,   8,   4, +  1,   0,  11,  54, 198, 200, 180, 172, 172, 173, 165, 157, 123,  54,   0, +  4,   1,   1,  47,   8,  92,   1,  86,   6,  92,   0,   5,  86,  86,  92, + 92,  82,   0,   3,   4,   1,   1,   1,   4,   3,   1,   3,  99,   1, 106, +  6,  99,   0,  15, 110,   7,   1,   4,   4,   1,   1,   4,   1,  74,  99, + 99, 110,   7, 106,   0,   3,  99,   0,   9, 106,  99, 106,  43,   1,   4, +  1,   4,  76,   0,   6,  99,   1, 106,   3,  99,   4,   1,   0,   9,   4, +  1,  38, 106,  99, 106,  99,  43,  74,   0,   3,  99,   0,  10, 106,  99, + 99,  38,   1,   4,   1,   4,  70,  70,   3, 119,   0,   0,   5, 119,   1, +114,   7,   1,   0,  11,  29, 104, 113, 124, 124, 134, 144, 157, 182, 182, +180,   0,   5, 182,   0,   6, 172, 172, 165, 144, 134,   8,   3,   1,   0, +  4, 118, 231, 207, 198,   4, 182,   0,   3, 161, 134, 115,   0,   9,   1, +  0,   3,   4,  48,  29,   0,   8,   1,   0,   4,  48, 221, 202, 200,   3, +182,   0,   5, 165, 144, 134, 100,  48,   0,   8,   1,   0,  11, 236, 200, +200, 196, 196, 198, 182, 144, 136, 113,  78,   0,   4,   1,   1, 236,   3, +200,   0,   7, 198, 182, 172, 165, 136, 113, 104,   0,   4,   1,   1,  69, +  4, 182,   0,   7, 172, 172, 161, 144, 124, 100,  69,   0,   4,   1,   1, + 78,   1, 193,   6, 182,   0,   3, 144, 113,  69,   0,   3,   1,   0,  11, +202, 200, 182, 182, 196, 200, 196, 182, 150, 124, 115,   0,   4,   1,   0, +  3, 102, 182, 198,   0,   4, 182,   0,   5, 165, 145, 134, 100,  48,   0, +  4,   1,   0,   4,  91, 196, 200, 180,   3, 182,   0,   4, 172, 157, 124, + 39,   4,   1,   0,   5,  58,  95,  92,  95,  92,   0,   4,  95,   0,   7, + 92,  92,  95,  95,  92,  95,  92,   0,   3,  95,   0,  11,  92,  92,   1, +  4,   1,   4,   1,   4,   4,   1,  74,   0,   7, 106,   0,   4,  99, 106, +110,  19,   5,   4,   0,   8,   1,   4, 106,  99, 106, 110,   7, 110,   6, +106,   1,   4,   1,   4,   3,   1,   1,   7,  10, 106,   0,   8,  58,   4, +  4,   1,   1,   4,  30, 110,   3, 106,   1,  43,   1,  66,   6, 106,   0, +  7,  51,   1,   1,   4,   4,  60,  70,   0,   3, 119,   0,   0,   5, 119, +  1,  34,   6,   1,   0,  13,  54, 125, 124, 136, 150, 145, 136, 144, 150, +177, 194, 196, 196,   0,   5, 185,   0,   4, 177, 172, 150, 115,   4,   1, +  0,   4,  46, 229, 207, 200,   3, 196,   0,   5, 185, 172, 144, 113,  18, +  0,   8,   1,   0,   8,  59, 101, 101, 111,  91,  48,  29,   4,   3,   1, +  0,  12,  35, 225, 200, 196, 194, 185, 185, 182, 157, 136, 113,  59,   8, +  1,   1, 236,   1, 200,   5, 196,   0,   4, 172, 144, 120,  78,   4,   1, +  1, 236,   4, 196,   0,   7, 194, 182, 172, 145, 113, 101,  18,   0,   3, +  1,   0,   3, 168, 172, 177,   0,   3, 185,   0,   6, 172, 172, 161, 144, +124, 115,   4,   1,   0,  11, 152, 177, 194, 194, 196, 196, 194, 194, 161, +124,  42,   0,   3,   1,   0,  12, 202, 196, 185, 172, 185, 196, 196, 185, +161, 136, 113,   4,   3,   1,   0,   4, 142, 177, 196, 196,   3, 185,   0, +  5, 177, 161, 144, 124, 125,   0,   4,   1,   0,  11, 151, 185, 196, 196, +194, 185, 185, 177, 157, 124,  21,   0,   4,   1,   1,  74,   4,  95,   1, + 99,   3,  95,   0,   3,  92,  61,  99,   0,   5,  95,   1,  99,   3,  95, +  3,   4,   0,  11,   1,   4,   4,   1,   1,  51, 106, 106, 110, 106, 106, +  0,   3, 110,   0,   6, 106, 110,  30,   1,   4,   1,   3,   4,   1,   7, +  3, 106,   0,  16, 117,   7, 110, 106, 110, 110, 106, 106,  95,   1,   4, +  4,   1,   4,   1,  64,   3, 110,   3, 106,   0,  16, 110, 106, 110, 110, +  7,   4,   1,   4,   1,  19, 117, 110, 106, 110,  47,  74,   3, 106,   3, +110,   1,  64,   3,   1,   0,   3,   4,  50,  65,   0,   3, 119,   0,   0, +  4, 119,   1,  77,   6,   1,   0,  11,  91, 124, 131, 161, 177, 185, 177, +161, 153, 161, 185,   0,   9, 194,   1, 177,   1, 168,   6,   1,   0,  12, +221, 221, 200, 196, 194, 194, 185, 161, 145, 124, 115,   4,   6,   1,   0, +  4,  29, 111, 100, 113,   4, 100,   0,  16, 125,  91,   1,   1,  23, 225, +222, 196, 194, 187, 194, 185, 172, 145, 116,  78,   7,   1,   0,   4,   4, +235, 196, 196,   4, 194,   0,   4, 177, 150, 124,  67,   4,   1,   0,  18, +235, 194, 196, 196, 194, 194, 196, 194, 177, 140, 116, 115,  23,  14,  59, +157, 177, 177,   5, 194,   0,  10, 177, 172, 145, 124,  91,  18,  14,  78, +145, 172,   4, 194,   0,   5, 185, 177, 153, 134,  10,   0,   3,   1,   0, + 17, 198, 194, 177, 161, 177, 194, 194, 185, 194, 172, 136, 125,  23,  14, + 69, 157, 185,   0,   3, 194,   0,  22, 185, 194, 185, 177, 161, 145, 120, + 67,  15,  15,  91, 150, 177, 185, 185, 194, 194, 185, 177, 145, 113,   8, +  4,   1,   8,  99,   0,   3, 106,  19,  30,   0,  10,  99,   0,   3,   4, +  4,   1,   0,   3,   4,   0,   3,   1,   1,  38,   0,  10, 117,   0,   8, + 38,   1,   4,   4,   1,   4,   4,  47,   3, 117,   1, 121,   1,  12,   6, +117,   0,   3,  76,   4,   4,   0,   5,   1,  10, 117,   0,   7,  99,   1, +  1,   4,   4,   7, 121,   0,   3, 117,   1,  47,   1,  76,   6, 117,   0, +  7,  92,   1,   4,   1,   1,  45,  63,   0,   3, 119,   0,   0,   3, 119, +  1, 114,   6,   1,   0,   8, 104, 109, 136, 145, 161, 187, 194, 194,   4, +195,   0,   4, 194, 210, 194, 194,   3, 210,   0,   4, 194, 187, 180,   8, +  6,   1,   0,  13, 201, 226, 220, 215, 194, 195, 195, 177, 153, 131, 100, +115,  21,   0,   3,   1,   0,  26,   8,  42, 111, 109, 124, 131, 124, 120, +113, 100, 100, 112,   1,   1,   4, 240, 220, 215, 210, 194, 195, 195, 177, +145, 120, 115,   7,   1,   0,  12,   4, 235, 215, 210, 210, 194, 195, 185, +177, 149, 124,  69,   4,   1,   1, 235,   1, 195,   3, 187,   0,  29, 177, +194, 194, 195, 177, 150, 140, 136, 151, 161, 177, 185, 195, 195, 194, 195, +187, 187, 185, 161, 150, 140, 124, 123, 134, 136, 153, 177, 187,   0,   3, +195,   0,   4, 187, 177, 145, 123,   4,   1,   0,  42, 198, 215, 195, 161, +161, 169, 185, 169, 161, 177, 162, 145, 144, 151, 150, 169, 195, 194, 195, +195, 194, 195, 195, 187, 172, 153, 136, 116, 124, 134, 136, 153, 177, 177, +185, 187, 195, 187, 177, 145, 132,   4,   3,   1,   1,  12,   1, 110,   7, +106,   0,   4,  92,   0,   4, 106,   3,  99,   4, 106,   0,  12,  99,  99, + 33,   1,   4,   1,   1,   4,   1,   4,  30, 127,   5, 121,   0,   6, 127, +127, 121, 127,  61,   1,   3,   4,   0,  10,   1,   1, 127, 127, 121, 127, +130,  12, 127, 127,   3, 121,   0,  11, 127,  38,   1,   4,   1,   4,   1, +  1,   4,  58, 127,   0,   3, 121,   0,  12, 127, 127, 121, 127, 121, 127, + 25,   1,   4,   4,   1, 130,   3, 121,   0,   3,  51,  86, 127,   0,   6, +121,   1,   1,   3,   4,   1,  37,   1,  63,   3, 119,   0,   0,   3, 119, +  1,  41,   5,   1,   0,   4, 115, 126, 136, 145,   3, 161,   0,   4, 177, +195, 195, 187,   3, 195,   1, 210,   1, 220,   4, 215,   0,   3, 210, 210, + 14,   0,   7,   1,   0,   5, 118, 228, 226, 215, 210,   0,   3, 195,   0, + 20, 187, 153, 131, 116, 113, 115,  91, 115, 123, 126, 131, 140, 145, 149, +145, 131, 124, 109, 100,  39,   3,   1,   0,  11, 240, 226, 220, 220, 215, +210, 208, 195, 153, 124, 125,   0,   7,   1,   0,   4,   4, 235, 215, 210, +  3, 208,   0,   5, 195, 177, 149, 124,  59,   0,   4,   1,   1, 235,   1, +208,   3, 187,   0,  11, 169, 161, 177, 187, 179, 162, 161, 161, 162, 179, +208,   0,   4, 210,   0,  13, 215, 208, 187, 177, 169, 153, 145, 149, 145, +145, 153, 177, 187,   0,   5, 195,   0,   3, 179, 145, 125,   0,   4,   1, +  0,  18, 216, 215, 215, 195, 177, 169, 177, 177, 153, 149, 161, 169, 153, +161, 177, 187, 195, 210,   3, 215,   3, 210,   0,  17, 187, 162, 149, 140, +133, 145, 161, 162, 177, 187, 187, 195, 195, 187, 177, 145, 115,   0,   4, +  1,   1,  38,   8, 106,   0,   3,   7,   4,   1,   0,  10, 106,   0,  10, + 55,   1,   1,   4,   4,   1,   4,   4,  19, 135,   9, 130,   0,   7,  95, +  1,   4,   4,   1,   4,  12,   0,   4, 130,   1, 135,   1,  12,   3, 130, +  0,   7, 127, 130, 130,   1,   4,   1,   4,   0,   5,   1,   1, 121,   1, +127,   5, 130,   0,   9, 127, 130, 130, 135,   4,   1,   4,   1, 127,   0, +  3, 130,   1,  51,   1,  92,   6, 130,   0,  10, 135,   1,   1,   4,   1, + 27,  63, 107, 119, 119,   0,   0,   0,   3, 119, 119, 107,   0,   5,   1, +  0,  13,  78, 145, 162, 177, 179, 187, 195, 179, 177, 179, 162, 177, 195, +  0,   3, 208,   4, 215,   1, 211,   1, 191,  10,   1,   0,   4, 245, 228, +220, 210,   3, 208,   0,  20, 199, 177, 153, 145, 140, 131, 131, 140, 149, +162, 187, 187, 179, 187, 187, 177, 145, 126, 123,   8,   3,   1,   0,   5, +221, 220, 220, 215, 211,   0,   3, 208,   0,   4, 187, 140, 123,   8,   6, +  1,   0,   3,   8, 219, 211,   0,   4, 208,   0,   5, 195, 177, 149, 126, + 54,   0,   4,   1,   0,  12, 240, 215, 208, 204, 197, 197, 187, 177, 179, +162, 161, 177,   3, 187,   3, 208,   1, 211,   1, 211,   3, 215,   0,  18, +211, 208, 187, 162, 153, 161, 162, 161, 177, 187, 195, 197, 197, 208, 209, +187, 145,  54,   4,   1,   0,   5, 216, 220, 215, 211, 208,   0,   4, 195, +  0,   9, 177, 162, 162, 149, 161, 179, 195, 197, 204,   0,   5, 211,   0, +  8, 215, 210, 208, 195, 187, 169, 153, 161,   3, 177,   0,   7, 187, 197, +199, 187, 177, 145,  32,   0,   4,   1,   1,  40,   5, 110,   0,   3, 106, +110,  76,   0,   3,   1,   0,   4,  99, 110, 110, 106,   6, 110,   0,  10, +106,   1,   4,   4,   1,   4,   1,   4,   4, 148,  10, 135,   1,   1,   1, +  1,   3,   4,   1,  33,   4, 135,   0,   3, 143,  12, 143,   0,   4, 135, +  1, 117,   1,   1,   3,   4,   0,   6,   5,   4,   4,   1,   1,  47,  10, +135,   1,  43,   3,   1,   1, 117,   3, 135,   1,  55,   1,  99,   6, 135, +  0,  10, 143,   7,   1,   1,   4,  22,  63,  98, 119, 119,   0,   0,   0, +  3, 119, 119,  65,   0,   4,   1,   0,  16,   4, 151, 177, 199, 209, 204, +199, 197, 197, 187, 187, 177, 187, 199, 208, 211,   4, 215,   1, 219,   1, +115,  11,   1,   0,  26, 146, 231, 226, 215, 208, 197, 197, 187, 169, 153, +153, 179, 179, 169, 177, 169, 177, 195, 208, 208, 204, 199, 197, 177, 145, + 59,   4,   1,   0,  12, 188, 220, 215, 215, 211, 208, 204, 204, 195, 149, +124,  14,   6,   1,   0,  12,  10, 219, 208, 204, 195, 187, 187, 177, 161, +133, 116,  54,   3,   1,   0,  14,   4, 240, 220, 215, 211, 208, 199, 199, +197, 187, 177, 179, 197, 204,   4, 208,   0,   5, 211, 208, 208, 211, 215, +  0,   3, 220,   0,  10, 215, 209, 179, 177, 177, 162, 177, 187, 187, 195, +  3, 187,   1, 162,   1, 138,   5,   1,   1, 225,   1, 215,   3, 211,   0, + 11, 208, 208, 204, 197, 197, 195, 187, 177, 187, 197, 204,   0,   3, 208, +  0,   4, 211, 215, 211, 211,   4, 215,   0,  14, 211, 208, 187, 177, 179, +179, 177, 187, 195, 195, 187, 161, 144,   4,   4,   1,   0,   4,  33,  30, +121, 121,   4, 117,   0,  11,   1,   4,   1,   1,  86, 121, 117, 117, 121, +117, 117,   0,   4,  86,   1,   4,   3,   1,   0,   8,   4,   1,   4,   1, +135, 143, 148, 148,   6, 143,   0,  19, 156,   7,   1,   4,   4,   1, 110, +143, 143, 148, 143, 148,  12, 148, 143, 148, 148, 143,  82,   0,   3,   1, +  1,   4,   1,  60,   3,   4,   0,   6,   1,   1, 121, 148, 143, 148,   3, +143,   0,  13, 148, 143, 143, 156,  12,   4,   1, 110, 143, 143, 148,  64, +106,   0,   6, 143,   0,  10, 156,  19,   4,   1,   4,  17,  65,  88, 119, +119,   0,   0,   0,   3, 119, 119,  27,   0,   4,   1,   0,  21, 142, 161, +177, 197, 208, 208, 204, 199, 197, 199, 195, 179, 195, 208, 208, 211, 215, +215, 210, 217,  10,   0,  13,   1,   0,  13, 229, 234, 226, 211, 195, 187, +179, 169, 161, 153, 187, 199, 187,   0,   3, 177,   1, 187,   4, 208,   0, +  4, 199, 179, 176,   4,   4,   1,   0,  12, 139, 223, 220, 211, 208, 199, +197, 187, 169, 145, 124,  23,   6,   1,   0,  12,  14, 219, 208, 197, 187, +177, 169, 162, 149, 129, 109,  48,   3,   1,   0,  12,   4, 240, 220, 215, +215, 208, 208, 209, 208, 209, 197, 209,   5, 211,   4, 208,   0,  20, 211, +215, 215, 220, 220, 215, 211, 204, 197, 197, 187, 177, 195, 197, 204, 197, +187, 179, 161,  69,   5,   1,   0,   4, 225, 215, 208, 208,   3, 211,   3, +208,   0,   3, 211, 208, 199,   0,   4, 208,   3, 211,   1, 210,   3, 215, +  0,   6, 211, 211, 215, 210, 208, 208,   3, 197,   0,   7, 179, 187, 197, +197, 187, 161,  39,   0,   4,   1,   0,   4,  25, 135,  64,  12,   4, 127, +  1,  58,   3,   4,   0,   4,   1,  86, 127, 130,   3, 127,   0,   7, 121, +  4,  64,  61,  61,   4,   1,   0,   3,   4,   0,   6,   1,   4,   1, 106, +156, 148,   5, 156,   0,  15, 148, 156, 156,  25,   1,   1,   4,   7, 156, +156, 148, 156, 148, 156,  12,   0,   5, 127,   0,  26,  30,   1,   1,   4, +  4,  63,  45,   1,   1,   4,   4,  38, 156, 156, 148, 156, 148, 156, 156, +148, 156, 148,  95,   1,   1,  99,   3, 156,   1,  66,   1, 110,   4, 156, +  0,  12, 148, 148, 156,  25,   1,   1,   4,  16,  65,  77, 119, 119,   0, +  0,   1, 119,   1, 119,   5,   1,   0,  14, 182, 179, 187, 195, 199, 204, +199, 199, 197, 197, 187, 177, 195, 208,   3, 215,   1, 240,   1,  32,  15, +  1,   0,   6,  28, 248, 234, 226, 220, 215,   3, 208,   0,  15, 187, 197, +209, 208, 197, 197, 187, 187, 204, 208, 211, 208, 197, 193,  14,   0,   5, +  1,   0,   5, 118, 228, 226, 215, 208,   0,   3, 197,   0,   4, 179, 149, +120,  39,   6,   1,   0,  12,  14, 215, 211, 208, 204, 199, 195, 187, 177, +149, 116,  42,   3,   1,   0,   6,   4, 225, 223, 220, 215, 215,   3, 211, +  0,  19, 208, 209, 225, 220, 223, 223, 220, 215, 215, 211, 208, 211, 220, +242, 221, 226, 223, 220, 215,   0,   3, 211,   0,   9, 204, 187, 197, 208, +211, 211, 208, 195, 142,   0,   6,   1,   0,   3, 222, 223, 215,   0,   6, +211,   0,   4, 215, 225, 215, 211,   6, 215,   0,   8, 220, 220, 242, 226, +226, 220, 215, 215,   3, 211,   0,   9, 208, 211, 211, 197, 197, 208, 204, +195, 142,   0,   5,   1,   0,   9,  86, 130, 135, 110,   1, 121, 135, 127, +  1,   0,   3,   4,   0,   4,   1,  61, 135, 130,   3, 135,   0,  16, 130, +  4, 135, 130, 135,   7,   4,   4,   1,   4,   1,   4,   1,  64, 156, 167, +  7, 156,   0,   7, 167,  38,   1,   4,   1,  25, 167,   0,   4, 156,   0, + 22, 167,  76,  74,  76,  76,  74,  66,   1,   4,   1,   1,   6,  77, 119, +  6,   4,   4,   1,   1, 117, 156, 167,   7, 156,   0,   4, 167,  25,   1, + 86,   3, 156,   1,  74,   1, 117,   6, 156,   0,  10, 167,  33,   4,   1, +  1,  11,  70,  73, 119, 119,   0,   0,   1, 119,   1,  88,   4,   1,   0, + 18,  23, 209, 209, 199, 195, 197, 195, 197, 197, 199, 197, 179, 169, 195, +208, 211, 235,  42,  18,   1,   0,  16,  36, 252, 238, 233, 226, 220, 215, +215, 208, 211, 211, 215, 215, 211, 208, 208,   3, 211,   0,   3, 208, 219, + 29,   0,   6,   1,   0,  12,  71, 231, 233, 226, 215, 211, 211, 215, 208, +179, 133,  59,   6,   1,   0,  12,  20, 220, 220, 215, 211, 208, 208, 204, +197, 162, 129,  39,   3,   1,   0,   6,   4, 243, 233, 228, 223, 220,   4, +215,   0,  24, 168,  14, 250, 233, 233, 228, 226, 223, 220, 215, 220, 221, +  1,  36, 248, 238, 234, 228, 223, 220, 220, 215, 208, 211,   3, 215,   1, +209,   1, 168,   7,   1,   0,  16, 243, 233, 228, 223, 220, 215, 215, 220, +220, 201,  10, 243, 226, 228, 228, 226,   3, 223,   0,  19, 226, 201,   1, + 36, 248, 238, 233, 228, 226, 223, 220, 215, 215, 220, 215, 211, 211, 209, +168,   0,   5,   1,   0,  10,  12, 148, 143, 143, 135, 135,   4,  82,  40, +  4,   3,   1,   0,   3,   4,  38, 148,   0,   5, 143,   0,   6,   4, 148, +143, 143,  38,   1,   3,   4,   0,   4,   1,   4,   4,  40,  10, 167,   0, +  5,  55,   4,   1,   1,  76,   0,  11, 167,   0,  15, 121,   1,   1,   4, +  4,  37, 114, 119,  63,   4,   1,   4,   1,  25, 181,   0,   9, 167,   0, +  3, 148,   1,  74,   0,   3, 167,   1,  76,   1, 117,   7, 167,   0,   9, + 40,   4,   1,   4,   4,  70,  70, 119, 119,   0,   0,   0,   1, 119,   1, + 73,   4,   1,   0,  17,  78, 211, 211, 208, 199, 199, 197, 199, 199, 208, +208, 195, 162, 179, 219,  91,   4,   0,  20,   1,   0,  20,  10, 252, 244, +238, 233, 226, 223, 220, 215, 215, 223, 223, 220, 220, 215, 220, 215, 210, +235,  18,   7,   1,   0,  12,  46, 234, 238, 238, 233, 226, 223, 223, 220, +195, 153, 115,   6,   1,   0,  12,  28, 228, 228, 226, 223, 220, 215, 211, +209, 179, 136,  39,   3,   1,   0,   6,   4, 248, 244, 238, 234, 233,   3, +226,   0,  29, 223, 139,   1,  12, 232, 244, 238, 234, 233, 226, 222, 188, +  4,   1,   1,  12, 212, 244, 238, 234, 233, 233, 228, 226, 223, 223, 220, +235,  54,   0,   8,   1,   0,   5, 249, 244, 244, 234, 228,   0,   3, 226, +  0,  12, 223, 122,   1,   7, 229, 248, 238, 234, 233, 226, 226, 164,   3, +  1,   0,   7,  10, 232, 244, 238, 238, 234, 233,   0,   3, 228,   0,   4, +226, 215, 235,  42,   6,   1,   1, 127,   6, 148,   0,   9,  30,   4,   4, +  1,   1,   4,   1,  19, 156,   0,   5, 148,   0,   7,   4, 156, 148, 148, + 82,   1,   1,   0,   4,   4,   1,   1,   1,  30,   8, 181,   0,   8, 167, +181,  86,   1,   4,   1, 181, 167,   4, 181,   1, 167,   3, 181,   0,   4, +167, 181,  66,   4,   3,   1,   1,  65,   3, 119,   1,  11,   3,   4,   0, +  6,   1,  95, 167, 181, 181, 167,   3, 181,   0,   5, 167, 181, 181,  43, + 61,   0,   3, 181,   1,  95,   1,  86,   7, 181,   0,   9,  55,   1,   4, +  1,   4,  70,  70, 119, 119,   0,   0,   0,   1, 119,   1,  63,   4,   1, +  0,  15, 137, 215, 215, 211, 208, 204, 199, 199, 204, 199, 197, 195, 153, +170,  18,   0,   8,   1,   0,   3,   4, 104, 104,   0,  13,   1,   0,  17, + 57, 252, 244, 238, 234, 233, 228, 226, 226, 233, 228, 226, 226, 223, 240, + 94,   4,   0,   8,   1,   0,  12,  10, 253, 252, 252, 248, 249, 250, 250, +242, 235, 219, 191,   6,   1,   0,  12,  44, 234, 238, 234, 233, 233, 226, +223, 215, 195, 161,  35,   3,   1,   0,   7,   4, 237, 252, 253, 252, 249, +250,   0,   3, 242,   1,  81,   3,   1,   0,   6,  20,  96, 163, 163,  81, + 18,   6,   1,   0,  11,  20, 128, 248, 248, 249, 249, 250, 242, 139,  28, +  4,   0,   9,   1,   0,  10, 232, 252, 253, 252, 249, 250, 250, 242, 242, + 46,   3,   1,   0,   6,  20,  96, 163, 163,  81,  14,   6,   1,   0,  11, + 20, 146, 248, 248, 249, 245, 250, 229, 122,  28,   4,   0,   6,   1,   1, + 95,   6, 156,   0,  10, 167,  19,   4,   1,   4,   4,   1,   4,   1, 167, +  5, 156,   0,  17,   4, 167, 156, 156, 148,   1,   4,   1,   4,   4,   1, +  4,  19, 203, 181, 181, 192,   0,   3, 181,   0,   8, 192, 181, 192, 127, +  1,   1,  25, 192,  10, 181,   0,   7, 192,  25,   1,   4,   4,   5,  65, +  0,   3, 119,   1,  87,   1,   1,   3,   4,   1,  12,   1, 206,   6, 181, +  0,  10, 192, 181, 181, 192,  47, 192, 181, 181, 148,  25,   7, 181,   0, +  9,  76,   1,   1,   4,   4,  65,  65, 119, 119,   0,   0,   0,   1, 119, +  1,  63,   4,   1,   1, 137,   3, 220,   0,  10, 210, 211, 208, 208, 209, +195, 187, 179, 157,  23,   8,   1,   0,   5,  39, 111, 100, 100,  78,   0, + 13,   1,   0,   6,   4,  28, 128, 252, 248, 248,   3, 245,   0,   5, 250, +250, 164,  46,   8,   0,  12,   1,   3,   4,   3,   7,   0,   4,   8,   8, + 10,   4,   6,   1,   0,  12,  44, 248, 252, 252, 248, 245, 245, 226, 223, +219, 210,  35,   9,   1,   0,   4,   4,   4,   8,   8,  19,   1,   0,   4, +  7,   8,  12,   4,  18,   1,   0,   4,   4,   4,   8,   8,  19,   1,   0, +  4,   7,   8,   8,   4,   9,   1,   1,  66,   7, 167,   0,  10, 121,   1, +  1,   4,   4,   1,   4,   4,   1, 148,   4, 167,   1, 156,   1,   7,   4, +167,   0,   5,   4,   1,   1,   4,   1,   0,   3,   4,   1, 213,   9, 192, +  0,   4, 167,   1,   1,  51,  11, 192,   1, 181,   1,   1,   3,   4,   1, + 16,   1,  88,   4, 119,   1,  22,   3,   4,   1,   1,   1,  66,  10, 192, +  1, 181,   4, 192,   1,   1,   7, 192,   1, 117,   1,   1,   3,   4,   0, +  4,  56,  65, 119, 119,   0,   0,   1, 119,   1,  70,   4,   1,   0,  13, + 94, 220, 220, 215, 215, 210, 211, 208, 208, 197, 187, 153, 134,   0,   7, +  1,   0,   8,  15,  91, 113, 109, 108, 100, 113,  18,   5,   1,   1,  24, +  1,   4,   9,   1,   0,   6,   7,  20,  28,  28,  18,  10,  33,   1,   1, + 10,   3,  20,   4,  28,   1,  32,   1,  32,  90,   1,   0,  12, 106, 181, +181, 167, 181, 167, 181, 167, 181,   4,   4,   1,   4,   4,   0,   9,   1, +  1, 135, 167, 167, 181, 167, 167,   7,   0,   4, 181,   1,  12,   6,   4, +  1,   1,   1, 181,   5, 203,   3, 206,   0,   8, 203, 213,   1,   1, 148, +203, 206, 206,   3, 203,   1, 206,   4, 203,   0,   6, 117,   1,   1,   4, +  1,  45,   5, 119,   0,   9, 103,   1,   1,   4,   1,   7, 213, 203, 206, +  0,   3, 203,   1, 206,   7, 203,   0,   3, 206,  47, 181,   0,   6, 203, +  0,   9, 143,   1,   1,   4,   1,  45,  65, 119, 119,   0,   0,   0,   1, +119,   1,  87,   4,   1,   0,  14,  32, 223, 220, 215, 215, 211, 211, 208, +208, 209, 187, 145, 124,  29,   4,   1,   0,  10,  35,  78, 113, 109, 126, +140, 133, 109, 105, 115,   5,   1,   0,   3,  41,  63,  34,   0,  22,   1, +  0,   4,  31, 114, 119,  13,  74,   1,   0,   4,  11,  88, 114,  17,  41, +  1,   1,  25,   1, 156,   8, 181,   1,  95,   1,   1,   3,   4,   0,   6, +  9,   4,   4,   1,   1, 117,   5, 181,   1,   4,   4, 181,   1,  19,   1, +  4,   3,   1,   0,   8,   4,   1,   1, 121, 206, 213, 206, 213,   5, 206, +  0,   4, 218,  25,  12, 218,   4, 206,   1, 213,   5, 206,   0,   7, 213, + 58,   4,   1,   4,   4,  70,   0,   6, 119,   0,   6,  34,   1,   4,   4, +  1,  51,  14, 206,   1, 148,   1,  61,   6, 206,   1, 181,   1,   1,   3, +  4,   0,   4,  37,  63, 119, 119,   0,   0,   1, 119,   1, 119,   5,   1, +  0,  28, 228, 226, 215, 215, 211, 208, 197, 195, 187, 179, 149, 116, 123, + 67,  69,  78, 111, 113, 116, 131, 145, 153, 177, 177, 140, 109, 105,  59, +  4,   1,   0,   5,  27,  63, 119,  77,  11,   0,  19,   1,   1,  63,   3, +119,   1, 114,   1,  24,  54,   1,   0,   5,   9,  45,  87,  88,  41,   0, + 12,   1,   1,  31,   1,  73,   4, 119,   1,  34,  21,   1,   0,   5,  11, + 45,  88,  87,  37,   0,  12,   1,   0,   3,  47, 130, 206,   0,   8, 192, +  1, 181,   3,   1,   0,   8,   4,   4,  98,   4,   1,   4,   4,  95,   5, +192,   1,   7,   1, 135,   3, 192,   0,   3,  47,   1,   1,   0,   3,   4, +  0,   4,   1,   1,  66, 218,   6, 213,   0,   6, 206, 213, 218,  40,  43, +218,  10, 213,   1, 224,   1,  12,   3,   4,   1,   9,   1,  73,   6, 119, +  1, 114,   1,   1,   4,   4,   1, 206,  13, 213,   1, 192,   1,   7,   6, +213,   1, 218,   1,   1,   3,   4,   0,   4,  31,  63, 114, 119,   0,   0, +  0,   3, 119, 119,  22,   0,   4,   1,   0,  28, 229, 228, 220, 211, 211, +208, 197, 199, 195, 187, 169, 145, 133, 131, 129, 129, 133, 133, 149, 162, +169, 187, 195, 197, 169, 133, 109, 125,   4,   1,   1,  13,   1,  77,   3, +119,   1,  73,   1,  31,  14,   1,   1,  24,   1,  60,   7, 119,   0,   7, + 77,  45,  31,  22,  17,  17,  16,   0,   3,  13,   0,   7,  11,  11,  17, + 37,  73, 119,  56,   0,  16,   1,   0,  21,  41,  56,  41,  34,  31,  27, + 27,  24,  17,  16,  17,  34,  56, 107, 119, 103,  70,  52,  52,  70, 107, +  0,   6, 119,   0,  10,  87,  52,  34,  17,  13,  16,  24,  37,  52,  87, +  8, 119,   0,  21,  98,  56,  41,  31,  31,  27,  27,  22,  17,  16,  17, + 34,  56, 114, 119, 103,  65,  50,  52,  70, 107,   0,   6, 119,   0,   3, + 87,  52,   4,   0,   3,   1,   0,   9,   4,  30,  99, 156, 213, 206, 203, +203, 206,   0,   6, 203,   0,  14, 206,  64,   4,   4,   1,   4,  22, 119, +  5,   1,   4,   1,  55, 206,   4, 203,   0,  10, 192,   4, 206, 203, 203, +110,   1,   4,   4,   1,   3,   4,   1,  33,   5, 218,   1, 213,   1, 213, +  3, 218,   0,  20,  64, 117, 218, 218, 213, 218, 218, 213, 218, 218, 213, +218, 218, 181,   1,   1,   4,   1,  24,  98,   7, 119,   0,   6,  45,   1, +  4,   1,   1,  33,   7, 218,   1, 213,   4, 218,   0,   4, 213, 218,  12, +224,   5, 218,   0,   9, 227,   4,   4,   1,   4,  22,  63,  98, 119,   0, +  0,   0,   0,   3, 119, 119,  56,   0,   4,   1,   0,   5,  28, 231, 226, +215, 211,   0,   5, 208,   0,  18, 195, 177, 162, 177, 177, 162, 177, 179, +195, 197, 187, 195, 199, 204, 195, 161, 138,  35,   4,   1,   1,  27,   7, +119,   0,   5,  87,  50,  31,  17,   5,   0,   3,   1,   0,   4,  11,  27, + 41,  73,  27, 119,   0,   5, 114,  45,  24,  11,   4,   0,   4,   1,   1, +  4,   3,   1,   0,   3,  11,  34,  88,   0,  73, 119,   0,  10, 107,   4, +  1,   1,   4,   1, 181, 206, 206, 213,  10, 206,   0,  14, 167,   1,   1, +  4,   1,   4, 119, 119,   5,   1,   4,   4,  33, 218,   4, 206,   0,   7, +213,  19, 218, 213, 213, 192,   1,   0,   3,   4,   0,   5,   1,   4,   4, + 25, 227,   0,   4, 218,   3, 224,   0,   4, 218, 218, 121, 218,   4, 224, +  1, 218,   5, 224,   0,   3, 218,  99,   1,   0,   3,   4,   1,  52,   9, +119,   0,   9,   5,   4,   4,   1,   1, 203, 224, 218, 224,   0,   3, 218, +  0,   3, 224, 224, 218,   0,   4, 224,   1,  86,   1, 156,   5, 227,   0, +  9, 239,  19,   4,   4,   1,  13,  63,  88, 119,   0,   0,   0,   0,   3, +119, 119,  98,   0,   5,   1,   0,  19, 163, 234, 228, 220, 215, 211, 211, +215, 215, 211, 197, 179, 187, 204, 208, 209, 208, 211, 208,   0,   3, 211, +  0,   4, 208, 199, 193,  29,   5,   1,   1,  77, 135, 119,   0,   6,  11, +  4,   4,   1,   1,  82,  13, 213,   1, 224,   1,  40,   3,   1,   0,  10, +  4,  37, 119, 119,  13,   4,   1,   4,   1, 224,   4, 213,   0,   6, 218, +  7,  43,  43,  40,  43,   4,   1,   3,   4,   0,   4,  12, 239, 227, 227, +  7, 224,   0,   7, 227, 224, 227, 224, 224, 227, 227,   0,   4, 224,   0, +  4, 227, 230,  43,   1,   3,   4,   1,  73,   9, 119,   1,  56,   3,   4, +  1,   1,   1,  19,   3, 227,   4, 224,   4, 227,   0,  18, 224, 224, 206, + 19,  51,  51,  47,  43,  43,  47,   7,   1,   1,   4,  11,  65,  77, 119, +  0,   0,   3, 119,   1,  27,   5,   1,   0,  13, 212, 238, 231, 226, 215, +208, 211, 215, 215, 210, 208, 208, 211,   0,   3, 215,   5, 220,   1, 219, +  1, 176,   6,   1,   1,   4, 135, 119,   1,  73,   3,   4,   1,   1,   1, +  7,  14, 218,   0,   6, 148,   1,   4,   1,   1,   4,   3, 119,   0,   6, + 37,   4,   4,   1,   1, 213,   5, 218,   0,   6, 203, 203, 192, 203, 206, + 19,   3,   1,   4,   4,   1, 241,  16, 227,   1, 230,   4, 227,   0,   7, +241,   4,   4,   1,   4,  11,  77,   0,  10, 119,   0,   6,   9,   4,   1, +  4,   1, 167,  10, 227,   0,   3, 230, 227, 227,   0,   5, 213,   0,  10, +206, 218,  40,   4,   4,   1,   9,  65,  73, 119,   0,   0,   3, 119,   1, +107,   6,   1,   0,   7, 178, 244, 238, 233, 220, 215, 220,   0,   3, 215, +  0,   4, 210, 215, 215, 220,   3, 215,   0,   4, 220, 220, 225,  94,   6, +  1,   1,   2,   1, 103, 135, 119,   1,   4,   4,   1,   1, 148,   4, 224, +  1, 218,   5, 224,   0,   5, 218, 224, 224, 230,  25,   0,   3,   4,   1, +  1,   1,  52,   3, 119,   0,   6,  60,   1,   1,   4,   1, 181,   4, 224, +  1, 218,   5, 224,   0,   9,  30,   4,   1,   1,   4,   1,   4,   1, 206, +  0,   4, 230,   0,   3, 227, 230, 227,   0,   5, 230,   3, 227,   0,   8, +230, 230, 227, 227, 230, 230, 167,   1,   3,   4,   1,  31,   1, 103,  10, +119,   0,   9,  77,   4,   1,   4,   1,   4, 230, 227, 227,   0,   7, 230, +  3, 227,   3, 230,   3, 227,   0,   9, 239,  58,   4,   4,   1,   6,  70, + 65, 119,   0,   0,   0,   4, 119,   1,  73,   6,   1,   0,   6,  57, 237, +244, 234, 228, 226,   3, 223,   0,   9, 220, 220, 223, 226, 226, 220, 215, +225, 139,   0,   7,   1,   1,   4,   1, 107, 135, 119,   1,  41,   1,   1, +  3,   4,   0,   7,  33, 230, 224, 227, 224, 227, 224,   0,   4, 227,   0, + 10, 224, 227, 224, 227, 110,   1,   4,   1,   1,  13,   4, 119,   0,  10, +103,   4,   1,   4,   1, 143, 227, 227, 224, 227,   5, 224,   0,   3, 227, + 55,   1,   0,   5,   4,   1,   1,   1, 127,   4, 230,   1, 239,   3, 230, +  0,  19, 239, 230, 230, 239, 230, 239, 230, 227, 230, 239, 230, 230, 239, + 74,   1,   4,   4,   1,  60,   0,  12, 119,   1,  17,   4,   1,   0,   3, +135, 230, 239,   0,  10, 230,   1, 227,   6, 230,   0,   8,  82,   1,   1, +  4,   4,  70,  65, 119,   0,   0,   5, 119,   1,  37,   7,   1,   0,   7, + 53, 212, 237, 238, 234, 233, 231,   0,   4, 228,   0,   3, 231, 201,  42, +  0,   8,   1,   1,  11, 136, 119,   0,   7, 107,   1,   4,   4,   1,   1, +203,   0,   3, 227,   0,  17, 230, 230, 227, 227, 230, 227, 230, 230, 227, +227, 241,  12,   1,   4,   1,   1,  77,   0,   5, 119,   0,   5,   2,   1, +  4,   1, 110,   0,   3, 227,   1, 224,   1, 230,   5, 227,   0,   4, 130, +  1,   4,   1,   3,   4,   0,   3,   1,  58, 230,   0,   6, 239,   0,   5, +230, 230, 239, 239, 230,   0,   7, 239,   0,   8, 230, 246,  33,   1,   4, +  4,   9,  77,  12, 119,   1,  88,   3,   4,   0,   3,   1,   1, 230,   0, +  7, 239,   1, 230,   3, 239,   0,   9, 230, 230, 239, 239, 230, 239, 239, +110,   1,   0,   3,   4,   0,   3,  70,  65, 119,   0,   0,   0,   6, 119, +  1,  31,   9,   1,   1,   2,   1,  36,   3,  71,   1,  57,   1,  18,  11, +  1,   1,  41, 137, 119,   0,  10,  11,   4,   1,   4,   4,  95, 239, 230, +227, 227,   3, 230,   0,   3, 227, 230, 227,   0,   4, 230,   0,   6,  61, +  1,   1,   4,   1,  24,   6, 119,   0,   5,   4,   1,   4,   4,  74,   0, + 10, 230,   0,  11, 218,   1,   4,   4,   1,   4,   4,   1,  25, 241, 241, +  0,   3, 239,   0,   3, 241, 239, 241,   0,   9, 239,   3, 241,   1, 247, +  4,   1,   1,  17,   1,  87,  13, 119,   0,  14,  31,   1,   1,   4,   4, + 99, 239, 241, 239, 241, 239, 241, 239, 241,   6, 239,   0,  12, 241, 239, +241, 239, 135,   1,   1,   4,   4,  60,  65, 119,   0,   0,   7, 119,   1, + 60,   1,   2,  23,   1,   1,   5,   1, 107, 137, 119,   1,  77,   4,   4, +  0,   4,   1, 227, 239, 230,   5, 239,   1, 230,   1, 230,   3, 239,   0, +  8, 230, 241,   4,   1,   1,   4,   1, 107,   6, 119,   0,  30,  11,   1, +  4,   4,  40, 241, 230, 239, 230, 239, 239, 230, 239, 230, 239, 247,   7, +  4,   4,   1,   4,   4,   1,  19, 206, 203, 203, 206, 203, 224,   8, 241, +  1, 239,   3, 241,   0,   4, 239, 241, 148,   1,   3,   4,   1,  37,   1, +114,  13, 119,   0,   9, 103,   4,   4,   1,   4,   1, 227, 241, 239,   0, + 15, 241,   0,   8, 167,   1,   4,   1,   4,  50,  65, 119,   0,   0,   8, +119,   1, 114,   1,  11,  21,   1,   1,  63, 138, 119,   0,   7, 114,   4, +  4,   1,   4,   1, 135,   0,   3, 192,   1, 224,  10, 239,   1,  33,   1, +  1,   3,   4,   1,  37,   7, 119,   0,   7,  11,   4,   4,   1,  12, 247, +241,   0,   3, 239,   0,   8, 230, 239, 241, 241, 239, 241,  25,   1,   6, +  4,   1, 117,   3, 110,   0,   3, 121,   7, 246,   0,   9, 241,   0,  10, +246, 246, 241, 241,  47,   4,   1,   4,   1,  70,  15, 119,   0,   8,  45, +  1,   1,   4,   4,  61, 241, 246,   9, 241,   0,   3, 239, 241, 246,   0, +  3, 241,   1, 206,   1,   1,   3,   4,   0,   3,  41,  63, 119,   0,   0, +  0,  10, 119,   1,  88,   1,  11,  16,   1,   1,  16,   1,  87, 140, 119, +  1,  45,   4,   4,   1,  25,   3, 117,   1,  51,   1, 130,   9, 241,   0, +  6, 218,   1,   4,   1,   4,   4,   8, 119,   0,   9,  31,   1,   4,   4, +  1, 247, 241, 241, 239,   0,   3, 241,   0,  19, 246, 241, 239, 241,  38, +  4,   1,   4,   4,   1,   4,   1, 251, 241, 241, 246, 241,  25, 206,   0, +  6, 241,   1, 246,   4, 241,   0,   8, 246, 251,  25,   1,   4,   4,  11, + 77,  15, 119,   1, 114,   3,   4,   0,   3,   1,   1, 218,   0,   3, 241, +  1, 246,   8, 241,   1, 246,   3, 241,   0,   8, 239,   1,   1,   4,   1, + 31,  63, 114,   0,   0,  12, 119,   0,   3, 114,  88,  37,   0,   9,   1, +  0,   4,  11,  49,  98, 114, 141, 119,   0,   7,  98,   1,   1,   4,   4, +  1, 230,   0,   3, 241,   1, 117,   1, 130,   4, 241,   1, 246,   4, 241, +  0,   6,  19,   1,   4,   1,   1,  50,   8, 119,   0,   6,  50,   1,   1, +  4,   1, 213,  10, 241,   1,  66,   1,   1,   3,   4,   0,   4,   1,   4, +  1, 206,   4, 246,   0,   7, 127, 121, 247, 241, 241, 246, 241,   0,   4, +246,   0,  10, 241, 246, 241, 246,   1,   4,   1,   4,  27,  88,  16, 119, +  0,   9,  60,   1,   4,   4,   1,  33, 255, 251, 254,   0,   3, 251,   1, +254,   1, 251,   3, 246,   1, 241,   4, 246,   0,   8, 254,   1,   4,   1, +  1,  22,  63, 107,   0,   0,  16, 119,   1, 114,   1, 103,   4,  98,   1, +107,   1, 114, 145, 119,   0,   6,  22,   1,   4,   4,   1,  82,   3, 241, +  0,   3, 246, 110, 130,   0,   3, 241,   0,  11, 246, 241, 246, 246, 241, +148,   1,   1,   4,   4,  11,   0,   9, 119,   1,  87,   3,   4,   0,  21, +  1, 156, 241, 246, 246, 247, 241, 241, 246, 247, 241, 246, 143,   1,   4, +  1,   4,   1,   4,   1, 117,   0,   4, 247,   0,   5, 251,  19, 254, 246, +247,   0,   7, 246,   0,   8, 247, 246, 121,   1,   1,   4,   1,  45,  18, +119,   1,   1,   1,   4,   3,   1,   1,  33,   4,  40,   0,   4,  38,  38, + 12, 247,   6, 246,   0,   9, 247, 254,  12,   4,   1,   1,  11,  63,  98, +  0,   0,   0, 168, 119,   0,  27,  70,   4,   1,   4,   4,   1, 246, 246, +241, 246, 241, 117, 130, 241, 241, 246, 241, 246, 241, 246, 246,   7,   4, +  1,   4,   1,  70,   0,  10, 119,   0,  24,   1,   1,   4,   4,  33,  58, + 55,  55,   4, 239, 246, 246, 241, 246, 241, 230,   1,   4,   1,   1,   4, +  1,   1,  47,   3, 247,   0,  12, 246, 251,  25, 213, 241, 239, 241, 241, +239, 241, 241, 239,   3, 241,   1,  33,   4,   4,   1,  73,  18, 119,   1, + 77,   4,   4,   0,   3,  19, 254, 251,   0,   3, 247,   0,  18, 254,  38, +241, 246, 247, 246, 246, 247, 247, 246, 251,  33,   1,   4,   4,   9,  65, + 87,   0,   0, 168, 119,   0,   6,   5,   4,   4,   1,   1, 167,   4, 246, +  0,   3, 241, 117, 143,   0,   3, 255,   0,  10, 251, 241, 241, 246,  99, +  1,   4,   4,   1,  24,  11, 119,   0,   5,   4,   1,   4,   4,  82,   0, +  3, 247,   1, 213,   1,   4,   5, 246,   0,  15, 254,   4,   4,   1,   4, +  1,   4,   4,  19, 247, 246, 246, 247, 247, 143,   0,   3,  58,   3,  61, +  0,  12,  58,  58,  61,  58,  55,  61,   4,   1,   4,   4,  17,  87,  19, +119,   1,   6,   4,   1,   0,   3, 148, 247, 246,   0,   3, 247,   0,  17, +192,  66, 246, 247, 247, 246, 246, 247, 247, 251,  47,   4,   4,   1,   9, + 65,  77,   0,   0,   0, 167, 119,   0,   7,  45,   4,   1,   4,   4,  25, +247,   0,   5, 246,   1, 143,   3,  30,   0,   5,  19,  61, 255, 254, 251, +  0,   4,   1,   1,   4,   1,  88,  11, 119,   0,  10,  11,   1,   1,   4, + 47, 251, 247, 246, 247,   0,   3, 247,   0,   5, 246, 247, 251,  30,   1, +  0,   3,   4,   0,   8,   1,   4,  12, 251, 251, 246, 247, 247,  11, 251, +  0,   3, 254, 239,   1,   0,   3,   4,   1,  34,   1,  98,  19, 119,   0, +  7,  98,   4,   1,   4,   4,   7, 251,   0,   4, 247,   0,   6, 241,   4, +251, 247, 251, 251,   3, 247,   0,   8, 251,  66,   4,   1,   1,   4,  65, + 65,   0,   0, 166, 119,   0,  11,  98,   4,   4,   1,   4,   4, 239, 247, +246, 247, 246,   0,   3, 247,   0,   7, 254, 251, 251, 254,  47,  25,  25, +  0,   5,   4,   1,  37,  12, 119,   0,   6,  16,   1,   4,   4,  30, 254, +  3, 247,   1,   1,   4, 247,   0,   3, 246, 247,  47,   0,   6,   4,   1, +  7,   1, 251,  14, 247,   0,   8, 251, 247,  82,   1,   1,   4,   4,  50, + 21, 119,   0,   7,  17,   1,   1,   4,   1, 117, 251,   0,   3, 247,   0, +  5, 251,  38, 246, 247, 246,   0,   4, 247,   0,   8, 251,  95,   1,   1, +  4,   4,  65,  65,   0,   0, 166, 119,   0,   6,  27,   4,   1,   4,   1, + 61,  12, 247,   0,   9, 251, 255, 241,   1,   4,   1,   1,   4, 107,   0, + 12, 119,   1,  26,   3,   4,   1,   1,   1, 255,   3, 247,   1,   1,   1, +251,   5, 247,   1,  86,   1,   1,   3,   4,   3,   1,   1, 251,   1, 251, +  6, 247,   1, 251,   7, 247,   0,   7, 251,  19,   1,   4,   4,   2,  77, +  0,  21, 119,   1, 114,   1,   2,   4,   1,   1, 246,   4, 247,   0,   3, +203,  74, 251,   0,   6, 247,   0,   7, 127,   1,   1,   4,   2,  70,  65, +  0,   0,   0, 166, 119,   0,   6,   1,   4,   1,   1,   7, 255,   8, 247, +  1, 251,   4, 247,   0,   3, 251,  30,   4,   0,   3,   1,   1,  52,  13, +119,   0,  11,  45,   4,   4,   1,   1, 241, 247, 251, 251,   1, 251,   0, +  5, 247,   0,   5, 156,   1,   4,   4,   1,   0,   3,   4,   1, 192,   1, +251,   8, 247,   0,  13, 251, 247, 251, 251, 247, 247, 254,   7,   4,   1, +  1,  24,  88,   0,  22, 119,   1,  27,   3,   4,   0,   8,   1,  74, 251, +251, 247, 247, 246,   1,   6, 247,   0,   8, 251, 148,   1,   4,   1,   4, + 65,  65,   0,   0, 166, 119,   1,   1,   3,   4,   0,   9,   1,  95, 181, +227, 254, 254, 251, 247, 251,   0,   6, 247,   0,   7, 192,   1,   1,   4, +  1,   1, 114,   0,  13, 119,   1,  70,   4,   1,   0,   5, 181, 247, 251, +251,   1,   0,   4, 247,   0,   6, 251, 247, 230,   1,   1,   4,   4,   1, +  0,   3,  99, 251, 251,   0,   8, 247,   3, 251,   0,   4, 247, 247, 206, +  1,   3,   4,   1,  41,   1, 107,  23, 119,   0,  15,   5,   4,   1,   4, +  1, 230, 247, 251, 247, 251,  33, 241, 251, 247, 247,   0,   3, 251,   0, +  7, 181,   1,   4,   1,   4,  52,  77,   0,   0,   0, 166, 119,   0,   5, + 11,   1,   4,   1,   4,   0,   4,   1,   0,   6,  55, 135, 206, 230, 254, +251,   4, 247,   4,   4,   1,   1,   1,  77,  14, 119,   0,   6, 114,   1, +  4,   1,   1, 130,   3, 247,   1,   1,   1, 251,   4, 247,   1, 251,   1, +255,   5,   4,   0,   3,   1,   1,  38,   0,   3, 251,   0,   3, 247, 251, +247,   0,   3, 251,   0,   3, 247, 247, 251,   0,   3, 247,   1,  51,   3, +  1,   1,   4,   1,  56,  24, 119,   0,  25,  41,   4,   4,   1,   4,  43, +251, 251, 247, 247, 192,  82, 247, 251, 247, 251, 247, 247, 203,   1,   4, +  4,   1,  45, 114,   0,   0,   0, 166, 119,   0,   4,  45,   4,   1,   1, +  4,   4,   5,   1,   0,   6,   4,  61, 156, 213, 224,  76,   3,   4,   1, +  1,   1,   9,  16, 119,   4,   4,   0,  13,  76, 247, 247, 251, 135,  33, +247, 251, 247, 247, 251, 254,  33,   0,   4,   1,   0,   3,   4,   1,   7, +  0,   3, 251,   3, 247,   0,  15, 251, 247, 251, 247, 247, 251, 247, 247, +251,   7,   4,   4,   1,   5,  83,   0,  25, 119,   1,   6,   1,   4,   3, +  1,   1, 203,   3, 251,   0,  15, 247,   1, 247, 241, 239, 224, 213, 206, + 33,   1,   4,   4,   1,  77, 119,   0,   0,   0, 167, 119,   0,   3,  26, +  4,   1,   0,   5,   4,   0,   7,   1,   4,   1,   4,   1,   4,   4,   0, +  3,   1,   0,   5,   4,   4,   1,   4, 107,   0,  16, 119,   0,   5,  11, +  4,   4,   1,  51,   0,   3, 251,   0,  16, 247,   1, 247, 247, 251, 251, +247, 251,  58,   1,   4,   4,   1,   1,   4,   7,   4, 247,   4, 251,   7, +247,   3,   4,   0,   3,   1,  31,  98,   0,  25, 119,   0,  11,  52,   4, +  4,   1,   4,   1,  74,  95,  58,  33,   4,   0,   5,   1,   0,   8,   4, +  4,   1,   4,   1,   6, 119, 119,   0,   0, 168, 119,   0,   3,  73,  11, +  6,   0,   4,   4,   0,   4,   1,   4,   4,   1,   3,   4,   1,   1,   1, +  4,   4,   1,   1,  26,  17, 119,   1,  17,   3,   4,   0,   8,  33, 255, +247, 251, 247,   1, 251, 247,   3, 251,   0,   5, 247, 106,   1,   4,   1, +  0,   4,   4,   0,   4, 251, 247, 247, 251,   4, 247,   3, 251,   0,   4, +247, 247, 251, 156,   3,   1,   0,   3,   4,  45, 114,   0,  26, 119,   0, +  3,  16,   4,   1,   0,   4,   4,   0,   7,   1,   1,   4,   4,   1,   4, +  1,   0,   4,   4,   0,   5,   1,   4,  50, 119, 119,   0,   0,   0, 172, +119,   0,   5,  87,  41,   6,   7,   2,   0,   3,   4,   3,   1,   1,   4, +  1,   1,   3,   4,  18, 119,   1,  26,   3,   1,   0,  17,  12, 255, 251, +251, 247,  47,  58, 247, 251, 247, 251, 251, 167,   1,   4,   1,   1,   0, +  3,   4,   0,   3, 247, 251, 251,   0,   3, 247,   1, 251,   4, 247,   0, +  5, 251, 247, 247,  33,   4,   0,   3,   1,   1,  63,  27, 119,   1,  88, +  4,   4,   4,   1,   0,   4,   4,   4,   1,   1,   3,   4,   0,   4,   1, +  4,   4,  31,   3, 119,   0,   0, 177, 119,   0,  11,  77,  37,   7,   2, +  1,   1,   4,   4,   1,   1,  98,   0,  18, 119,   1,  41,   3,   4,   0, + 40,   1, 254, 251, 247, 251, 251,   4, 246, 247, 251, 251, 247, 230,   1, +  1,   4,   4,   1,   4,   4, 167, 247, 251, 251, 247, 247, 251, 251, 247, +251, 247, 254, 247, 247,   4,   1,   1,   4,  11, 107,  28, 119,   0,   8, + 88,   4,   4,   1,   1,   4,   1,   4,   3,   1,   0,   7,   4,   1,   4, +  4,   2,   4,  73,   0,   4, 119,   0,   0, 182, 119,   0,   4,  77,  37, + 31,  60,  20, 119,   0,   7,  60,   1,   1,   4,   1, 110, 251,   0,   3, +247,   0,  16,   1, 246, 251, 251, 247, 247, 255,   1,   4,   4,   1,   1, +  4,   1,  86, 247,   3, 251,   1, 247,   4, 251,   0,   4, 254, 241, 181, + 12,   4,   1,   1,  50,  31, 119,   0,  13,  52,   4,   4,   1,   1,   4, + 13,  27,  41,  56,  77, 107, 114,   0,   7, 119,   0,   0, 206, 119,   0, + 43,  88,   4,   1,   4,   1,   4,  19,  82, 192, 254,   1, 247, 251, 247, +251, 247, 255,  33,   4,   4,   1,   1,   4,   1,   4, 156, 167, 117,  64, + 33,  12,  12,   7,   4,   4,   1,   1,   4,   4,   1,   4,   4,  98,   0, + 33, 119,   1, 114,   1, 114,  16, 119,   0,   0, 207, 119,   0,  24,   4, +  4,   1,   1,   4,   4,   1,   1,   4,   4,  19,  76, 192, 255, 254, 255, + 58,   1,   1,   4,   4,   1,   4,   4,   7,   1,   1,   4,   1,   1,   6, +  4,   1,   1,   1,  52,  52, 119,   0,   0, 207, 119,   1,  41,   3,   4, +  0,   3,   1,   4,   4,   0,   3,   1,   1,   4,   3,   1,   0,   7,  19, + 30,   4,   1,   4,   1,   4,   0,   3,   1,   1,   4,   3,   1,   0,   7, +  4,   4,   1,   1,   4,   1,   1,   0,   4,   4,   1,  45,  53, 119,   0, +  0, 208, 119,   1,  37,   4,   4,   0,   5,   1,   4,   1,   4,   1,   0, +  4,   4,   1,   1,   4,   4,   0,  10,   5,   4,   4,   1,   1,   4,   1, +  4,   1,   1,   3,   4,   0,   6,   1,   1,   4,   1,  17,  83,  54, 119, +  0,   0, 209, 119,   0,   5,  88,  56,  31,   4,   4,   0,   3,   1,   1, +  4,   1,   1,   4,   4,   0,   8,   1,   4,   1,   1,  27,  98,  27,   1, +  4,   4,   0,   9,   5,  17,  31,  41,  56,  73,  77,  88, 107,   0,  56, +119,   0,   0, 213, 119,   0,   4, 107,  77,  52,  31,   6,   4,   0,   4, +  1,   1,   4,   5,   3, 119,   0,   4, 114,  88,  88, 107,  66, 119,   0, +  0, 218, 119,   0,   8, 107,  77,  50,  34,  13,   1,  11,  41,  74, 119, +  0,   1 +}; diff --git a/gui/gui-manager.cpp b/gui/gui-manager.cpp index 9b6cf5a0b6..20c6d3fa13 100644 --- a/gui/gui-manager.cpp +++ b/gui/gui-manager.cpp @@ -64,6 +64,8 @@ GuiManager::GuiManager() : _redrawStatus(kRedrawDisabled), _stateIsSaved(false),  	_width = _system->getOverlayWidth();  	_height = _system->getOverlayHeight(); +	_launched = false; +  	// Clear the cursor  	memset(_cursor, 0xFF, sizeof(_cursor)); diff --git a/gui/gui-manager.h b/gui/gui-manager.h index 4186a93ccb..26c8d6def9 100644 --- a/gui/gui-manager.h +++ b/gui/gui-manager.h @@ -98,6 +98,8 @@ public:  	 */  	bool checkScreenChange(); +	bool _launched; +  protected:  	enum RedrawStatus {  		kRedrawDisabled = 0, diff --git a/gui/launcher.cpp b/gui/launcher.cpp index 5abf0aba26..bae894cba1 100644 --- a/gui/launcher.cpp +++ b/gui/launcher.cpp @@ -683,6 +683,8 @@ LauncherDialog::LauncherDialog()  	// Create Load dialog  	_loadDialog = new SaveLoadChooser(_("Load game:"), _("Load"), false); + +	GUI::GuiManager::instance()._launched = true;  }  void LauncherDialog::selectTarget(const String &target) { diff --git a/gui/themes/translations.dat b/gui/themes/translations.datBinary files differ index a882cf2c0b..3a9804f663 100644 --- a/gui/themes/translations.dat +++ b/gui/themes/translations.dat diff --git a/po/cs_CZ.po b/po/cs_CZ.po index 56d37e7f8d..562f774de5 100644 --- a/po/cs_CZ.po +++ b/po/cs_CZ.po @@ -1,15 +1,15 @@  # Czech translation for ScummVM.  # Copyright (C) 2001-2015 The ScummVM Team  # This file is distributed under the same license as the ScummVM package. -# Zbynk Schwarz <zbynek.schwarz@gmail.com>, 2011-2013. +# Zbyněk Schwarz <zbynek.schwarz@gmail.com>, 2011-2013.  #  msgid ""  msgstr ""  "Project-Id-Version: ScummVM 1.7.0git\n"  "Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n" -"POT-Creation-Date: 2015-12-23 00:28+0000\n" -"PO-Revision-Date: 2015-07-26 18:51+0200\n" -"Last-Translator: Zbynk Schwarz <zbynek.schwarz@gmail.com>\n" +"POT-Creation-Date: 2015-12-24 13:36+0100\n" +"PO-Revision-Date: 2015-12-24 13:37+0100\n" +"Last-Translator: Zbyněk Schwarz <zbynek.schwarz@gmail.com>\n"  "Language-Team: \n"  "Language: Cesky\n"  "MIME-Version: 1.0\n" @@ -17,7 +17,7 @@ msgstr ""  "Content-Transfer-Encoding: 8bit\n"  "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"  "X-Poedit-SourceCharset: iso-8859-2\n" -"X-Generator: Poedit 1.8.3\n" +"X-Generator: Poedit 1.8.6\n"  "X-Poedit-Basepath: ..\n"  #: gui/about.cpp:94 @@ -27,32 +27,32 @@ msgstr "(sestaveno %s)"  #: gui/about.cpp:101  msgid "Features compiled in:" -msgstr "Zakompilovan funkce:" +msgstr "Zakompilované funkce:"  #: gui/about.cpp:110  msgid "Available engines:" -msgstr "Dostupn jdra:" +msgstr "Dostupná jádra:"  #: gui/browser.cpp:68 gui/browser_osx.mm:104  msgid "Show hidden files" -msgstr "Zobrazit skryt soubory" +msgstr "Zobrazit skryté soubory"  #: gui/browser.cpp:68  msgid "Show files marked with the hidden attribute" -msgstr "Zobrazit soubory s vlastnost skryt" +msgstr "Zobrazit soubory s vlastností skryté"  #: gui/browser.cpp:72  msgid "Go up" -msgstr "Jt nahoru" +msgstr "Jít nahoru"  #: gui/browser.cpp:72 gui/browser.cpp:74  msgid "Go to previous directory level" -msgstr "Jt na pedchoz rove adrese" +msgstr "Jít na předchozí úroveň adresáře"  #: gui/browser.cpp:74  msgctxt "lowres"  msgid "Go up" -msgstr "Jt nahoru" +msgstr "Jít nahoru"  #: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editrecorddialog.cpp:67  #: gui/filebrowser-dialog.cpp:64 gui/KeysDialog.cpp:43 gui/launcher.cpp:351 @@ -60,14 +60,14 @@ msgstr "Jt nahoru"  #: 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 gui/fluidsynth-dialog.cpp:152 -#: engines/engine.cpp:483 backends/platform/wii/options.cpp:48 +#: gui/themebrowser.cpp:55 gui/fluidsynth-dialog.cpp:152 engines/engine.cpp:483 +#: backends/platform/wii/options.cpp:48  #: backends/events/default/default-events.cpp:196  #: backends/events/default/default-events.cpp:218  #: engines/drascula/saveload.cpp:49 engines/parallaction/saveload.cpp:274  #: engines/scumm/dialogs.cpp:191 engines/sword1/control.cpp:865  msgid "Cancel" -msgstr "Zruit" +msgstr "Zrušit"  #: gui/browser.cpp:76 gui/browser_osx.mm:103 gui/chooser.cpp:47  #: gui/filebrowser-dialog.cpp:65 gui/themebrowser.cpp:56 @@ -75,35 +75,32 @@ msgid "Choose"  msgstr "Zvolit"  #: gui/editrecorddialog.cpp:58 -#, fuzzy  msgid "Author:"  msgstr "Autor:"  #: gui/editrecorddialog.cpp:59 gui/launcher.cpp:204  msgid "Name:" -msgstr "Jmno" +msgstr "Jméno"  #: gui/editrecorddialog.cpp:60 -#, fuzzy  msgid "Notes:" -msgstr "Poznmky:" +msgstr "Poznámky:"  #: gui/editrecorddialog.cpp:68 gui/predictivedialog.cpp:75  msgid "Ok" -msgstr "" +msgstr "Ok"  #: gui/filebrowser-dialog.cpp:49  msgid "Choose file for loading" -msgstr "" +msgstr "Zvolte soubor pro načtení"  #: gui/filebrowser-dialog.cpp:49  msgid "Enter filename for saving" -msgstr "" +msgstr "Zadejte název souboru pro uložení"  #: gui/filebrowser-dialog.cpp:132 -#, fuzzy  msgid "Do you really want to overwrite the file?" -msgstr "Opravdu chcete tento zznam smazat?" +msgstr "Opravdu chcete tento soubor přepsat?"  #: gui/filebrowser-dialog.cpp:132 gui/launcher.cpp:793 gui/launcher.cpp:941  #: gui/launcher.cpp:1000 gui/fluidsynth-dialog.cpp:217 @@ -130,27 +127,27 @@ msgstr "Ne"  #: engines/scumm/help.cpp:166 engines/scumm/help.cpp:192  #: engines/scumm/help.cpp:210  msgid "Close" -msgstr "Zavt" +msgstr "Zavřít"  #: gui/gui-manager.cpp:120  msgid "Mouse click" -msgstr "Kliknut my" +msgstr "Kliknutí myší"  #: gui/gui-manager.cpp:124 base/main.cpp:319  msgid "Display keyboard" -msgstr "Zobrazit klvesnici" +msgstr "Zobrazit klávesnici"  #: gui/gui-manager.cpp:128 base/main.cpp:323  msgid "Remap keys" -msgstr "Pemapovat klvesy" +msgstr "Přemapovat klávesy"  #: gui/gui-manager.cpp:131 base/main.cpp:326 engines/scumm/help.cpp:87  msgid "Toggle fullscreen" -msgstr "Pepnout celou obrazovku" +msgstr "Přepnout celou obrazovku"  #: gui/KeysDialog.h:36 gui/KeysDialog.cpp:145  msgid "Choose an action to map" -msgstr "Zvolte innost k mapovn" +msgstr "Zvolte činnost k mapování"  #: gui/KeysDialog.cpp:41  msgid "Map" @@ -178,25 +175,25 @@ msgstr "OK"  #: gui/KeysDialog.cpp:49  msgid "Select an action and click 'Map'" -msgstr "Zvolte innost a kliknte 'Mapovat'" +msgstr "Zvolte činnost a klikněte 'Mapovat'"  #: gui/KeysDialog.cpp:80 gui/KeysDialog.cpp:102 gui/KeysDialog.cpp:141  #, c-format  msgid "Associated key : %s" -msgstr "Piazen klvesa: %s" +msgstr "Přiřazená klávesa: %s"  #: gui/KeysDialog.cpp:82 gui/KeysDialog.cpp:104 gui/KeysDialog.cpp:143  #, c-format  msgid "Associated key : none" -msgstr "Piazen klvesa: dn" +msgstr "Přiřazená klávesa: žádná"  #: gui/KeysDialog.cpp:90  msgid "Please select an action" -msgstr "Prosm vyberte innost" +msgstr "Prosím vyberte činnost"  #: gui/KeysDialog.cpp:106  msgid "Press the key to associate" -msgstr "Zmknte klvesu pro piazen" +msgstr "Zmáčkněte klávesu pro přiřazení"  #: gui/launcher.cpp:193  msgid "Game" @@ -211,8 +208,8 @@ msgid ""  "Short game identifier used for referring to saved games and running the game "  "from the command line"  msgstr "" -"Krtk identifiktor her, pouvan jako odkaz k uloenm hrm a sputn " -"hry z pkazovho dku" +"Krátký identifikátor her, používaný jako odkaz k uloženým hrám a spuštění " +"hry z příkazového řádku"  #: gui/launcher.cpp:199  msgctxt "lowres" @@ -221,12 +218,12 @@ msgstr "ID:"  #: gui/launcher.cpp:204 gui/launcher.cpp:206 gui/launcher.cpp:207  msgid "Full title of the game" -msgstr "pln nzev hry" +msgstr "Úplný název hry"  #: gui/launcher.cpp:206  msgctxt "lowres"  msgid "Name:" -msgstr "Jmno:" +msgstr "Jméno:"  #: gui/launcher.cpp:210  msgid "Language:" @@ -236,13 +233,13 @@ msgstr "Jazyk:"  msgid ""  "Language of the game. This will not turn your Spanish game version into "  "English" -msgstr "Jazyk hry. Toto z va panlsk verze neudl Anglickou" +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  #: audio/null.cpp:41  msgid "<default>" -msgstr "<vchoz>" +msgstr "<výchozí>"  #: gui/launcher.cpp:222  msgid "Platform:" @@ -250,7 +247,7 @@ msgstr "Platforma:"  #: gui/launcher.cpp:222 gui/launcher.cpp:224 gui/launcher.cpp:225  msgid "Platform the game was originally designed for" -msgstr "Platforma, pro kterou byla hra pvodn vytvoena" +msgstr "Platforma, pro kterou byla hra původně vytvořena"  #: gui/launcher.cpp:224  msgctxt "lowres" @@ -259,7 +256,7 @@ msgstr "Platforma:"  #: gui/launcher.cpp:237  msgid "Engine" -msgstr "Jdro" +msgstr "Jádro"  #: gui/launcher.cpp:245 gui/options.cpp:1071 gui/options.cpp:1088  msgid "Graphics" @@ -271,12 +268,12 @@ msgstr "GFX"  #: gui/launcher.cpp:248  msgid "Override global graphic settings" -msgstr "Potlait globln nastaven obrazu" +msgstr "Potlačit globální nastavení obrazu"  #: gui/launcher.cpp:250  msgctxt "lowres"  msgid "Override global graphic settings" -msgstr "Potlait globln nastaven obrazu" +msgstr "Potlačit globální nastavení obrazu"  #: gui/launcher.cpp:257 gui/options.cpp:1094  msgid "Audio" @@ -284,12 +281,12 @@ msgstr "Zvuk"  #: gui/launcher.cpp:260  msgid "Override global audio settings" -msgstr "Potlait globln nastaven zvuku" +msgstr "Potlačit globální nastavení zvuku"  #: gui/launcher.cpp:262  msgctxt "lowres"  msgid "Override global audio settings" -msgstr "Potlait globln nastaven zvuku" +msgstr "Potlačit globální nastavení zvuku"  #: gui/launcher.cpp:271 gui/options.cpp:1099  msgid "Volume" @@ -302,12 +299,12 @@ msgstr "Hlasitost"  #: gui/launcher.cpp:276  msgid "Override global volume settings" -msgstr "Potlait globln nastaven hlasitosti" +msgstr "Potlačit globální nastavení hlasitosti"  #: gui/launcher.cpp:278  msgctxt "lowres"  msgid "Override global volume settings" -msgstr "Potlait globln nastaven hlasitosti" +msgstr "Potlačit globální nastavení hlasitosti"  #: gui/launcher.cpp:286 gui/options.cpp:1109  msgid "MIDI" @@ -315,12 +312,12 @@ msgstr "MIDI"  #: gui/launcher.cpp:289  msgid "Override global MIDI settings" -msgstr "Potlait globln nastaven MIDI" +msgstr "Potlačit globální nastavení MIDI"  #: gui/launcher.cpp:291  msgctxt "lowres"  msgid "Override global MIDI settings" -msgstr "Potlait globln nastaven MIDI" +msgstr "Potlačit globální nastavení MIDI"  #: gui/launcher.cpp:300 gui/options.cpp:1115  msgid "MT-32" @@ -328,12 +325,12 @@ msgstr "MT-32"  #: gui/launcher.cpp:303  msgid "Override global MT-32 settings" -msgstr "Potlait globln nastaven MT-32" +msgstr "Potlačit globální nastavení MT-32"  #: gui/launcher.cpp:305  msgctxt "lowres"  msgid "Override global MT-32 settings" -msgstr "Potlait globln nastaven MT-32" +msgstr "Potlačit globální nastavení MT-32"  #: gui/launcher.cpp:314 gui/options.cpp:1122  msgid "Paths" @@ -355,30 +352,30 @@ msgstr "Cesta Hry:"  #: gui/launcher.cpp:330 gui/options.cpp:1148  msgid "Extra Path:" -msgstr "Dodaten Cesta:" +msgstr "Dodatečná Cesta:"  #: gui/launcher.cpp:330 gui/launcher.cpp:332 gui/launcher.cpp:333  msgid "Specifies path to additional data used by the game" -msgstr "Stanov cestu pro dodaten data pouit ve he" +msgstr "Stanoví cestu pro dodatečná data použitá ve hře"  #: gui/launcher.cpp:332 gui/options.cpp:1150  msgctxt "lowres"  msgid "Extra Path:" -msgstr "Dodaten Cesta:" +msgstr "Dodatečná Cesta:"  #: gui/launcher.cpp:339 gui/options.cpp:1132  msgid "Save Path:" -msgstr "Cesta pro uloen:" +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  msgid "Specifies where your saved games are put" -msgstr "Stanovuje, kam jsou umstny vae uloen hry" +msgstr "Stanovuje, kam jsou umístěny vaše uložené hry"  #: gui/launcher.cpp:341 gui/options.cpp:1134  msgctxt "lowres"  msgid "Save Path:" -msgstr "Cesta pro uloen:" +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 @@ -388,13 +385,13 @@ msgstr "Cesta pro uloen:"  #: gui/options.cpp:1440  msgctxt "path"  msgid "None" -msgstr "dn" +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  #: backends/platform/wii/options.cpp:56  msgid "Default" -msgstr "Vchoz" +msgstr "Výchozí"  #: gui/launcher.cpp:510 gui/options.cpp:1434  msgid "Select SoundFont" @@ -402,27 +399,27 @@ msgstr "Vybrat SoundFont"  #: gui/launcher.cpp:529 gui/launcher.cpp:682  msgid "Select directory with game data" -msgstr "Vyberte adres s daty hry" +msgstr "Vyberte adresář s daty hry"  #: gui/launcher.cpp:547  msgid "Select additional game directory" -msgstr "Vyberte dodaten adres hry" +msgstr "Vyberte dodatečný adresář hry"  #: gui/launcher.cpp:559 gui/options.cpp:1377  msgid "Select directory for saved games" -msgstr "Vyberte adres pro uloen hry" +msgstr "Vyberte adresář pro uložené hry"  #: gui/launcher.cpp:586  msgid "This game ID is already taken. Please choose another one." -msgstr "Toto ID hry je u zabran. Vyberte si, prosm, jin." +msgstr "Toto ID hry je už zabrané. Vyberte si, prosím, jiné."  #: gui/launcher.cpp:626 engines/dialogs.cpp:111  msgid "~Q~uit" -msgstr "~U~konit" +msgstr "~U~končit"  #: gui/launcher.cpp:626 backends/platform/sdl/macosx/appmenu_osx.mm:106  msgid "Quit ScummVM" -msgstr "Ukonit ScummVM" +msgstr "Ukončit ScummVM"  #: gui/launcher.cpp:627  msgid "A~b~out..." @@ -438,7 +435,7 @@ msgstr "~V~olby..."  #: gui/launcher.cpp:628  msgid "Change global ScummVM options" -msgstr "Zmnit globln volby ScummVM" +msgstr "Změnit globální volby ScummVM"  #: gui/launcher.cpp:630  msgid "~S~tart" @@ -450,19 +447,19 @@ msgstr "Spustit zvolenou hru"  #: gui/launcher.cpp:633  msgid "~L~oad..." -msgstr "~N~ahrt..." +msgstr "~N~ahrát..."  #: gui/launcher.cpp:633  msgid "Load saved game for selected game" -msgstr "Nahrt uloenou pozici pro zvolenou hru" +msgstr "Nahrát uloženou pozici pro zvolenou hru"  #: gui/launcher.cpp:638  msgid "~A~dd Game..." -msgstr "~P~idat hru..." +msgstr "~P~řidat hru..."  #: gui/launcher.cpp:638 gui/launcher.cpp:645  msgid "Hold Shift for Mass Add" -msgstr "Podrte Shift pro Hromadn Pidn" +msgstr "Podržte Shift pro Hromadné Přidání"  #: gui/launcher.cpp:640  msgid "~E~dit Game..." @@ -470,7 +467,7 @@ msgstr "~U~pravit Hru..."  #: gui/launcher.cpp:640 gui/launcher.cpp:647  msgid "Change game options" -msgstr "Zmnit volby hry" +msgstr "Změnit volby hry"  #: gui/launcher.cpp:642  msgid "~R~emove Game" @@ -478,12 +475,12 @@ msgstr "~O~dstranit Hru"  #: gui/launcher.cpp:642 gui/launcher.cpp:649  msgid "Remove game from the list. The game data files stay intact" -msgstr "Odstranit hru ze seznamu. Hern data zstanou zachovna" +msgstr "Odstranit hru ze seznamu. Herní data zůstanou zachována"  #: gui/launcher.cpp:645  msgctxt "lowres"  msgid "~A~dd Game..." -msgstr "~P~idat hru..." +msgstr "~P~řidat hru..."  #: gui/launcher.cpp:647  msgctxt "lowres" @@ -507,7 +504,7 @@ msgstr "Hledat:"  #: engines/mohawk/myst.cpp:245 engines/mohawk/riven.cpp:718  #: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:600  msgid "Load game:" -msgstr "Nahrt hru:" +msgstr "Nahrát hru:"  #: gui/launcher.cpp:685 engines/dialogs.cpp:115  #: backends/platform/wince/CEActionsPocket.cpp:267 @@ -516,23 +513,23 @@ msgstr "Nahrt hru:"  #: engines/mohawk/riven.cpp:718 engines/pegasus/pegasus.cpp:353  #: engines/scumm/dialogs.cpp:189 engines/tsage/scenes.cpp:600  msgid "Load" -msgstr "Nahrt" +msgstr "Nahrát"  #: gui/launcher.cpp:792  msgid ""  "Do you really want to run the mass game detector? This could potentially add "  "a huge number of games."  msgstr "" -"Opravdu chcete spustit hromadnou detekci her? Toto by mohlo potenciln " -"pidat velkou spoustu her. " +"Opravdu chcete spustit hromadnou detekci her? Toto by mohlo potenciálně " +"přidat velkou spoustu her. "  #: gui/launcher.cpp:841  msgid "ScummVM couldn't open the specified directory!" -msgstr "ScummVM nemohl tento adres otevt!" +msgstr "ScummVM nemohl tento adresář otevřít!"  #: gui/launcher.cpp:853  msgid "ScummVM could not find any game in the specified directory!" -msgstr "ScummVM nemohl v zadanm adresi najt dnou hru!" +msgstr "ScummVM nemohl v zadaném adresáři najít žádnou hru!"  #: gui/launcher.cpp:867  msgid "Pick the game:" @@ -540,68 +537,66 @@ msgstr "Vybrat hru:"  #: gui/launcher.cpp:941  msgid "Do you really want to remove this game configuration?" -msgstr "Opravdu chcete odstranit nastaven tto hry?" +msgstr "Opravdu chcete odstranit nastavení této hry?"  #: gui/launcher.cpp:999  msgid "Do you want to load saved game?" -msgstr "Chcete nast uloenou pozici?" +msgstr "Chcete načíst uloženou pozici?"  #: gui/launcher.cpp:1048  msgid "This game does not support loading games from the launcher." -msgstr "Tato hra nepodporuje spoutn her ze spoute" +msgstr "Tato hra nepodporuje spouštění her ze spouštěče"  #: gui/launcher.cpp:1052  msgid "ScummVM could not find any engine capable of running the selected game!" -msgstr "ScummVM nemohl najt dn jdro schopn vybranou hru spustit!" +msgstr "ScummVM nemohl najít žádné jádro schopné vybranou hru spustit!"  #: gui/launcher.cpp:1159  msgid "Mass Add..." -msgstr "Hromadn Pidn..." +msgstr "Hromadné Přidání..."  #: gui/launcher.cpp:1161  msgid "Record..." -msgstr "Nahrt..." +msgstr "Nahrát..."  #: gui/massadd.cpp:79 gui/massadd.cpp:82  msgid "... progress ..." -msgstr "... prbh ..." +msgstr "... průběh ..."  #: gui/massadd.cpp:259  msgid "Scan complete!" -msgstr "Hledn dokoneno!" +msgstr "Hledání dokončeno!"  #: gui/massadd.cpp:262  #, c-format  msgid "Discovered %d new games, ignored %d previously added games." -msgstr "Objeveno %d novch her, ignorovno %d dve pidanch her." +msgstr "Objeveno %d nových her, ignorováno %d dříve přidaných her."  #: gui/massadd.cpp:266  #, c-format  msgid "Scanned %d directories ..." -msgstr "Prohledno %d adres..." +msgstr "Prohledáno %d adresářů..."  #: gui/massadd.cpp:269  #, c-format  msgid "Discovered %d new games, ignored %d previously added games ..." -msgstr "Objeveno %d novch her, ignorovno %d dve pidanch her ..." +msgstr "Objeveno %d nových her, ignorováno %d dříve přidaných her ..."  #: gui/onscreendialog.cpp:101 gui/onscreendialog.cpp:103  msgid "Stop" -msgstr "" +msgstr "Zastavit"  #: gui/onscreendialog.cpp:106  msgid "Edit record description" -msgstr "" +msgstr "Upravit popis záznamu"  #: gui/onscreendialog.cpp:108 -#, fuzzy  msgid "Switch to Game" -msgstr "Pepnout" +msgstr "Přepnout do hry"  #: gui/onscreendialog.cpp:110 -#, fuzzy  msgid "Fast replay" -msgstr "Rychl reim" +msgstr "Rychlé přehrávání"  #: gui/options.cpp:85  msgid "Never" @@ -609,19 +604,19 @@ msgstr "Nikdy"  #: gui/options.cpp:85  msgid "every 5 mins" -msgstr "Kadch 5 min" +msgstr "Každých 5 min"  #: gui/options.cpp:85  msgid "every 10 mins" -msgstr "Kadch 10 min" +msgstr "Každých 10 min"  #: gui/options.cpp:85  msgid "every 15 mins" -msgstr "Kadch 15 min" +msgstr "Každých 15 min"  #: gui/options.cpp:85  msgid "every 30 mins" -msgstr "Kadch 30 min" +msgstr "Každých 30 min"  #: gui/options.cpp:87  msgid "8 kHz" @@ -647,110 +642,110 @@ msgstr "48 kHz"  #: gui/options.cpp:649 gui/options.cpp:857  msgctxt "soundfont"  msgid "None" -msgstr "dn" +msgstr "Žádné"  #: gui/options.cpp:389  msgid "Failed to apply some of the graphic options changes:" -msgstr "Nelze pout nkter zmny monost grafiky:" +msgstr "Nelze použít některé změny možností grafiky:"  #: gui/options.cpp:401  msgid "the video mode could not be changed." -msgstr "reim obrazu nemohl bt zmnn." +msgstr "režim obrazu nemohl být změněn."  #: gui/options.cpp:407  msgid "the fullscreen setting could not be changed" -msgstr "nastaven cel obrazovky nemohlo bt zmnno" +msgstr "nastavení celé obrazovky nemohlo být změněno"  #: gui/options.cpp:413  msgid "the aspect ratio setting could not be changed" -msgstr "nastaven pomru stran nemohlo bt zmnno" +msgstr "nastavení poměru stran nemohlo být změněno"  #: gui/options.cpp:732  msgid "Graphics mode:" -msgstr "Reim obrazu:" +msgstr "Režim obrazu:"  #: gui/options.cpp:746  msgid "Render mode:" -msgstr "Reim vykreslen:" +msgstr "Režim vykreslení:"  #: gui/options.cpp:746 gui/options.cpp:747  msgid "Special dithering modes supported by some games" -msgstr "Speciln reimy chvn podporovan nktermi hrami" +msgstr "Speciální režimy chvění podporované některými hrami"  #: gui/options.cpp:758  #: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2313  msgid "Fullscreen mode" -msgstr "Reim cel obrazovky" +msgstr "Režim celé obrazovky"  #: gui/options.cpp:761  msgid "Aspect ratio correction" -msgstr "Korekce pomru stran" +msgstr "Korekce poměru stran"  #: gui/options.cpp:761  msgid "Correct aspect ratio for 320x200 games" -msgstr "Korigovat pomr stran pro hry 320x200" +msgstr "Korigovat poměr stran pro hry 320x200"  #: gui/options.cpp:769  msgid "Preferred Device:" -msgstr "Prioritn Zazen:" +msgstr "Prioritní Zařízení:"  #: gui/options.cpp:769  msgid "Music Device:" -msgstr "Hudebn zazen" +msgstr "Hudební zařízení"  #: gui/options.cpp:769 gui/options.cpp:771  msgid "Specifies preferred sound device or sound card emulator" -msgstr "Stanov prioritn zvukov zazen nebo emultor zvukov karty" +msgstr "Stanoví prioritní zvukové zařízení nebo emulátor zvukové karty"  #: gui/options.cpp:769 gui/options.cpp:771 gui/options.cpp:772  msgid "Specifies output sound device or sound card emulator" -msgstr "Stanov vstupn zvukov zazen nebo emultor zvukov karty" +msgstr "Stanoví výstupní zvukové zařízení nebo emulátor zvukové karty"  #: gui/options.cpp:771  msgctxt "lowres"  msgid "Preferred Dev.:" -msgstr "Prioritn Za.:" +msgstr "Prioritní Zař.:"  #: gui/options.cpp:771  msgctxt "lowres"  msgid "Music Device:" -msgstr "Hudebn zazen" +msgstr "Hudební zařízení"  #: gui/options.cpp:798  msgid "AdLib emulator:" -msgstr "AdLib emultor" +msgstr "AdLib emulátor"  #: gui/options.cpp:798 gui/options.cpp:799  msgid "AdLib is used for music in many games" -msgstr "AdLib se pouv pro hudbu v mnoha hrch" +msgstr "AdLib se používá pro hudbu v mnoha hrách"  #: gui/options.cpp:809  msgid "Output rate:" -msgstr "Vstup. frekvence:" +msgstr "Výstup. frekvence:"  #: gui/options.cpp:809 gui/options.cpp:810  msgid ""  "Higher value specifies better sound quality but may be not supported by your "  "soundcard"  msgstr "" -"Vy hodnota zpsob lep kvalitu zvuku, ale nemus bt podporovna Vai " +"Vyšší hodnota způsobí lepší kvalitu zvuku, ale nemusí být podporována Vaši "  "zvukovou kartou"  #: gui/options.cpp:820  msgid "GM Device:" -msgstr "GM Zazen:" +msgstr "GM Zařízení:"  #: gui/options.cpp:820  msgid "Specifies default sound device for General MIDI output" -msgstr "Stanov vchoz zvukov zazen pro vstup General MIDI" +msgstr "Stanoví výchozí zvukové zařízení pro výstup General MIDI"  #: gui/options.cpp:831  msgid "Don't use General MIDI music" -msgstr "Nepouvat hudbu General MIDI" +msgstr "Nepoužívat hudbu General MIDI"  #: gui/options.cpp:842 gui/options.cpp:908  msgid "Use first available device" -msgstr "Pout prvn dostupn zazen" +msgstr "Použít první dostupné zařízení"  #: gui/options.cpp:854  msgid "SoundFont:" @@ -759,7 +754,7 @@ msgstr "SoundFont:"  #: gui/options.cpp:854 gui/options.cpp:856 gui/options.cpp:857  msgid "SoundFont is supported by some audio cards, FluidSynth and Timidity"  msgstr "" -"SoundFont je podporovn nktermi zvukovmi kartami, FluidSynth a Timidity" +"SoundFont je podporován některými zvukovými kartami, FluidSynth a Timidity"  #: gui/options.cpp:856  msgctxt "lowres" @@ -768,69 +763,69 @@ msgstr "SoundFont:"  #: gui/options.cpp:862  msgid "Mixed AdLib/MIDI mode" -msgstr "Smen reim AdLib/MIDI" +msgstr "Smíšený režim AdLib/MIDI"  #: gui/options.cpp:862  msgid "Use both MIDI and AdLib sound generation" -msgstr "Pout ob zvukov generace MIDI a AdLib" +msgstr "Použít obě zvukové generace MIDI a AdLib"  #: gui/options.cpp:865  msgid "MIDI gain:" -msgstr "Zeslen MIDI:" +msgstr "Zesílení MIDI:"  #: gui/options.cpp:872  msgid "FluidSynth Settings" -msgstr "Nastaven FluidSynth" +msgstr "Nastavení FluidSynth"  #: gui/options.cpp:879  msgid "MT-32 Device:" -msgstr "Zazen MT-32:" +msgstr "Zařízení MT-32:"  #: gui/options.cpp:879  msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"  msgstr "" -"Stanov vchoz zvukov vstupn zazen pro Roland MT-32/LAPC1/CM32l/CM64" +"Stanoví výchozí zvukové výstupní zařízení pro Roland MT-32/LAPC1/CM32l/CM64"  #: gui/options.cpp:884  msgid "True Roland MT-32 (disable GM emulation)" -msgstr "Opravdov Roland MT-32 (vypne GM emulaci)" +msgstr "Opravdový Roland MT-32 (vypne GM emulaci)"  #: gui/options.cpp:884 gui/options.cpp:886  msgid ""  "Check if you want to use your real hardware Roland-compatible sound device "  "connected to your computer"  msgstr "" -"Zakrtnte, pokud chcete pout prav hardwarov zazen kompatibiln s " -"Roland, pipojen k vaemu potai" +"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  msgctxt "lowres"  msgid "True Roland MT-32 (no GM emulation)" -msgstr "Opravdov Roland MT-32 (dn GM emulace)" +msgstr "Opravdový Roland MT-32 (žádná GM emulace)"  #: gui/options.cpp:889  msgid "Roland GS Device (enable MT-32 mappings)" -msgstr "Zazen Roland GS (zapne mapovn MT-32)" +msgstr "Zařízení Roland GS (zapne mapování MT-32)"  #: gui/options.cpp:889  msgid ""  "Check if you want to enable patch mappings to emulate an MT-32 on a Roland "  "GS device"  msgstr "" -"Zakrtnte, pokud chcete povolit zplaty mapovn umoujc emulovat MT-32 " -"na zazen Roland GS" +"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  msgid "Don't use Roland MT-32 music" -msgstr "Nepouvat hudbu Roland MT-32" +msgstr "Nepoužívat hudbu Roland MT-32"  #: gui/options.cpp:925  msgid "Text and Speech:" -msgstr "Text a e" +msgstr "Text a Řeč"  #: gui/options.cpp:929 gui/options.cpp:939  msgid "Speech" -msgstr "e" +msgstr "Řeč"  #: gui/options.cpp:930 gui/options.cpp:940  msgid "Subtitles" @@ -842,16 +837,16 @@ msgstr "Oba"  #: gui/options.cpp:933  msgid "Subtitle speed:" -msgstr "Rychlost titulk:" +msgstr "Rychlost titulků:"  #: gui/options.cpp:935  msgctxt "lowres"  msgid "Text and Speech:" -msgstr "Text a e:" +msgstr "Text a Řeč:"  #: gui/options.cpp:939  msgid "Spch" -msgstr "e" +msgstr "Řeč"  #: gui/options.cpp:940  msgid "Subs" @@ -864,12 +859,12 @@ msgstr "Oba"  #: gui/options.cpp:941  msgid "Show subtitles and play speech" -msgstr "Zobrazit titulky a pehrvat e" +msgstr "Zobrazit titulky a přehrávat řeč"  #: gui/options.cpp:943  msgctxt "lowres"  msgid "Subtitle speed:" -msgstr "Rychlost titulk" +msgstr "Rychlost titulků"  #: gui/options.cpp:959  msgid "Music volume:" @@ -882,29 +877,29 @@ msgstr "Hlasitost hudby"  #: gui/options.cpp:968  msgid "Mute All" -msgstr "Ztlumit Ve" +msgstr "Ztlumit Vše"  #: gui/options.cpp:971  msgid "SFX volume:" -msgstr "Hlasitost zvuk" +msgstr "Hlasitost zvuků"  #: gui/options.cpp:971 gui/options.cpp:973 gui/options.cpp:974  msgid "Special sound effects volume" -msgstr "Hlasitost specilnch zvukovch efekt" +msgstr "Hlasitost speciálních zvukových efektů"  #: gui/options.cpp:973  msgctxt "lowres"  msgid "SFX volume:" -msgstr "Hlasitost zvuk" +msgstr "Hlasitost zvuků"  #: gui/options.cpp:981  msgid "Speech volume:" -msgstr "Hlasitost ei" +msgstr "Hlasitost řeči"  #: gui/options.cpp:983  msgctxt "lowres"  msgid "Speech volume:" -msgstr "Hlasitost ei" +msgstr "Hlasitost řeči"  #: gui/options.cpp:1140  msgid "Theme Path:" @@ -917,25 +912,25 @@ msgstr "Cesta ke Vzhledu:"  #: gui/options.cpp:1148 gui/options.cpp:1150 gui/options.cpp:1151  msgid "Specifies path to additional data used by all games or ScummVM" -msgstr "Stanov cestu k dodatenm datm pouvan vemi hrami nebo ScummVM" +msgstr "Stanoví cestu k dodatečným datům používaná všemi hrami nebo ScummVM"  #: gui/options.cpp:1157  msgid "Plugins Path:" -msgstr "Cesta k Pluginm:" +msgstr "Cesta k Pluginům:"  #: gui/options.cpp:1159  msgctxt "lowres"  msgid "Plugins Path:" -msgstr "Cesta k Pluginm:" +msgstr "Cesta k Pluginům:"  #: gui/options.cpp:1168 gui/fluidsynth-dialog.cpp:138  msgid "Misc" -msgstr "Rzn" +msgstr "Různé"  #: gui/options.cpp:1170  msgctxt "lowres"  msgid "Misc" -msgstr "Rzn" +msgstr "Různé"  #: gui/options.cpp:1172  msgid "Theme:" @@ -943,20 +938,20 @@ msgstr "Vzhled:"  #: gui/options.cpp:1176  msgid "GUI Renderer:" -msgstr "GUI Vykreslova:" +msgstr "GUI Vykreslovač:"  #: gui/options.cpp:1188  msgid "Autosave:" -msgstr "Autoukldn:" +msgstr "Autoukládání:"  #: gui/options.cpp:1190  msgctxt "lowres"  msgid "Autosave:" -msgstr "Autoukldn:" +msgstr "Autoukládání:"  #: gui/options.cpp:1198  msgid "Keys" -msgstr "Klvesy" +msgstr "Klávesy"  #: gui/options.cpp:1205  msgid "GUI Language:" @@ -968,58 +963,57 @@ msgstr "Jazyk GUI ScummVM"  #: gui/options.cpp:1364  msgid "You have to restart ScummVM before your changes will take effect." -msgstr "Pro pouit tchto nastaven muste restartovat ScummVM." +msgstr "Pro použití těchto nastavení musíte restartovat ScummVM."  #: gui/options.cpp:1384  msgid "The chosen directory cannot be written to. Please select another one." -msgstr "Do zvolenho adrese nelze zapisovat. Vyberte, prosm, jin." +msgstr "Do zvoleného adresáře nelze zapisovat. Vyberte, prosím, jiný."  #: gui/options.cpp:1393  msgid "Select directory for GUI themes" -msgstr "Vyberte adres pro vhledy GUI" +msgstr "Vyberte adresář pro vhledy GUI"  #: gui/options.cpp:1403  msgid "Select directory for extra files" -msgstr "Vyberte adres pro dodaten soubory" +msgstr "Vyberte adresář pro dodatečné soubory"  #: gui/options.cpp:1414  msgid "Select directory for plugins" -msgstr "Vyberte adres pro zsuvn moduly" +msgstr "Vyberte adresář pro zásuvné moduly"  #: gui/options.cpp:1467  msgid ""  "The theme you selected does not support your current language. If you want "  "to use this theme you need to switch to another language first."  msgstr "" -"Vzhled, kter jste zvolili, nepodporuje V souasn jazyk. Pokud chcete " -"tento vzhled pout, muste nejdve pepnout na jin jazyk." +"Vzhled, který jste zvolili, nepodporuje Váš současný jazyk. Pokud chcete " +"tento vzhled použít, musíte nejdříve přepnout na jiný jazyk."  #. I18N: You must leave "#" as is, only word 'next' is translatable  #: gui/predictivedialog.cpp:87  msgid "#  next" -msgstr "" +msgstr "# další"  #: gui/predictivedialog.cpp:88  msgid "add" -msgstr "" +msgstr "přidat"  #: gui/predictivedialog.cpp:92 -#, fuzzy  msgid "Delete char" -msgstr "Smazat" +msgstr "Smazat znak"  #: gui/predictivedialog.cpp:96  msgid "<" -msgstr "" +msgstr "<"  #. I18N: Pre means 'Predictive', leave '*' as is  #: gui/predictivedialog.cpp:98  msgid "*  Pre" -msgstr "" +msgstr "*  Prediktivní"  #: gui/recorderdialog.cpp:64  msgid "Recorder or Playback Gameplay" -msgstr "Nahrvat nebo pehrt hru" +msgstr "Nahrávat nebo přehrát hru"  #: gui/recorderdialog.cpp:69 gui/recorderdialog.cpp:156  #: gui/saveload-dialog.cpp:220 gui/saveload-dialog.cpp:276 @@ -1028,11 +1022,11 @@ msgstr "Smazat"  #: gui/recorderdialog.cpp:71  msgid "Record" -msgstr "Nahrt" +msgstr "Nahrát"  #: gui/recorderdialog.cpp:72  msgid "Playback" -msgstr "Pehrt" +msgstr "Přehrát"  #: gui/recorderdialog.cpp:74  msgid "Edit" @@ -1046,16 +1040,15 @@ msgstr "Autor:"  #: gui/recorderdialog.cpp:87 gui/recorderdialog.cpp:244  #: gui/recorderdialog.cpp:254  msgid "Notes: " -msgstr "Poznmky:" +msgstr "Poznámky:"  #: gui/recorderdialog.cpp:155  msgid "Do you really want to delete this record?" -msgstr "Opravdu chcete tento zznam smazat?" +msgstr "Opravdu chcete tento záznam smazat?"  #: gui/recorderdialog.cpp:174 -#, fuzzy  msgid "Unknown Author" -msgstr "Neznm chyba" +msgstr "Neznámý autor"  #: gui/saveload-dialog.cpp:167  msgid "List view" @@ -1063,23 +1056,23 @@ msgstr "Seznam"  #: gui/saveload-dialog.cpp:168  msgid "Grid view" -msgstr "Mka" +msgstr "Mřížka"  #: gui/saveload-dialog.cpp:211 gui/saveload-dialog.cpp:360  msgid "No date saved" -msgstr "Neuloena dn data" +msgstr "Neuložena žádná data"  #: gui/saveload-dialog.cpp:212 gui/saveload-dialog.cpp:361  msgid "No time saved" -msgstr "dn uloen as" +msgstr "Žádný uložený čas"  #: gui/saveload-dialog.cpp:213 gui/saveload-dialog.cpp:362  msgid "No playtime saved" -msgstr "dn uloen doba hran" +msgstr "Žádná uložená doba hraní"  #: gui/saveload-dialog.cpp:275  msgid "Do you really want to delete this saved game?" -msgstr "Opravdu chcete tuto uloenou hru vymazat" +msgstr "Opravdu chcete tuto uloženou hru vymazat"  #: gui/saveload-dialog.cpp:385 gui/saveload-dialog.cpp:884  msgid "Date: " @@ -1087,35 +1080,35 @@ msgstr "Datum:"  #: gui/saveload-dialog.cpp:389 gui/saveload-dialog.cpp:890  msgid "Time: " -msgstr "as:" +msgstr "Čas:"  #: gui/saveload-dialog.cpp:395 gui/saveload-dialog.cpp:898  msgid "Playtime: " -msgstr "Doba hran:" +msgstr "Doba hraní:"  #: gui/saveload-dialog.cpp:408 gui/saveload-dialog.cpp:496  msgid "Untitled savestate" -msgstr "Bezejmenn uloen stav" +msgstr "Bezejmenný uložený stav"  #: gui/saveload-dialog.cpp:548  msgid "Next" -msgstr "Dal" +msgstr "Další"  #: gui/saveload-dialog.cpp:551  msgid "Prev" -msgstr "Pedchoz" +msgstr "Předchozí"  #: gui/saveload-dialog.cpp:748  msgid "New Save" -msgstr "Nov uloen pozice" +msgstr "Nová uložená pozice"  #: gui/saveload-dialog.cpp:748  msgid "Create a new save game" -msgstr "Vytvoit novou uloenou hru." +msgstr "Vytvořit novou uloženou hru."  #: gui/saveload-dialog.cpp:877  msgid "Name: " -msgstr "Nzev:" +msgstr "Název:"  #: gui/saveload-dialog.cpp:949  #, c-format @@ -1128,32 +1121,32 @@ msgstr "Vyberte Vzhled"  #: gui/ThemeEngine.cpp:347  msgid "Disabled GFX" -msgstr "GFX zakzno" +msgstr "GFX zakázáno"  #: gui/ThemeEngine.cpp:347  msgctxt "lowres"  msgid "Disabled GFX" -msgstr "GFX zakzno" +msgstr "GFX zakázáno"  #: gui/ThemeEngine.cpp:348  msgid "Standard Renderer" -msgstr "Standardn Vykreslova" +msgstr "Standardní Vykreslovač"  #: gui/ThemeEngine.cpp:348 engines/scumm/dialogs.cpp:663  msgid "Standard" -msgstr "Standardn" +msgstr "Standardní"  #: gui/ThemeEngine.cpp:350  msgid "Antialiased Renderer" -msgstr "Vykreslova s vyhlazenmi hranami" +msgstr "Vykreslovač s vyhlazenými hranami"  #: gui/ThemeEngine.cpp:350  msgid "Antialiased" -msgstr "S vyhlazenmi hranami" +msgstr "S vyhlazenými hranami"  #: gui/widget.cpp:323 gui/widget.cpp:325 gui/widget.cpp:331 gui/widget.cpp:333  msgid "Clear value" -msgstr "Vyistit hodnotu" +msgstr "Vyčistit hodnotu"  #: gui/fluidsynth-dialog.cpp:68  msgid "Reverb" @@ -1161,23 +1154,23 @@ msgstr "Dozvuk"  #: gui/fluidsynth-dialog.cpp:70 gui/fluidsynth-dialog.cpp:102  msgid "Active" -msgstr "Aktivn" +msgstr "Aktivní"  #: gui/fluidsynth-dialog.cpp:72  msgid "Room:" -msgstr "Mstnost:" +msgstr "Místnost:"  #: gui/fluidsynth-dialog.cpp:79  msgid "Damp:" -msgstr "Tlumen:" +msgstr "Tlumení:"  #: gui/fluidsynth-dialog.cpp:86  msgid "Width:" -msgstr "ka:" +msgstr "Šířka:"  #: gui/fluidsynth-dialog.cpp:93 gui/fluidsynth-dialog.cpp:111  msgid "Level:" -msgstr "rove:" +msgstr "Úroveň:"  #: gui/fluidsynth-dialog.cpp:100  msgid "Chorus" @@ -1205,7 +1198,7 @@ msgstr "Sinus"  #: gui/fluidsynth-dialog.cpp:136  msgid "Triangle" -msgstr "Trojhrlnk" +msgstr "Trojúhrlník"  #: gui/fluidsynth-dialog.cpp:140  msgid "Interpolation:" @@ -1213,19 +1206,19 @@ msgstr "Interpolace:"  #: gui/fluidsynth-dialog.cpp:143  msgid "None (fastest)" -msgstr "dn (Nejrychlej)" +msgstr "Žádná (Nejrychlejší)"  #: gui/fluidsynth-dialog.cpp:144  msgid "Linear" -msgstr "Linern" +msgstr "Lineární"  #: gui/fluidsynth-dialog.cpp:145  msgid "Fourth-order" -msgstr "Interpolace tvrtho du" +msgstr "Interpolace čtvrtého řádu"  #: gui/fluidsynth-dialog.cpp:146  msgid "Seventh-order" -msgstr "Interpolace sedmho du" +msgstr "Interpolace sedmého řádu"  #: gui/fluidsynth-dialog.cpp:150  msgid "Reset" @@ -1233,19 +1226,19 @@ msgstr "Resetovat"  #: gui/fluidsynth-dialog.cpp:150  msgid "Reset all FluidSynth settings to their default values." -msgstr "Resetovat veker nastaven FludSynth n ajejich vchoz hodnoty." +msgstr "Resetovat veškerá nastavení FludSynth n ajejich výchozí hodnoty."  #: gui/fluidsynth-dialog.cpp:217  msgid ""  "Do you really want to reset all FluidSynth settings to their default values?"  msgstr "" -"Opravdu chcete resetovat veker nastaven FluidSynth na jejich vchoz " +"Opravdu chcete resetovat veškerá nastavení FluidSynth na jejich výchozí "  "hodnoty?"  #: base/main.cpp:228  #, c-format  msgid "Engine does not support debug level '%s'" -msgstr "Jdro nepodporuje rove ladn '%s'" +msgstr "Jádro nepodporuje úroveň ladění '%s'"  #: base/main.cpp:306  msgid "Menu" @@ -1255,7 +1248,7 @@ msgstr "Menu"  #: backends/platform/wince/CEActionsPocket.cpp:45  #: backends/platform/wince/CEActionsSmartphone.cpp:46  msgid "Skip" -msgstr "Peskoit" +msgstr "Přeskočit"  #: base/main.cpp:312 backends/platform/symbian/src/SymbianActions.cpp:50  #: backends/platform/wince/CEActionsPocket.cpp:42 @@ -1264,19 +1257,19 @@ msgstr "Pauza"  #: base/main.cpp:315  msgid "Skip line" -msgstr "Peskoit dek" +msgstr "Přeskočit řádek"  #: base/main.cpp:507  msgid "Error running game:" -msgstr "Chyba pi sputn hry:" +msgstr "Chyba při spuštění hry:"  #: base/main.cpp:554  msgid "Could not find any engine capable of running the selected game" -msgstr "Nelze nalzt dn jdro schopn vybranou hru spustit" +msgstr "Nelze nalézt žádné jádro schopné vybranou hru spustit"  #: common/error.cpp:38  msgid "No error" -msgstr "dn chyba" +msgstr "Žádná chyba"  #: common/error.cpp:40  msgid "Game data not found" @@ -1284,19 +1277,19 @@ msgstr "Data hry nenalezena"  #: common/error.cpp:42  msgid "Game id not supported" -msgstr "Id hry nen podporovno" +msgstr "Id hry není podporováno"  #: common/error.cpp:44  msgid "Unsupported color mode" -msgstr "Nepodporovan barevn reim" +msgstr "Nepodporovaný barevný režim"  #: common/error.cpp:47  msgid "Read permission denied" -msgstr "Oprvnn ke ten zamtnuto" +msgstr "Oprávnění ke čtení zamítnuto"  #: common/error.cpp:49  msgid "Write permission denied" -msgstr "Oprvnn k zpisu zamtnuto" +msgstr "Oprávnění k zápisu zamítnuto"  #: common/error.cpp:52  msgid "Path does not exist" @@ -1304,64 +1297,64 @@ msgstr "Cesta neexistuje"  #: common/error.cpp:54  msgid "Path not a directory" -msgstr "Cesta nen adres" +msgstr "Cesta není adresář"  #: common/error.cpp:56  msgid "Path not a file" -msgstr "Cesta nen soubor" +msgstr "Cesta není soubor"  #: common/error.cpp:59  msgid "Cannot create file" -msgstr "Nelze vytvoit soubor" +msgstr "Nelze vytvořit soubor"  #: common/error.cpp:61  msgid "Reading data failed" -msgstr "ten dat selhalo" +msgstr "Čtení dat selhalo"  #: common/error.cpp:63  msgid "Writing data failed" -msgstr "Zpis dat selhal" +msgstr "Zápis dat selhal"  #: common/error.cpp:66  msgid "Could not find suitable engine plugin" -msgstr "Nelze nalzt vhodn zs. modul jdra" +msgstr "Nelze nalézt vhodný zás. modul jádra"  #: common/error.cpp:68  msgid "Engine plugin does not support save states" -msgstr "Zs. modul jdra nepodporuje uloen stavy" +msgstr "Zás. modul jádra nepodporuje uložené stavy"  #: common/error.cpp:71  msgid "User canceled" -msgstr "Zrueno uivatelem" +msgstr "Zrušeno uživatelem"  #: common/error.cpp:75  msgid "Unknown error" -msgstr "Neznm chyba" +msgstr "Neznámá chyba"  #: engines/advancedDetector.cpp:317  #, c-format  msgid "The game in '%s' seems to be unknown." -msgstr "Hra v '%s' se zd bt neznm." +msgstr "Hra v '%s' se zdá být neznámá."  #: engines/advancedDetector.cpp:318  msgid "Please, report the following data to the ScummVM team along with name" -msgstr "Prosm nahlaste nsledujc data tmu ScummVM spolu se jmnem" +msgstr "Prosím nahlaste následující data týmu ScummVM spolu se jménem"  #: engines/advancedDetector.cpp:320  msgid "of the game you tried to add and its version/language/etc.:" -msgstr "hry, kterou jste se pokusili pidat a jej verzi/jazyk/atd.:" +msgstr "hry, kterou jste se pokusili přidat a její verzi/jazyk/atd.:"  #: engines/dialogs.cpp:85  msgid "~R~esume" -msgstr "~P~okraovat" +msgstr "~P~okračovat"  #: engines/dialogs.cpp:87  msgid "~L~oad" -msgstr "~N~ahrt" +msgstr "~N~ahrát"  #: engines/dialogs.cpp:91  msgid "~S~ave" -msgstr "~U~loit" +msgstr "~U~ložit"  #: engines/dialogs.cpp:95  msgid "~O~ptions" @@ -1369,7 +1362,7 @@ msgstr "~V~olby"  #: engines/dialogs.cpp:100  msgid "~H~elp" -msgstr "~N~povda" +msgstr "~N~ápověda"  #: engines/dialogs.cpp:102  msgid "~A~bout" @@ -1377,12 +1370,12 @@ msgstr "~O~ programu"  #: engines/dialogs.cpp:105 engines/dialogs.cpp:181  msgid "~R~eturn to Launcher" -msgstr "~N~vrat do Spoute" +msgstr "~N~ávrat do Spouštěče"  #: engines/dialogs.cpp:107 engines/dialogs.cpp:183  msgctxt "lowres"  msgid "~R~eturn to Launcher" -msgstr "~N~vrat do Spoute" +msgstr "~N~ávrat do Spouštěče"  #: engines/dialogs.cpp:116 engines/agi/saveload.cpp:803  #: engines/cruise/menu.cpp:212 engines/drascula/saveload.cpp:336 @@ -1390,7 +1383,7 @@ msgstr "~N~vrat do Spoute"  #: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:759  #: engines/toltecs/menu.cpp:281 engines/tsage/scenes.cpp:598  msgid "Save game:" -msgstr "Uloit hru:" +msgstr "Uložit hru:"  #: engines/dialogs.cpp:116 backends/platform/symbian/src/SymbianActions.cpp:44  #: backends/platform/wince/CEActionsPocket.cpp:43 @@ -1403,7 +1396,7 @@ msgstr "Uloit hru:"  #: engines/sci/engine/kfile.cpp:759 engines/scumm/dialogs.cpp:188  #: engines/toltecs/menu.cpp:281 engines/tsage/scenes.cpp:598  msgid "Save" -msgstr "Uloit" +msgstr "Uložit"  #: engines/dialogs.cpp:145  msgid "" @@ -1411,9 +1404,9 @@ msgid ""  "the README for basic information, and for instructions on how to obtain "  "further assistance."  msgstr "" -"Je nm lto, ale toto jdro v souasnosti nepodporuje hern npovdu. Prosm " -"prohldnte si README pro zkladn informace a pro instrukce jak zskat " -"dal pomoc." +"Je nám líto, ale toto jádro v současnosti nepodporuje herní nápovědu. Prosím " +"prohlédněte si README pro základní informace a pro instrukce jak získat " +"další pomoc."  #: engines/dialogs.cpp:234 engines/pegasus/pegasus.cpp:393  #, c-format @@ -1421,8 +1414,8 @@ msgid ""  "Gamestate save failed (%s)! Please consult the README for basic information, "  "and for instructions on how to obtain further assistance."  msgstr "" -"Uloen stavu hry selhalo (%s)! Prosm pette si dokumentaci pro zkladn " -"informace a pokyny k zskn dal podpory." +"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 @@ -1432,27 +1425,27 @@ msgstr "~O~K"  #: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:110  #: engines/mohawk/dialogs.cpp:171 engines/tsage/dialogs.cpp:107  msgid "~C~ancel" -msgstr "~Z~ruit" +msgstr "~Z~rušit"  #: engines/dialogs.cpp:311  msgid "~K~eys" -msgstr "~K~lvesy" +msgstr "~K~lávesy"  #: engines/engine.cpp:276  msgid "Could not initialize color format." -msgstr "Nelze zavst barevn formt." +msgstr "Nelze zavést barevný formát."  #: engines/engine.cpp:284  msgid "Could not switch to video mode: '" -msgstr "Nelze pepnout na reim obrazu: '" +msgstr "Nelze přepnout na režim obrazu: '"  #: engines/engine.cpp:293  msgid "Could not apply aspect ratio setting." -msgstr "Nelze pout nastaven pomru stran." +msgstr "Nelze použít nastavení poměru stran."  #: engines/engine.cpp:298  msgid "Could not apply fullscreen setting." -msgstr "Nelze pout nastaven cel obrazovky." +msgstr "Nelze použít nastavení celé obrazovky."  #: engines/engine.cpp:398  msgid "" @@ -1462,11 +1455,11 @@ msgid ""  "the data files to your hard disk instead.\n"  "See the README file for details."  msgstr "" -"Vypad to, e tuto hru hrajete pmo z\n" -" CD. Je znmo, e toto zpsobuje problmy\n" -" a je tedy doporueno, a msto toho zkoprujete\n" -"datov soubory na V pevn disk.\n" -"Pro podrobnosti si pette README." +"Vypadá to, že tuto hru hrajete přímo z\n" +" CD. Je známo, že toto způsobuje problémy\n" +" a je tedy doporučeno, ať místo toho zkopírujete\n" +"datové soubory na Váš pevný disk.\n" +"Pro podrobnosti si přečtěte README."  #: engines/engine.cpp:409  msgid "" @@ -1476,11 +1469,11 @@ msgid ""  "order to listen to the game's music.\n"  "See the README file for details."  msgstr "" -"Tato hra m na svm disku zvukov stopy. Tyto\n" -"stopy mus bt z disku zkoprovny pouitm\n" -"vhodnho nstroje pro extrakci zvuku z CD,\n" -"abyste mohli poslouchat hudbu ve he.\n" -"Pro podrobnosti si pette README." +"Tato hra má na svém disku zvukové stopy. Tyto\n" +"stopy musí být z disku zkopírovány použitím\n" +"vhodného nástroje pro extrakci zvuku z CD,\n" +"abyste mohli poslouchat hudbu ve hře.\n" +"Pro podrobnosti si přečtěte README."  #: engines/engine.cpp:467  #, c-format @@ -1488,8 +1481,8 @@ msgid ""  "Gamestate load failed (%s)! Please consult the README for basic information, "  "and for instructions on how to obtain further assistance."  msgstr "" -"Naten stavu hry selhalo (%s)! Prosm pette si dokumentaci pro zkladn " -"informace a pokyny k zskn dal podpory." +"Načtení 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/engine.cpp:480  msgid "" @@ -1497,25 +1490,25 @@ msgid ""  "ScummVM. As such, it is likely to be unstable, and any saves you make might "  "not work in future versions of ScummVM."  msgstr "" -"VAROVN: Hra, kterou se chystte spustit, nen jet pln podporovna " -"ScummVM. Proto je mon, e bude nestabiln a jakkoli uloen hry nemus " -"fungovat v budoucch verzch ScummVM." +"VAROVÁNÍ: Hra, kterou se chystáte spustit, není ještě plně podporována " +"ScummVM. Proto je možné, že bude nestabilní a jakékoli uložené hry nemusí " +"fungovat v budoucích verzích ScummVM."  #: engines/engine.cpp:483  msgid "Start anyway" -msgstr "Pesto spustit" +msgstr "Přesto spustit"  #: audio/fmopl.cpp:62  msgid "MAME OPL emulator" -msgstr "MAME OPL Emultor" +msgstr "MAME OPL Emulátor"  #: audio/fmopl.cpp:64  msgid "DOSBox OPL emulator" -msgstr "DOSBox OPL Emultor" +msgstr "DOSBox OPL Emulátor"  #: audio/fmopl.cpp:67  msgid "ALSA Direct FM" -msgstr "" +msgstr "ALSA Přímá FM"  #: audio/mididrv.cpp:209  #, c-format @@ -1523,13 +1516,13 @@ msgid ""  "The selected audio device '%s' was not found (e.g. might be turned off or "  "disconnected)."  msgstr "" -"Zvolen zvukov zazen '%s' nebylo nalezeno (nap. me bt vypnuto nebo " +"Zvolené zvukové zařízení '%s' nebylo nalezeno (např. může být vypnuto nebo "  "odpojeno)."  #: audio/mididrv.cpp:209 audio/mididrv.cpp:221 audio/mididrv.cpp:257  #: audio/mididrv.cpp:272  msgid "Attempting to fall back to the next available device..." -msgstr "Pokus o navrcen na nejbli dostupn zazen..." +msgstr "Pokus o navrácení na nejbližší dostupné zařízení..."  #: audio/mididrv.cpp:221  #, c-format @@ -1537,8 +1530,8 @@ msgid ""  "The selected audio device '%s' cannot be used. See log file for more "  "information."  msgstr "" -"Zvolen zvukov zazen '%s' nelze pout. Podvejte se na zznam pro vce " -"informac." +"Zvolené zvukové zařízení '%s' nelze použít. Podívejte se na záznam pro více " +"informací."  #: audio/mididrv.cpp:257  #, c-format @@ -1546,7 +1539,7 @@ msgid ""  "The preferred audio device '%s' was not found (e.g. might be turned off or "  "disconnected)."  msgstr "" -"Upednostovan zvukov zazen '%s' nebylo nalezeno (nap. me bt " +"Upřednostňované zvukové zařízení '%s' nebylo nalezeno (např. může být "  "vypnuto nebo odpojeno)."  #: audio/mididrv.cpp:272 @@ -1555,8 +1548,8 @@ msgid ""  "The preferred audio device '%s' cannot be used. See log file for more "  "information."  msgstr "" -"Upednostovan zvukov zazen '%s' nelze pout. Podvejte se na zznam " -"pro vce informac." +"Upřednostňované zvukové zařízení '%s' nelze použít. Podívejte se na záznam " +"pro více informací."  #: audio/null.h:44  msgid "No music" @@ -1564,55 +1557,55 @@ msgstr "Bez hudby"  #: audio/mods/paula.cpp:196  msgid "Amiga Audio Emulator" -msgstr "Emultor zvuku Amiga" +msgstr "Emulátor zvuku Amiga"  #: audio/adlib.cpp:2291  msgid "AdLib Emulator" -msgstr "AdLib Emultor" +msgstr "AdLib Emulátor"  #: audio/softsynth/appleiigs.cpp:33  msgid "Apple II GS Emulator (NOT IMPLEMENTED)" -msgstr "Apple II GS Emultor (NEN ZAVEDEN)" +msgstr "Apple II GS Emulátor (NENÍ ZAVEDEN)"  #: audio/softsynth/sid.cpp:1430  msgid "C64 Audio Emulator" -msgstr "Emultor zvuku C64" +msgstr "Emulátor zvuku C64"  #: audio/softsynth/mt32.cpp:200  msgid "Initializing MT-32 Emulator" -msgstr "Zavdm MT-32 Emultor" +msgstr "Zavádím MT-32 Emulátor"  #: audio/softsynth/mt32.cpp:426  msgid "MT-32 Emulator" -msgstr "MT-32 Emultor" +msgstr "MT-32 Emulátor"  #: audio/softsynth/pcspk.cpp:139  msgid "PC Speaker Emulator" -msgstr "PC Speaker Emultor" +msgstr "PC Speaker Emulátor"  #: audio/softsynth/pcspk.cpp:158  msgid "IBM PCjr Emulator" -msgstr "IBM PCjr Emultor" +msgstr "IBM PCjr Emulátor"  #: backends/keymapper/remap-dialog.cpp:48  msgid "Keymap:" -msgstr "Mapa Klves:" +msgstr "Mapa Kláves:"  #: backends/keymapper/remap-dialog.cpp:67  msgid " (Effective)" -msgstr " (Aktivn)" +msgstr " (Aktivní)"  #: backends/keymapper/remap-dialog.cpp:107  msgid " (Active)" -msgstr "(Aktivn)" +msgstr "(Aktivní)"  #: backends/keymapper/remap-dialog.cpp:107  msgid " (Blocked)" -msgstr " (Blokovno)" +msgstr " (Blokováno)"  #: backends/keymapper/remap-dialog.cpp:120  msgid " (Global)" -msgstr "(Globln)" +msgstr "(Globální)"  #: backends/keymapper/remap-dialog.cpp:128  msgid " (Game)" @@ -1625,43 +1618,43 @@ msgstr "Windows MIDI"  #: backends/platform/ds/arm9/source/dsoptions.cpp:56  #: engines/scumm/dialogs.cpp:291  msgid "~C~lose" -msgstr "~Z~avt" +msgstr "~Z~avřít"  #: backends/platform/ds/arm9/source/dsoptions.cpp:57  msgid "ScummVM Main Menu" -msgstr "Hlavn Menu ScummVM" +msgstr "Hlavní Menu ScummVM"  #: backends/platform/ds/arm9/source/dsoptions.cpp:63  msgid "~L~eft handed mode" -msgstr "~R~eim pro levky" +msgstr "~R~ežim pro leváky"  #: backends/platform/ds/arm9/source/dsoptions.cpp:64  msgid "~I~ndy fight controls" -msgstr "~O~vldn Indyho boje" +msgstr "~O~vládání Indyho boje"  #: backends/platform/ds/arm9/source/dsoptions.cpp:65  msgid "Show mouse cursor" -msgstr "Zobrazit kurzor myi" +msgstr "Zobrazit kurzor myši"  #: backends/platform/ds/arm9/source/dsoptions.cpp:66  msgid "Snap to edges" -msgstr "Pichytit k okrajm" +msgstr "Přichytit k okrajům"  #: backends/platform/ds/arm9/source/dsoptions.cpp:68  msgid "Touch X Offset" -msgstr "Dotykov vyrovnni na ose X" +msgstr "Dotykové vyrovnáni na ose X"  #: backends/platform/ds/arm9/source/dsoptions.cpp:75  msgid "Touch Y Offset" -msgstr "Dotykov vyrovnni na ose Y" +msgstr "Dotykové vyrovnáni na ose Y"  #: backends/platform/ds/arm9/source/dsoptions.cpp:87  msgid "Use laptop trackpad-style cursor control" -msgstr "Pout styl kontroly kurzoru jako u ovldac poduky laptopu" +msgstr "Použít styl kontroly kurzoru jako u ovládací podušky laptopu"  #: backends/platform/ds/arm9/source/dsoptions.cpp:88  msgid "Tap for left click, double tap right click" -msgstr "uknte pro lev kliknut, dvakrt pro prav kliknut" +msgstr "Ťukněte pro levé kliknutí, dvakrát pro pravé kliknutí"  #: backends/platform/ds/arm9/source/dsoptions.cpp:90  msgid "Sensitivity" @@ -1669,23 +1662,23 @@ msgstr "Citlivost"  #: backends/platform/ds/arm9/source/dsoptions.cpp:99  msgid "Initial top screen scale:" -msgstr "Poten zmna velikosti horn obrazovky:" +msgstr "Počáteční změna velikosti horní obrazovky:"  #: backends/platform/ds/arm9/source/dsoptions.cpp:105  msgid "Main screen scaling:" -msgstr "Zmna velikosti hlavn obrazovky:" +msgstr "Změna velikosti hlavní obrazovky:"  #: backends/platform/ds/arm9/source/dsoptions.cpp:107  msgid "Hardware scale (fast, but low quality)" -msgstr "Hardwarov zmna velikosti (rychl, ale nzk kvalita)" +msgstr "Hardwarová změna velikosti (rychlé, ale nízká kvalita)"  #: backends/platform/ds/arm9/source/dsoptions.cpp:108  msgid "Software scale (good quality, but slower)" -msgstr "Softwarov zmna velikosti (dobr kvalita, ale pomalej)" +msgstr "Softwarová změna velikosti (dobrá kvalita, ale pomalejší)"  #: backends/platform/ds/arm9/source/dsoptions.cpp:109  msgid "Unscaled (you must scroll left and right)" -msgstr "Beze zmny velikosti (muste posunovat doleva a doprava)" +msgstr "Beze změny velikosti (musíte posunovat doleva a doprava)"  #: backends/platform/ds/arm9/source/dsoptions.cpp:111  msgid "Brightness:" @@ -1693,31 +1686,31 @@ msgstr "Jas:"  #: backends/platform/ds/arm9/source/dsoptions.cpp:121  msgid "High quality audio (slower) (reboot)" -msgstr "Vysok kvalita zvuku (pomalej) (restart) " +msgstr "Vysoká kvalita zvuku (pomalejší) (restart) "  #: backends/platform/ds/arm9/source/dsoptions.cpp:122  msgid "Disable power off" -msgstr "Zakzat vypnut" +msgstr "Zakázat vypnutí"  #: backends/platform/iphone/osys_events.cpp:300  msgid "Mouse-click-and-drag mode enabled." -msgstr "Reim pethnut myi zapnut." +msgstr "Režim přetáhnutí myši zapnut."  #: backends/platform/iphone/osys_events.cpp:302  msgid "Mouse-click-and-drag mode disabled." -msgstr "Reim pethnut myi vypnut." +msgstr "Režim přetáhnutí myši vypnut."  #: backends/platform/iphone/osys_events.cpp:313  msgid "Touchpad mode enabled." -msgstr "Touchpad reim zapnut" +msgstr "Touchpad režim zapnut"  #: backends/platform/iphone/osys_events.cpp:315  msgid "Touchpad mode disabled." -msgstr "Touchpad reim vypnut" +msgstr "Touchpad režim vypnut"  #: backends/platform/maemo/maemo.cpp:208  msgid "Click Mode" -msgstr "Reim kliknut" +msgstr "Režim kliknutí"  #: backends/platform/maemo/maemo.cpp:214  #: backends/platform/symbian/src/SymbianActions.cpp:42 @@ -1725,30 +1718,30 @@ msgstr "Reim kliknut"  #: backends/platform/wince/CEActionsSmartphone.cpp:43  #: backends/platform/tizen/form.cpp:275  msgid "Left Click" -msgstr "Lev Kliknut" +msgstr "Levé Kliknutí"  #: backends/platform/maemo/maemo.cpp:217  msgid "Middle Click" -msgstr "Kliknut prostednm tlatkem" +msgstr "Kliknutí prostředním tlačítkem"  #: backends/platform/maemo/maemo.cpp:220  #: backends/platform/symbian/src/SymbianActions.cpp:43  #: backends/platform/wince/CEActionsSmartphone.cpp:44  #: backends/platform/tizen/form.cpp:267  msgid "Right Click" -msgstr "Prav kliknut" +msgstr "Pravé kliknutí"  #: backends/platform/sdl/macosx/appmenu_osx.mm:88  msgid "Hide ScummVM" -msgstr "Skrt ScummVM" +msgstr "Skrýt ScummVM"  #: backends/platform/sdl/macosx/appmenu_osx.mm:93  msgid "Hide Others" -msgstr "Skrt Ostatn" +msgstr "Skrýt Ostatní"  #: backends/platform/sdl/macosx/appmenu_osx.mm:98  msgid "Show All" -msgstr "Zobrazit Ve" +msgstr "Zobrazit Vše"  #: backends/platform/sdl/macosx/appmenu_osx.mm:120  #: backends/platform/sdl/macosx/appmenu_osx.mm:131 @@ -1761,28 +1754,28 @@ msgstr "Minimalizovat"  #: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47  msgid "Normal (no scaling)" -msgstr "Normln (bez zmny velikosti)" +msgstr "Normální (bez změny velikosti)"  #: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66  msgctxt "lowres"  msgid "Normal (no scaling)" -msgstr "Normln (bez zmny velikosti)" +msgstr "Normální (bez změny velikosti)"  #: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2212  msgid "Enabled aspect ratio correction" -msgstr "Povolena korekce pomru stran" +msgstr "Povolena korekce poměru stran"  #: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2218  msgid "Disabled aspect ratio correction" -msgstr "Zakzna korekce pomru stran" +msgstr "Zakázána korekce poměru stran"  #: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2273  msgid "Active graphics filter:" -msgstr "Aktivn grafick filtr:" +msgstr "Aktivní grafický filtr:"  #: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2315  msgid "Windowed mode" -msgstr "Reim do okna" +msgstr "Režim do okna"  #: backends/graphics/opengl/opengl-graphics.cpp:119  msgid "OpenGL" @@ -1790,7 +1783,7 @@ msgstr "OpenGL"  #: backends/graphics/opengl/opengl-graphics.cpp:120  msgid "OpenGL (No filtering)" -msgstr "OpenGL (bez filtrovn)" +msgstr "OpenGL (bez filtrování)"  #: backends/platform/symbian/src/SymbianActions.cpp:38  #: backends/platform/wince/CEActionsSmartphone.cpp:39 @@ -1800,7 +1793,7 @@ msgstr "Nahoru"  #: backends/platform/symbian/src/SymbianActions.cpp:39  #: backends/platform/wince/CEActionsSmartphone.cpp:40  msgid "Down" -msgstr "Dol" +msgstr "Dolů"  #: backends/platform/symbian/src/SymbianActions.cpp:40  #: backends/platform/wince/CEActionsSmartphone.cpp:41 @@ -1825,44 +1818,43 @@ msgstr "Multi Funkce"  #: backends/platform/symbian/src/SymbianActions.cpp:48  msgid "Swap character" -msgstr "Zamnit znaky" +msgstr "Zaměnit znaky"  #: backends/platform/symbian/src/SymbianActions.cpp:49  msgid "Skip text" -msgstr "Peskoit text" +msgstr "Přeskočit text"  #: backends/platform/symbian/src/SymbianActions.cpp:51  msgid "Fast mode" -msgstr "Rychl reim" +msgstr "Rychlý režim"  #: backends/platform/symbian/src/SymbianActions.cpp:52  #: backends/platform/wince/CEActionsPocket.cpp:44  #: backends/platform/wince/CEActionsSmartphone.cpp:52 -#: backends/events/default/default-events.cpp:218 -#: engines/scumm/dialogs.cpp:192 engines/scumm/help.cpp:83 -#: engines/scumm/help.cpp:85 +#: backends/events/default/default-events.cpp:218 engines/scumm/dialogs.cpp:192 +#: engines/scumm/help.cpp:83 engines/scumm/help.cpp:85  msgid "Quit" -msgstr "Ukonit" +msgstr "Ukončit"  #: backends/platform/symbian/src/SymbianActions.cpp:53  msgid "Debugger" -msgstr "Ladc program" +msgstr "Ladící program"  #: backends/platform/symbian/src/SymbianActions.cpp:54  msgid "Global menu" -msgstr "Globln menu" +msgstr "Globální menu"  #: backends/platform/symbian/src/SymbianActions.cpp:55  msgid "Virtual keyboard" -msgstr "Virtuln klvesnice" +msgstr "Virtuální klávesnice"  #: backends/platform/symbian/src/SymbianActions.cpp:56  msgid "Key mapper" -msgstr "Mapova klves" +msgstr "Mapovač kláves"  #: backends/events/symbiansdl/symbiansdl-events.cpp:186  msgid "Do you want to quit ?" -msgstr "Chcete ukonit ?" +msgstr "Chcete ukončit ?"  #: backends/platform/wii/options.cpp:51  msgid "Video" @@ -1870,19 +1862,19 @@ msgstr "Video"  #: backends/platform/wii/options.cpp:54  msgid "Current video mode:" -msgstr "Souasn reim obrazu:" +msgstr "Současný režim obrazu:"  #: backends/platform/wii/options.cpp:56  msgid "Double-strike" -msgstr "Dvojit pekrtnut" +msgstr "Dvojité přeškrtnutí"  #: backends/platform/wii/options.cpp:60  msgid "Horizontal underscan:" -msgstr "Horizontln zmenen" +msgstr "Horizontální zmenšení"  #: backends/platform/wii/options.cpp:66  msgid "Vertical underscan:" -msgstr "Vertikln zmenen" +msgstr "Vertikální zmenšení"  #: backends/platform/wii/options.cpp:71  msgid "Input" @@ -1894,7 +1886,7 @@ msgstr "Citlivost GC Padu"  #: backends/platform/wii/options.cpp:80  msgid "GC Pad acceleration:" -msgstr "Zrychlen GC Padu" +msgstr "Zrychlení GC Padu"  #: backends/platform/wii/options.cpp:86  msgid "DVD" @@ -1906,11 +1898,11 @@ msgstr "Stav:"  #: backends/platform/wii/options.cpp:90 backends/platform/wii/options.cpp:102  msgid "Unknown" -msgstr "Neznm" +msgstr "Neznámé"  #: backends/platform/wii/options.cpp:93  msgid "Mount DVD" -msgstr "Pipojit DVD" +msgstr "Připojit DVD"  #: backends/platform/wii/options.cpp:94  msgid "Unmount DVD" @@ -1926,11 +1918,11 @@ msgstr "Server:"  #: backends/platform/wii/options.cpp:110  msgid "Share:" -msgstr "Sdlen:" +msgstr "Sdílení:"  #: backends/platform/wii/options.cpp:114  msgid "Username:" -msgstr "Uivatelsk jmno" +msgstr "Uživatelské jméno"  #: backends/platform/wii/options.cpp:118  msgid "Password:" @@ -1938,11 +1930,11 @@ msgstr "Heslo"  #: backends/platform/wii/options.cpp:121  msgid "Init network" -msgstr "Spustit s" +msgstr "Spustit síť"  #: backends/platform/wii/options.cpp:123  msgid "Mount SMB" -msgstr "Pipojit SMB" +msgstr "Připojit SMB"  #: backends/platform/wii/options.cpp:124  msgid "Unmount SMB" @@ -1950,56 +1942,56 @@ msgstr "Odpojit SMB"  #: backends/platform/wii/options.cpp:143  msgid "DVD Mounted successfully" -msgstr "DVD spn pipojeno" +msgstr "DVD úspěšně připojeno"  #: backends/platform/wii/options.cpp:146  msgid "Error while mounting the DVD" -msgstr "Chyba pi pipojovn DVD" +msgstr "Chyba při připojování DVD"  #: backends/platform/wii/options.cpp:148  msgid "DVD not mounted" -msgstr "DVD nepipojeno" +msgstr "DVD nepřipojeno"  #: backends/platform/wii/options.cpp:161  msgid "Network up, share mounted" -msgstr "S je zapnuta, sdlen pipojeno" +msgstr "Síť je zapnuta, sdílení připojeno"  #: backends/platform/wii/options.cpp:163  msgid "Network up" -msgstr "S je zapnuta" +msgstr "Síť je zapnuta"  #: backends/platform/wii/options.cpp:166  msgid ", error while mounting the share" -msgstr ", chyba pi pipojovn sdlen" +msgstr ", chyba při připojování sdílení"  #: backends/platform/wii/options.cpp:168  msgid ", share not mounted" -msgstr ", sdlen nen pipojeno" +msgstr ", sdílení není připojeno"  #: backends/platform/wii/options.cpp:174  msgid "Network down" -msgstr "S je nedostupn" +msgstr "Síť je nedostupná"  #: backends/platform/wii/options.cpp:178  msgid "Initializing network" -msgstr "Zavdm s" +msgstr "Zavádím síť"  #: backends/platform/wii/options.cpp:182  msgid "Timeout while initializing network" -msgstr "Pi zavdn st vyprel limit" +msgstr "Při zavádění sítě vypršel limit"  #: backends/platform/wii/options.cpp:186  #, c-format  msgid "Network not initialized (%d)" -msgstr "S nen zavedena (%d)" +msgstr "Síť není zavedena (%d)"  #: backends/platform/wince/CEActionsPocket.cpp:46  msgid "Hide Toolbar" -msgstr "Skrt Panel nstroj" +msgstr "Skrýt Panel nástrojů"  #: backends/platform/wince/CEActionsPocket.cpp:47  msgid "Show Keyboard" -msgstr "Zobrazit klvesnici" +msgstr "Zobrazit klávesnici"  #: backends/platform/wince/CEActionsPocket.cpp:48  msgid "Sound on/off" @@ -2007,66 +1999,66 @@ msgstr "Zvuk zapnout/vypnout"  #: backends/platform/wince/CEActionsPocket.cpp:49  msgid "Right click" -msgstr "Prav kliknut" +msgstr "Pravé kliknutí"  #: backends/platform/wince/CEActionsPocket.cpp:50  msgid "Show/Hide Cursor" -msgstr "Ukzat/Skrt Kurzor" +msgstr "Ukázat/Skrýt Kurzor"  #: backends/platform/wince/CEActionsPocket.cpp:51  msgid "Free look" -msgstr "Rozhlen pomoc myi" +msgstr "Rozhlížení pomocí myši"  #: backends/platform/wince/CEActionsPocket.cpp:52  msgid "Zoom up" -msgstr "Piblen nahoru" +msgstr "Přiblížení nahoru"  #: backends/platform/wince/CEActionsPocket.cpp:53  msgid "Zoom down" -msgstr "Piblen dol" +msgstr "Přiblížení dolů"  #: backends/platform/wince/CEActionsPocket.cpp:55  #: backends/platform/wince/CEActionsSmartphone.cpp:49  msgid "Bind Keys" -msgstr "Piadit klvesy" +msgstr "Přiřadit klávesy"  #: backends/platform/wince/CEActionsPocket.cpp:56  msgid "Cursor Up" -msgstr "ipka Nahoru" +msgstr "Šipka Nahoru"  #: backends/platform/wince/CEActionsPocket.cpp:57  msgid "Cursor Down" -msgstr "ipka Dol" +msgstr "Šipka Dolů"  #: backends/platform/wince/CEActionsPocket.cpp:58  msgid "Cursor Left" -msgstr "ipka Doleva" +msgstr "Šipka Doleva"  #: backends/platform/wince/CEActionsPocket.cpp:59  msgid "Cursor Right" -msgstr "ipka Doprava" +msgstr "Šipka Doprava"  #: backends/platform/wince/CEActionsPocket.cpp:267  #: backends/platform/wince/CEActionsSmartphone.cpp:231  msgid "Do you want to load or save the game?" -msgstr "Chcete hru nahrt nebo uloit?" +msgstr "Chcete hru nahrát nebo uložit?"  #: backends/platform/wince/CEActionsPocket.cpp:326  #: backends/platform/wince/CEActionsSmartphone.cpp:287  msgid "   Are you sure you want to quit ?   " -msgstr "   Jste si jisti, e chcete odejt ?   " +msgstr "   Jste si jisti, že chcete odejít ?   "  #: backends/platform/wince/CEActionsSmartphone.cpp:50  msgid "Keyboard" -msgstr "Klvesnice" +msgstr "Klávesnice"  #: backends/platform/wince/CEActionsSmartphone.cpp:51  msgid "Rotate" -msgstr "Otet" +msgstr "Otáčet"  #: backends/platform/wince/CELauncherDialog.cpp:56  msgid "Using SDL driver " -msgstr "Pouv ovlada SDL" +msgstr "Používá ovladač SDL"  #: backends/platform/wince/CELauncherDialog.cpp:60  msgid "Display " @@ -2074,92 +2066,92 @@ msgstr "Displej"  #: backends/platform/wince/CELauncherDialog.cpp:83  msgid "Do you want to perform an automatic scan ?" -msgstr "Chcete provst automatick hledn ?" +msgstr "Chcete provést automatické hledání ?"  #: backends/platform/wince/wince-sdl.cpp:516  msgid "Map right click action" -msgstr "Mapovat innost prav kliknut" +msgstr "Mapovat činnost pravé kliknutí"  #: backends/platform/wince/wince-sdl.cpp:520  msgid "You must map a key to the 'Right Click' action to play this game"  msgstr "" -"Muste namapovat klvesu pro innost 'Prav Kliknut', abyste tuto hru mohli " -"hrt" +"Musíte namapovat klávesu pro činnost 'Pravé Kliknutí', abyste tuto hru mohli " +"hrát"  #: backends/platform/wince/wince-sdl.cpp:529  msgid "Map hide toolbar action" -msgstr "Mapovat innost skrt panel nstroj" +msgstr "Mapovat činnost skrýt panel nástrojů"  #: backends/platform/wince/wince-sdl.cpp:533  msgid "You must map a key to the 'Hide toolbar' action to play this game"  msgstr "" -"Muste namapovat klvesu pro innost 'Skrt Panel nstroj', abyste tuto hru " -"mohli hrt" +"Musíte namapovat klávesu pro činnost 'Skrýt Panel nástrojů', abyste tuto hru " +"mohli hrát"  #: backends/platform/wince/wince-sdl.cpp:542  msgid "Map Zoom Up action (optional)" -msgstr "Namapovat innost Piblit Nahoru (nepovinn)" +msgstr "Namapovat činnost Přiblížit Nahoru (nepovinné)"  #: backends/platform/wince/wince-sdl.cpp:545  msgid "Map Zoom Down action (optional)" -msgstr "Namapovat innost Piblit Dol (nepovinn)" +msgstr "Namapovat činnost Přiblížit Dolů (nepovinné)"  #: backends/platform/wince/wince-sdl.cpp:553  msgid ""  "Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"  msgstr "" -"Nezapomete namapovat klvesu k innosti 'Skrt Panel Nstroj, abyste " -"vidli cel invent" +"Nezapomeňte namapovat klávesu k činnosti 'Skrýt Panel Nástrojů, abyste " +"viděli celý inventář"  #: backends/events/default/default-events.cpp:196  msgid "Do you really want to return to the Launcher?" -msgstr "Opravdu se chcete vrtit do Spoute?" +msgstr "Opravdu se chcete vrátit do Spouštěče?"  #: backends/events/default/default-events.cpp:196  msgid "Launcher" -msgstr "Spout" +msgstr "Spouštěč"  #: backends/events/default/default-events.cpp:218  msgid "Do you really want to quit?" -msgstr "Opravdu chcete skonit?" +msgstr "Opravdu chcete skončit?"  #: backends/events/gph/gph-events.cpp:385  #: backends/events/gph/gph-events.cpp:428  #: backends/events/openpandora/op-events.cpp:168  msgid "Touchscreen 'Tap Mode' - Left Click" -msgstr "'Reim uknut' Dotykov Obrazovky - Lev Kliknut" +msgstr "'Režim Ťuknutí' Dotykové Obrazovky - Levé Kliknutí"  #: backends/events/gph/gph-events.cpp:387  #: backends/events/gph/gph-events.cpp:430  #: backends/events/openpandora/op-events.cpp:170  msgid "Touchscreen 'Tap Mode' - Right Click" -msgstr "'Reim uknut' Dotykov Obrazovky - Prav Kliknut" +msgstr "'Režim Ťuknutí' Dotykové Obrazovky - Pravé Kliknutí"  #: backends/events/gph/gph-events.cpp:389  #: backends/events/gph/gph-events.cpp:432  #: backends/events/openpandora/op-events.cpp:172  msgid "Touchscreen 'Tap Mode' - Hover (No Click)" -msgstr "'Reim uknut' Dotykov Obrazovky - Najet (Bez Kliknut)" +msgstr "'Režim Ťuknutí' Dotykové Obrazovky - Najetí (Bez Kliknutí)"  #: backends/events/gph/gph-events.cpp:409  msgid "Maximum Volume" -msgstr "Maximln Hlasitost" +msgstr "Maximální Hlasitost"  #: backends/events/gph/gph-events.cpp:411  msgid "Increasing Volume" -msgstr "Zvyuji Hlasitost" +msgstr "Zvyšuji Hlasitost"  #: backends/events/gph/gph-events.cpp:417  msgid "Minimal Volume" -msgstr "Minimln Hlasitost" +msgstr "Minimální Hlasitost"  #: backends/events/gph/gph-events.cpp:419  msgid "Decreasing Volume" -msgstr "Sniuji Hlasitost" +msgstr "Snižuji Hlasitost"  #: backends/events/openpandora/op-events.cpp:174  msgid "Touchscreen 'Tap Mode' - Hover (DPad Clicks)" -msgstr "'Reim uknut' Dotykov Obrazovky - Najet (Dpad klik)" +msgstr "'Režim Ťuknutí' Dotykové Obrazovky - Najetí (Dpad kliká)"  #: backends/updates/macosx/macosx-updates.mm:67  msgid "Check for Updates..." @@ -2167,7 +2159,7 @@ msgstr "Zkontrolovat Aktualizace..."  #: backends/platform/tizen/form.cpp:263  msgid "Right Click Once" -msgstr "Prav kliknut jednou" +msgstr "Pravé kliknutí jednou"  #: backends/platform/tizen/form.cpp:271  msgid "Move Only" @@ -2175,7 +2167,7 @@ msgstr "Pouze Pohyb"  #: backends/platform/tizen/form.cpp:294  msgid "Escape Key" -msgstr "Klvesa Escape" +msgstr "Klávesa Escape"  #: backends/platform/tizen/form.cpp:299  msgid "Game Menu" @@ -2183,55 +2175,55 @@ msgstr "Menu Hry"  #: backends/platform/tizen/form.cpp:304  msgid "Show Keypad" -msgstr "Zobrazit Klvesnici" +msgstr "Zobrazit Klávesnici"  #: backends/platform/tizen/form.cpp:309  msgid "Control Mouse" -msgstr "Ovldn Myi" +msgstr "Ovládání Myši"  #: backends/events/maemosdl/maemosdl-events.cpp:180  msgid "Clicking Enabled" -msgstr "Kliknut Povoleno" +msgstr "Kliknutí Povoleno"  #: backends/events/maemosdl/maemosdl-events.cpp:180  msgid "Clicking Disabled" -msgstr "Kliknut Zakzno" +msgstr "Kliknutí Zakázáno"  #: engines/agi/detection.cpp:147 engines/drascula/detection.cpp:302  #: engines/dreamweb/detection.cpp:47 engines/neverhood/detection.cpp:160  #: engines/sci/detection.cpp:394 engines/toltecs/detection.cpp:200  #: engines/zvision/detection_tables.h:51  msgid "Use original save/load screens" -msgstr "Pout pvodn obrazovky naten/uloen" +msgstr "Použít původní obrazovky načtení/uložení"  #: engines/agi/detection.cpp:148 engines/drascula/detection.cpp:303  #: engines/dreamweb/detection.cpp:48 engines/neverhood/detection.cpp:161  #: engines/sci/detection.cpp:395 engines/toltecs/detection.cpp:201  msgid "Use the original save/load screens, instead of the ScummVM ones" -msgstr "Pout pvodn obrazovky naten/uloen msto ze ScummVM" +msgstr "Použít původní obrazovky načtení/uložení místo ze ScummVM"  #: engines/agi/detection.cpp:157  msgid "Use an alternative palette" -msgstr "Pout jinou paletu" +msgstr "Použít jinou paletu"  #: engines/agi/detection.cpp:158  msgid ""  "Use an alternative palette, common for all Amiga games. This was the old "  "behavior"  msgstr "" -"Pout alternativn paletu, bn pro hry Amiga. Toto byl pvodn star " +"Použít alternativní paletu, běžné pro hry Amiga. Toto byl původní starý "  "standard"  #: engines/agi/detection.cpp:167  msgid "Mouse support" -msgstr "Podpora myi" +msgstr "Podpora myši"  #: engines/agi/detection.cpp:168  msgid ""  "Enables mouse support. Allows to use mouse for movement and in game menus."  msgstr "" -"Povol podporu myi. Umon pout my pro pohyb a pro ovldn hernch " -"nabdek." +"Povolí podporu myši. Umožní použít myš pro pohyb a pro ovládání herních " +"nabídek."  #: engines/agi/saveload.cpp:816 engines/drascula/saveload.cpp:349  #: engines/dreamweb/saveload.cpp:169 engines/neverhood/menumodule.cpp:890 @@ -2252,7 +2244,7 @@ msgid ""  "\n"  "%s"  msgstr "" -"Nahrn stavu hry selhalo ze souboru:\n" +"Nahrání stavu hry selhalo ze souboru:\n"  "\n"  "%s" @@ -2263,7 +2255,7 @@ msgid ""  "\n"  "%s"  msgstr "" -"Uloen stavu hry selhalo do souboru:\n" +"Uložení stavu hry selhalo do souboru:\n"  "\n"  "%s" @@ -2274,7 +2266,7 @@ msgid ""  "\n"  "%s"  msgstr "" -"Stav hry spn uloen do:\n" +"Stav hry úspěšně uložen do:\n"  "\n"  "%s" @@ -2285,11 +2277,11 @@ msgstr "Soubor videa '%s' nenalezen'"  #: engines/cge/detection.cpp:105 engines/cge2/detection.cpp:101  msgid "Color Blind Mode" -msgstr "Reim pro barvoslep" +msgstr "Režim pro barvoslepé"  #: engines/cge/detection.cpp:106 engines/cge2/detection.cpp:102  msgid "Enable Color Blind Mode by default" -msgstr "Standardn zapnat reim pro barvoslep" +msgstr "Standardně zapínat režim pro barvoslepé"  #: engines/drascula/saveload.cpp:47  msgid "" @@ -2301,31 +2293,31 @@ msgid ""  "Press OK to convert them now, otherwise you will be asked again the next "  "time you start the game.\n"  msgstr "" -"ScummVM zjistil, e mte star uloen pozice pro Drascula, kter by mly " -"bt pevedeny.\n" -"Star formt uloench her ji nen podporovn, take pokud je nepevedete, " -"nebudete moci vae hry nast.\n" +"ScummVM zjistil, že máte staré uložené pozice pro Drascula, které by měly " +"být převedeny.\n" +"Starý formát uložených her již není podporován, takže pokud je nepřevedete, " +"nebudete moci vaše hry načíst.\n"  "\n" -"Stisknte OK, abyste je pevedli te, jinak budete podni znovu, pi " -"sputn tto hry.\n" +"Stiskněte OK, abyste je převedli teď, jinak budete požádáni znovu, při " +"spuštění této hry.\n"  #: engines/dreamweb/detection.cpp:57  msgid "Use bright palette mode" -msgstr "Pout reim jasn palety" +msgstr "Použít režim jasné palety"  #: engines/dreamweb/detection.cpp:58  msgid "Display graphics using the game's bright palette" -msgstr "Zobrazit grafiku pomoc jasn palety hry" +msgstr "Zobrazit grafiku pomocí jasné palety hry"  #: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1470  #: engines/gob/inter_geisha.cpp:232 engines/tinsel/saveload.cpp:532  msgid "Failed to load game state from file." -msgstr "Nelze nast stav hry ze souboru." +msgstr "Nelze načíst stav hry ze souboru."  #: engines/gob/inter_v2.cpp:1540 engines/gob/inter_geisha.cpp:263  #: engines/tinsel/saveload.cpp:545  msgid "Failed to save game state to file." -msgstr "Nelze uloit stav hry do souboru." +msgstr "Nelze uložit stav hry do souboru."  #: engines/gob/inter_v5.cpp:107  msgid "Failed to delete file." @@ -2333,23 +2325,23 @@ msgstr "Nelze smazat soubor."  #: engines/groovie/detection.cpp:312  msgid "Fast movie speed" -msgstr "Zven rychlost videa" +msgstr "Zvýšená rychlost videa"  #: engines/groovie/detection.cpp:313  msgid "Play movies at an increased speed" -msgstr "Pehrt videa se zvenou rychlost" +msgstr "Přehrát videa se zvýšenou rychlostí"  #: engines/groovie/script.cpp:408  msgid "Failed to save game" -msgstr "Nelze uloit hru." +msgstr "Nelze uložit hru."  #: engines/hopkins/detection.cpp:76 engines/hopkins/detection.cpp:86  msgid "Gore Mode" -msgstr "Povolit nsiln scny" +msgstr "Povolit násilné scény"  #: engines/hopkins/detection.cpp:77 engines/hopkins/detection.cpp:87  msgid "Enable Gore Mode when available" -msgstr "Povolit nsiln scny, jsou-li dostupn" +msgstr "Povolit násilné scény, jsou-li dostupné"  #. I18N: Studio audience adds an applause and cheering sounds whenever  #. Malcolm makes a joke. @@ -2364,66 +2356,66 @@ msgstr "Povolit publikum ve studiu"  #. I18N: This option allows the user to skip text and cutscenes.  #: engines/kyra/detection.cpp:73  msgid "Skip support" -msgstr "Podpora peskoen" +msgstr "Podpora přeskočení"  #: engines/kyra/detection.cpp:74  msgid "Allow text and cutscenes to be skipped" -msgstr "Umonit, aby text a videa mohly bt peskoeny" +msgstr "Umožnit, aby text a videa mohly být přeskočeny"  #. I18N: Helium mode makes people sound like they've inhaled Helium.  #: engines/kyra/detection.cpp:84  msgid "Helium mode" -msgstr "Hliov reim" +msgstr "Héliový režim"  #: engines/kyra/detection.cpp:85  msgid "Enable helium mode" -msgstr "Zapnout hliov reim" +msgstr "Zapnout héliový režim"  #. I18N: When enabled, this option makes scrolling smoother when  #. changing from one screen to another.  #: engines/kyra/detection.cpp:99  msgid "Smooth scrolling" -msgstr "Plynul posunovn" +msgstr "Plynulé posunování"  #: engines/kyra/detection.cpp:100  msgid "Enable smooth scrolling when walking" -msgstr "Povolit plynul posunovn pi chzi" +msgstr "Povolit plynulé posunování při chůzi"  #. I18N: When enabled, this option changes the cursor when it floats to the  #. edge of the screen to a directional arrow. The player can then click to  #. walk towards that direction.  #: engines/kyra/detection.cpp:112  msgid "Floating cursors" -msgstr "Plovouc kurzory" +msgstr "Plovoucí kurzory"  #: engines/kyra/detection.cpp:113  msgid "Enable floating cursors" -msgstr "Povolit plovouc kurzory" +msgstr "Povolit plovoucí kurzory"  #. I18N: HP stands for Hit Points  #: engines/kyra/detection.cpp:127  msgid "HP bar graphs" -msgstr "Sloupcov indiktor zdrav" +msgstr "Sloupcový indikátor zdraví"  #: engines/kyra/detection.cpp:128  msgid "Enable hit point bar graphs" -msgstr "Povolit sloupcov indiktor zdrav" +msgstr "Povolit sloupcový indikátor zdraví"  #: engines/kyra/lol.cpp:478  msgid "Attack 1" -msgstr "tok 1" +msgstr "Útok 1"  #: engines/kyra/lol.cpp:479  msgid "Attack 2" -msgstr "tok 2" +msgstr "Útok 2"  #: engines/kyra/lol.cpp:480  msgid "Attack 3" -msgstr "tok 3" +msgstr "Útok 3"  #: engines/kyra/lol.cpp:481  msgid "Move Forward" -msgstr "Vped" +msgstr "Vpřed"  #: engines/kyra/lol.cpp:482  msgid "Move Back" @@ -2431,23 +2423,23 @@ msgstr "Vzad"  #: engines/kyra/lol.cpp:483  msgid "Slide Left" -msgstr "Pesunout se Doleva" +msgstr "Přesunout se Doleva"  #: engines/kyra/lol.cpp:484  msgid "Slide Right" -msgstr "Pesunout se Doprava" +msgstr "Přesunout se Doprava"  #: engines/kyra/lol.cpp:485 engines/pegasus/pegasus.cpp:2509  msgid "Turn Left" -msgstr "Otoit se doleva" +msgstr "Otočit se doleva"  #: engines/kyra/lol.cpp:486 engines/pegasus/pegasus.cpp:2510  msgid "Turn Right" -msgstr "Otoit se doprava" +msgstr "Otočit se doprava"  #: engines/kyra/lol.cpp:487  msgid "Rest" -msgstr "Odpoinout si" +msgstr "Odpočinout si"  #: engines/kyra/lol.cpp:488  msgid "Options" @@ -2465,11 +2457,11 @@ msgid ""  "General MIDI ones. It is still possible that\n"  "some tracks sound incorrect."  msgstr "" -"Zd se, e pouvte zazen General MIDI,\n" -"ale vae hra podporuje pouze Roland MT32 MIDI.\n" -"Sname se mapovat nstroje Roland MT32 na\n" -"ty od General MIDI. Je stle mon, e\n" -"nkter stopy nebudou znt sprvn." +"Zdá se, že používáte zařízení General MIDI,\n" +"ale vaše hra podporuje pouze Roland MT32 MIDI.\n" +"Snažíme se mapovat nástroje Roland MT32 na\n" +"ty od General MIDI. Je stále možné, že\n" +"některé stopy nebudou znít správně."  #: engines/kyra/saveload_eob.cpp:557  #, c-format @@ -2481,11 +2473,11 @@ msgid ""  "Do you wish to use this save game file with ScummVM?\n"  "\n"  msgstr "" -"V cest va hry byl nalezen nsledujc soubor s uloenou hrou:\n" +"V cestě vaší hry byl nalezen následující soubor s uloženou hrou:\n"  "\n"  "%s %s\n"  "\n" -"Chcete tento soubor pout v ScummVM?\n" +"Chcete tento soubor použít v ScummVM?\n"  "\n"  #: engines/kyra/saveload_eob.cpp:590 @@ -2494,7 +2486,7 @@ msgid ""  "A save game file was found in the specified slot %d. Overwrite?\n"  "\n"  msgstr "" -"V uren pozici %d byl nalezen soubor s uloenou hrou. Pepsat?\n" +"V určené pozici %d byl nalezen soubor s uloženou hrou. Přepsat?\n"  "\n"  #: engines/kyra/saveload_eob.cpp:623 @@ -2507,24 +2499,24 @@ msgid ""  "'import_savefile'.\n"  "\n"  msgstr "" -"%d pvodnch soubor s uloenou hrou bylo spn importovno do\n" -"ScummVM. Pokud chcete pozdji toto uinit znovu run, je teba otevt\n" -"ladc konzoli ScummVM a pout pkaz 'import_savefile'.\n" +"%d původních souborů s uloženou hrou bylo úspěšně importováno do\n" +"ScummVM. Pokud chcete později toto učinit znovu ručně, je třeba otevřít\n" +"ladící konzoli ScummVM a použít příkaz 'import_savefile'.\n"  "\n"  #. I18N: Option for fast scene switching  #: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:167  msgid "~Z~ip Mode Activated" -msgstr "~R~eim Svitn Aktivovn" +msgstr "~R~ežim Svištění Aktivován"  #: engines/mohawk/dialogs.cpp:93  msgid "~T~ransitions Enabled" -msgstr "~P~echody zapnuty" +msgstr "~P~řechody zapnuty"  #. I18N: Drop book page  #: engines/mohawk/dialogs.cpp:95  msgid "~D~rop Page" -msgstr "~Z~ahodit Strnku" +msgstr "~Z~ahodit Stránku"  #: engines/mohawk/dialogs.cpp:99  msgid "~S~how Map" @@ -2532,7 +2524,7 @@ msgstr "~Z~obrazit Mapu"  #: engines/mohawk/dialogs.cpp:105  msgid "~M~ain Menu" -msgstr "~H~lavn Menu" +msgstr "~H~lavní Menu"  #: engines/mohawk/dialogs.cpp:168  msgid "~W~ater Effect Enabled" @@ -2540,19 +2532,19 @@ msgstr "~E~fekt Vody Zapnut"  #: engines/neverhood/detection.cpp:167  msgid "Skip the Hall of Records storyboard scenes" -msgstr "Peskoit scny v Sni zznam" +msgstr "Přeskočit scény v Síni záznamů"  #: engines/neverhood/detection.cpp:168  msgid "Allows the player to skip past the Hall of Records storyboard scenes" -msgstr "Umouje hri peskoit scny v Sni zznam" +msgstr "Umožňuje hráči přeskočit scény v Síni záznamů"  #: engines/neverhood/detection.cpp:174  msgid "Scale the making of videos to full screen" -msgstr "Zvtit filmy o vrob na celou obrazovku" +msgstr "Zvětšit filmy o výrobě na celou obrazovku"  #: engines/neverhood/detection.cpp:175  msgid "Scale the making of videos, so that they use the whole screen" -msgstr "Zvtit filmy o vrob tak, aby vyuivaly celou obrazovku" +msgstr "Zvětšit filmy o výrobě tak, aby využivaly celou obrazovku"  #: engines/parallaction/saveload.cpp:133  #, c-format @@ -2560,16 +2552,16 @@ msgid ""  "Can't save game in slot %i\n"  "\n"  msgstr "" -"Nelze uloit hru do pozice %i\n" +"Nelze uložit hru do pozice %i\n"  "\n"  #: engines/parallaction/saveload.cpp:204  msgid "Loading game..." -msgstr "Nahrvn hry..." +msgstr "Nahrávání hry..."  #: engines/parallaction/saveload.cpp:219  msgid "Saving game..." -msgstr "Ukldn hry..." +msgstr "Ukládání hry..."  #: engines/parallaction/saveload.cpp:272  msgid "" @@ -2580,16 +2572,16 @@ msgid ""  "\n"  "Press OK to convert them now, otherwise you will be asked next time.\n"  msgstr "" -"ScummVM zjistil, e mte star uloen pozice pro Nippon Safes, kter by " -"mly bt pejmenovny.\n" -"Star nzvy ji nejsou podporovny, take pokud je nepevedete, nebudete " -"moci vae hry nast.\n" +"ScummVM zjistil, že máte staré uložené pozice pro Nippon Safes, které by " +"měly být přejmenovány.\n" +"Staré názvy již nejsou podporovány, takže pokud je nepřevedete, nebudete " +"moci vaše hry načíst.\n"  "\n" -"Stisknte OK, abyste je pevedli te, jinak budete podni pt.\n" +"Stiskněte OK, abyste je převedli teď, jinak budete požádáni příště.\n"  #: engines/parallaction/saveload.cpp:319  msgid "ScummVM successfully converted all your savefiles." -msgstr "ScummVM spn pevedl vechny vae uloen pozice. " +msgstr "ScummVM úspěšně převedl všechny vaše uložené pozice. "  #: engines/parallaction/saveload.cpp:321  msgid "" @@ -2598,200 +2590,200 @@ msgid ""  "\n"  "Please report to the team."  msgstr "" -"ScummVM vytiskl nkter varovn ve vaem okn konzole a neme zaruit, e " -"vechny vae soubory byly pevedeny.\n" +"ScummVM vytiskl některá varování ve vašem okně konzole a nemůže zaručit, že " +"všechny vaše soubory byly převedeny.\n"  "\n" -"Prosm nahlaste to tmu" +"Prosím nahlaste to týmu"  #: engines/pegasus/pegasus.cpp:714  msgid "Invalid save file name" -msgstr "Neplatn nzev souboru" +msgstr "Neplatný název souboru"  #: engines/pegasus/pegasus.cpp:2507  msgid "Up/Zoom In/Move Forward/Open Doors" -msgstr "Nahoru/Piblit/Pohyb dopedu/Otevt dvee" +msgstr "Nahoru/Přiblížit/Pohyb dopředu/Otevřít dveře"  #: engines/pegasus/pegasus.cpp:2508  msgid "Down/Zoom Out" -msgstr "Dol/Oddlen" +msgstr "Dolů/Oddálení"  #: engines/pegasus/pegasus.cpp:2511  msgid "Display/Hide Inventory Tray" -msgstr "Zobrazit/Skrt podnos invente" +msgstr "Zobrazit/Skrýt podnos inventáře"  #: engines/pegasus/pegasus.cpp:2512  msgid "Display/Hide Biochip Tray" -msgstr "Zobrazit/Skrt podnos bioipu" +msgstr "Zobrazit/Skrýt podnos biočipu"  #: engines/pegasus/pegasus.cpp:2513  msgid "Action/Select" -msgstr "innost/Vybrat" +msgstr "Činnost/Vybrat"  #: engines/pegasus/pegasus.cpp:2514  msgid "Toggle Center Data Display" -msgstr "Pepnout centrln datovou obrazovku" +msgstr "Přepnout centrální datovou obrazovku"  #: engines/pegasus/pegasus.cpp:2515  msgid "Display/Hide Info Screen" -msgstr "Zobrazit/Skrto obrazovku informac" +msgstr "Zobrazit/Skrýto obrazovku informací"  #: engines/pegasus/pegasus.cpp:2516  msgid "Display/Hide Pause Menu" -msgstr "Zobrazit/Skrt " +msgstr "Zobrazit/Skrýt "  #: engines/queen/detection.cpp:56  msgid "Alternative intro" -msgstr "Alternativn vod" +msgstr "Alternativní úvod"  #: engines/queen/detection.cpp:57  msgid "Use an alternative game intro (CD version only)" -msgstr "Pout jinou verzi vodu (Pouze verze CD)" +msgstr "Použít jinou verzi úvodu (Pouze verze CD)"  #: engines/sci/detection.cpp:374  msgid "Skip EGA dithering pass (full color backgrounds)" -msgstr "Pekoit prchod rozkladu barev EGA (pozad v plnch barvch)" +msgstr "Překočit průchod rozkladu barev EGA (pozadí v plných barvách)"  #: engines/sci/detection.cpp:375  msgid "Skip dithering pass in EGA games, graphics are shown with full colors"  msgstr "" -"Peskoit prchod rozkladu barev EGA, obraze je zobrazen v plnch barvch" +"Přeskočit průchod rozkladu barev EGA, obraze je zobrazen v plných barvách"  #: engines/sci/detection.cpp:384  msgid "Prefer digital sound effects" -msgstr "Upednostovat digitln zvukov efekty" +msgstr "Upřednostňovat digitální zvukové efekty"  #: engines/sci/detection.cpp:385  msgid "Prefer digital sound effects instead of synthesized ones" -msgstr "Upednostovat digitln zvukov efekty ped syntetizovanmi" +msgstr "Upřednostňovat digitální zvukové efekty před syntetizovanými"  #: engines/sci/detection.cpp:404  msgid "Use IMF/Yamaha FB-01 for MIDI output" -msgstr "Pout IMF/Yamaha FB-01 pro vstup MIDI" +msgstr "Použít IMF/Yamaha FB-01 pro výstup MIDI"  #: engines/sci/detection.cpp:405  msgid ""  "Use an IBM Music Feature card or a Yamaha FB-01 FM synth module for MIDI "  "output"  msgstr "" -"Pout kartu IBM Music Feature nebo modul syntetiztoru Yamaha FB-01 FM pro " -"vstup MIDI" +"Použít kartu IBM Music Feature nebo modul syntetizátoru Yamaha FB-01 FM pro " +"výstup MIDI"  #: engines/sci/detection.cpp:415  msgid "Use CD audio" -msgstr "Pout zvuky na CD" +msgstr "Použít zvuky na CD"  #: engines/sci/detection.cpp:416  msgid "Use CD audio instead of in-game audio, if available" -msgstr "Pout zvuky na CD msto ve he, pokud je dostupn" +msgstr "Použít zvuky na CD místo ve hře, pokud je dostupné"  #: engines/sci/detection.cpp:426  msgid "Use Windows cursors" -msgstr "Pout kurzory Windows" +msgstr "Použít kurzory Windows"  #: engines/sci/detection.cpp:427  msgid ""  "Use the Windows cursors (smaller and monochrome) instead of the DOS ones" -msgstr "Pout kurzory Windows (men a ernobl) msto kurzor z DOS" +msgstr "Použít kurzory Windows (menší a černobílé) místo kurzorů z DOS"  #: engines/sci/detection.cpp:437  msgid "Use silver cursors" -msgstr "Pout stbrn kurzory" +msgstr "Použít stříbrné kurzory"  #: engines/sci/detection.cpp:438  msgid ""  "Use the alternate set of silver cursors, instead of the normal golden ones" -msgstr "Pout alternativn sadu stbrnch kurzor msto standardnch zlatch" +msgstr "Použít alternativní sadu stříbrných kurzorů místo standardních zlatých"  #: engines/scumm/dialogs.cpp:176  #, c-format  msgid "Insert Disk %c and Press Button to Continue." -msgstr "Vlote Disk %c a Stisknte Tlatko Pro Pokraovn." +msgstr "Vložte Disk %c a Stiskněte Tlačítko Pro Pokračování."  #: engines/scumm/dialogs.cpp:177  #, c-format  msgid "Unable to Find %s, (%c%d) Press Button." -msgstr "Nelze Najt %s, (%c%d) Stisknte Tlatko." +msgstr "Nelze Najít %s, (%c%d) Stiskněte Tlačítko."  #: engines/scumm/dialogs.cpp:178  #, c-format  msgid "Error reading disk %c, (%c%d) Press Button." -msgstr "Chyba pi ten disku %c, (%c%d) Stisknte Tlatko." +msgstr "Chyba při čtení disku %c, (%c%d) Stiskněte Tlačítko."  #: engines/scumm/dialogs.cpp:179  msgid "Game Paused.  Press SPACE to Continue." -msgstr "Hra Pozastavena. Stisknte MEZERNK pro pokraovn." +msgstr "Hra Pozastavena. Stiskněte MEZERNÍK pro pokračování."  #. I18N: You may specify 'Yes' symbol at the end of the line, like this:  #. "Moechten Sie wirklich neu starten?  (J/N)J"  #. Will react to J as 'Yes'  #: engines/scumm/dialogs.cpp:183  msgid "Are you sure you want to restart?  (Y/N)Y" -msgstr "Jste si jisti, e chcete restartovat? (A/N)A" +msgstr "Jste si jisti, že chcete restartovat? (A/N)A"  #. I18N: you may specify 'Yes' symbol at the end of the line. See previous comment  #: engines/scumm/dialogs.cpp:185  msgid "Are you sure you want to quit?  (Y/N)Y" -msgstr "Jste si jisti, e chcete odejt?  (A/N)A" +msgstr "Jste si jisti, že chcete odejít?  (A/N)A"  #: engines/scumm/dialogs.cpp:190  msgid "Play" -msgstr "Hrt" +msgstr "Hrát"  #: engines/scumm/dialogs.cpp:194  msgid "Insert save/load game disk" -msgstr "Vlote hern disk pro uloen/naten" +msgstr "Vložte herní disk pro uložení/načtení"  #: engines/scumm/dialogs.cpp:195  msgid "You must enter a name" -msgstr "Muste zadat jmno" +msgstr "Musíte zadat jméno"  #: engines/scumm/dialogs.cpp:196  msgid "The game was NOT saved (disk full?)" -msgstr "Hra NEBYLA uloena (pln disk?)" +msgstr "Hra NEBYLA uložena (plný disk?)"  #: engines/scumm/dialogs.cpp:197  msgid "The game was NOT loaded" -msgstr "Hra NEBYLA natena" +msgstr "Hra NEBYLA načtena"  #: engines/scumm/dialogs.cpp:198  #, c-format  msgid "Saving '%s'" -msgstr "Ukldm '%s'" +msgstr "Ukládám '%s'"  #: engines/scumm/dialogs.cpp:199  #, c-format  msgid "Loading '%s'" -msgstr "Natm '%s'" +msgstr "Načítám '%s'"  #: engines/scumm/dialogs.cpp:200  msgid "Name your SAVE game" -msgstr "Pojmenujte svoji ULOENOU hru" +msgstr "Pojmenujte svoji ULOŽENOU hru"  #: engines/scumm/dialogs.cpp:201  msgid "Select a game to LOAD" -msgstr "Vyberte hru k NATEN" +msgstr "Vyberte hru k NAČTENÍ"  #: engines/scumm/dialogs.cpp:202  msgid "Game title)" -msgstr "Nzev hry" +msgstr "Název hry"  #. I18N: Previous page button  #: engines/scumm/dialogs.cpp:288  msgid "~P~revious" -msgstr "~P~edchoz" +msgstr "~P~ředchozí"  #. I18N: Next page button  #: engines/scumm/dialogs.cpp:290  msgid "~N~ext" -msgstr "~D~al" +msgstr "~D~alší"  #: engines/scumm/dialogs.cpp:602  msgid "Speech Only" -msgstr "Pouze e" +msgstr "Pouze Řeč"  #: engines/scumm/dialogs.cpp:603  msgid "Speech and Subtitles" -msgstr "e a Titulky" +msgstr "Řeč a Titulky"  #: engines/scumm/dialogs.cpp:604  msgid "Subtitles Only" @@ -2800,47 +2792,47 @@ msgstr "Pouze Titulky"  #: engines/scumm/dialogs.cpp:612  msgctxt "lowres"  msgid "Speech & Subs" -msgstr "e a Titulky" +msgstr "Řeč a Titulky"  #: engines/scumm/dialogs.cpp:658  msgid "Select a Proficiency Level." -msgstr "Vyberte rove odbornosti." +msgstr "Vyberte úroveň odbornosti."  #: engines/scumm/dialogs.cpp:660  msgid "Refer to your Loom(TM) manual for help." -msgstr "Pro npovdu si pette manul Loom(TM)." +msgstr "Pro nápovědu si přečtěte manuál Loom(TM)."  #: engines/scumm/dialogs.cpp:664  msgid "Practice" -msgstr "Cvien" +msgstr "Cvičení"  #: engines/scumm/dialogs.cpp:665  msgid "Expert" -msgstr "Pokroil" +msgstr "Pokročilý"  #: engines/scumm/help.cpp:74  msgid "Common keyboard commands:" -msgstr "Bn klvesov pkazy" +msgstr "Běžné klávesové příkazy"  #: engines/scumm/help.cpp:75  msgid "Save / Load dialog" -msgstr "Dialog Nahrt / Uloit" +msgstr "Dialog Nahrát / Uložit"  #: engines/scumm/help.cpp:77  msgid "Skip line of text" -msgstr "Peskoit dek textu" +msgstr "Přeskočit řádek textu"  #: engines/scumm/help.cpp:78  msgid "Esc" -msgstr "Mezernk" +msgstr "Mezerník"  #: engines/scumm/help.cpp:78  msgid "Skip cutscene" -msgstr "Peskoit video" +msgstr "Přeskočit video"  #: engines/scumm/help.cpp:79  msgid "Space" -msgstr "Mezernk" +msgstr "Mezerník"  #: engines/scumm/help.cpp:79  msgid "Pause game" @@ -2856,7 +2848,7 @@ msgstr "Ctrl"  #: engines/scumm/help.cpp:80  msgid "Load game state 1-10" -msgstr "Nahrt stav hry 1-10" +msgstr "Nahrát stav hry 1-10"  #: engines/scumm/help.cpp:81 engines/scumm/help.cpp:85  #: engines/scumm/help.cpp:87 engines/scumm/help.cpp:101 @@ -2866,7 +2858,7 @@ msgstr "Alt"  #: engines/scumm/help.cpp:81  msgid "Save game state 1-10" -msgstr "Uloit stav hry 1-10" +msgstr "Uložit stav hry 1-10"  #: engines/scumm/help.cpp:87 engines/scumm/help.cpp:90  msgid "Enter" @@ -2874,15 +2866,15 @@ msgstr "Enter"  #: engines/scumm/help.cpp:88  msgid "Music volume up / down" -msgstr "Hlasitost hudby nahoru / dol" +msgstr "Hlasitost hudby nahoru / dolů"  #: engines/scumm/help.cpp:89  msgid "Text speed slower / faster" -msgstr "Zvit / Snit rychlost textu" +msgstr "Zvýšit / Snížit rychlost textu"  #: engines/scumm/help.cpp:90  msgid "Simulate left mouse button" -msgstr "Napodobit lev tlatko myi" +msgstr "Napodobit levé tlačítko myši"  #: engines/scumm/help.cpp:91  msgid "Tab" @@ -2890,116 +2882,116 @@ msgstr "Tab"  #: engines/scumm/help.cpp:91  msgid "Simulate right mouse button" -msgstr "Napodobit prav tlatko myi" +msgstr "Napodobit pravé tlačítko myši"  #: engines/scumm/help.cpp:94  msgid "Special keyboard commands:" -msgstr "Speciln klvesov pkazy" +msgstr "Speciální klávesové příkazy"  #: engines/scumm/help.cpp:95  msgid "Show / Hide console" -msgstr "Ukzat / Skrt konzoli" +msgstr "Ukázat / Skrýt konzoli"  #: engines/scumm/help.cpp:96  msgid "Start the debugger" -msgstr "Spustit ladc program" +msgstr "Spustit ladící program"  #: engines/scumm/help.cpp:97  msgid "Show memory consumption" -msgstr "Zobrazit spotebu pamti" +msgstr "Zobrazit spotřebu paměti"  #: engines/scumm/help.cpp:98  msgid "Run in fast mode (*)" -msgstr "Spustit v rychlm reimu (*)" +msgstr "Spustit v rychlém režimu (*)"  #: engines/scumm/help.cpp:99  msgid "Run in really fast mode (*)" -msgstr "Spustit ve velmi rychlm reimu (*)" +msgstr "Spustit ve velmi rychlém režimu (*)"  #: engines/scumm/help.cpp:100  msgid "Toggle mouse capture" -msgstr "Povolit zachycovn myi" +msgstr "Povolit zachycování myši"  #: engines/scumm/help.cpp:101  msgid "Switch between graphics filters" -msgstr "Pepnat mezi grafickmi filtry" +msgstr "Přepínat mezi grafickými filtry"  #: engines/scumm/help.cpp:102  msgid "Increase / Decrease scale factor" -msgstr "Zvtit / Zmenit faktor zmny velikosti" +msgstr "Zvětšit / Zmenšit faktor změny velikosti"  #: engines/scumm/help.cpp:103  msgid "Toggle aspect-ratio correction" -msgstr "Povolit korekci pomru stran" +msgstr "Povolit korekci poměru stran"  #: engines/scumm/help.cpp:108  msgid "* Note that using ctrl-f and" -msgstr "Upozorujeme, e pouvn ctrl-f a" +msgstr "Upozorňujeme, že používání ctrl-f a"  #: engines/scumm/help.cpp:109  msgid "  ctrl-g are not recommended" -msgstr "  ctrl-g nen doporueno" +msgstr "  ctrl-g není doporučeno"  #: engines/scumm/help.cpp:110  msgid "  since they may cause crashes" -msgstr "jeliko mou zpsobit pd" +msgstr "jelikož můžou způsobit pád"  #: engines/scumm/help.cpp:111  msgid "  or incorrect game behavior." -msgstr "  nebo nesprvn chovn hry." +msgstr "  nebo nesprávné chování hry."  #: engines/scumm/help.cpp:115  msgid "Spinning drafts on the keyboard:" -msgstr "Pleten nrtk na klvesnici:" +msgstr "Pletení náčrtků na klávesnici:"  #: engines/scumm/help.cpp:117  msgid "Main game controls:" -msgstr "Hlavn ovldac prvky:" +msgstr "Hlavní ovládací prvky:"  #: engines/scumm/help.cpp:122 engines/scumm/help.cpp:137  #: engines/scumm/help.cpp:162  msgid "Push" -msgstr "Tlait" +msgstr "Tlačit"  #: engines/scumm/help.cpp:123 engines/scumm/help.cpp:138  #: engines/scumm/help.cpp:163  msgid "Pull" -msgstr "Thnout" +msgstr "Táhnout"  #: engines/scumm/help.cpp:124 engines/scumm/help.cpp:139  #: engines/scumm/help.cpp:164 engines/scumm/help.cpp:198  #: engines/scumm/help.cpp:208  msgid "Give" -msgstr "Dt" +msgstr "Dát"  #: engines/scumm/help.cpp:125 engines/scumm/help.cpp:140  #: engines/scumm/help.cpp:165 engines/scumm/help.cpp:191  #: engines/scumm/help.cpp:209  msgid "Open" -msgstr "Otevt" +msgstr "Otevřít"  #: engines/scumm/help.cpp:127  msgid "Go to" -msgstr "Jt do" +msgstr "Jít do"  #: engines/scumm/help.cpp:128  msgid "Get" -msgstr "Vzt" +msgstr "Vzít"  #: engines/scumm/help.cpp:129 engines/scumm/help.cpp:153  #: engines/scumm/help.cpp:171 engines/scumm/help.cpp:199  #: engines/scumm/help.cpp:214 engines/scumm/help.cpp:225  #: engines/scumm/help.cpp:251  msgid "Use" -msgstr "Pout" +msgstr "Použít"  #: engines/scumm/help.cpp:130 engines/scumm/help.cpp:142  msgid "Read" -msgstr "Pest" +msgstr "Přečíst"  #: engines/scumm/help.cpp:131 engines/scumm/help.cpp:148  msgid "New kid" -msgstr "Nov dt" +msgstr "Nové dítě"  #: engines/scumm/help.cpp:132 engines/scumm/help.cpp:154  #: engines/scumm/help.cpp:172 @@ -3014,7 +3006,7 @@ msgstr "Vypnout"  #: engines/scumm/help.cpp:143 engines/scumm/help.cpp:168  #: engines/scumm/help.cpp:195  msgid "Walk to" -msgstr "Pejt na" +msgstr "Přejít na"  #: engines/scumm/help.cpp:144 engines/scumm/help.cpp:169  #: engines/scumm/help.cpp:196 engines/scumm/help.cpp:211 @@ -3032,11 +3024,11 @@ msgstr "Odemknout"  #: engines/scumm/help.cpp:150  msgid "Put on" -msgstr "Oblct" +msgstr "Obléct"  #: engines/scumm/help.cpp:151  msgid "Take off" -msgstr "Svlct" +msgstr "Svléct"  #: engines/scumm/help.cpp:157  msgid "Fix" @@ -3044,11 +3036,11 @@ msgstr "Spravit"  #: engines/scumm/help.cpp:159  msgid "Switch" -msgstr "Pepnout" +msgstr "Přepnout"  #: engines/scumm/help.cpp:167 engines/scumm/help.cpp:229  msgid "Look" -msgstr "Dvat se" +msgstr "Dívat se"  #: engines/scumm/help.cpp:174 engines/scumm/help.cpp:224  msgid "Talk" @@ -3065,43 +3057,43 @@ msgstr "Henrymu / Indymu"  #. I18N: These are different musical notes  #: engines/scumm/help.cpp:180  msgid "play C minor on distaff" -msgstr "zahrt c moll na peslici" +msgstr "zahrát c moll na přeslici"  #: engines/scumm/help.cpp:181  msgid "play D on distaff" -msgstr "zahrt D na peslici" +msgstr "zahrát D na přeslici"  #: engines/scumm/help.cpp:182  msgid "play E on distaff" -msgstr "zahrt E na peslici" +msgstr "zahrát E na přeslici"  #: engines/scumm/help.cpp:183  msgid "play F on distaff" -msgstr "zahrt F na peslici" +msgstr "zahrát F na přeslici"  #: engines/scumm/help.cpp:184  msgid "play G on distaff" -msgstr "zahrt G na peslici" +msgstr "zahrát G na přeslici"  #: engines/scumm/help.cpp:185  msgid "play A on distaff" -msgstr "zahrt A na peslici" +msgstr "zahrát A na přeslici"  #: engines/scumm/help.cpp:186  msgid "play B on distaff" -msgstr "zahrt B na peslici" +msgstr "zahrát B na přeslici"  #: engines/scumm/help.cpp:187  msgid "play C major on distaff" -msgstr "zahrt C dur na peslici" +msgstr "zahrát C dur na přeslici"  #: engines/scumm/help.cpp:193 engines/scumm/help.cpp:215  msgid "puSh" -msgstr "tlaIt" +msgstr "tlačIt"  #: engines/scumm/help.cpp:194 engines/scumm/help.cpp:216  msgid "pull (Yank)" -msgstr "thnout (kubnout)" +msgstr "táhnout (Škubnout)"  #: engines/scumm/help.cpp:197 engines/scumm/help.cpp:213  #: engines/scumm/help.cpp:249 @@ -3110,7 +3102,7 @@ msgstr "Mluvit s"  #: engines/scumm/help.cpp:200 engines/scumm/help.cpp:212  msgid "Look at" -msgstr "Dvat se na" +msgstr "Dívat se na"  #: engines/scumm/help.cpp:201  msgid "turn oN" @@ -3122,28 +3114,28 @@ msgstr "vypnoUt"  #: engines/scumm/help.cpp:218  msgid "KeyUp" -msgstr "KlvesaNahoru" +msgstr "KlávesaNahoru"  #: engines/scumm/help.cpp:218  msgid "Highlight prev dialogue" -msgstr "Zvraznit pedchoz dialog" +msgstr "Zvýraznit předchozí dialog"  #: engines/scumm/help.cpp:219  msgid "KeyDown" -msgstr "KlvesaDol" +msgstr "KlávesaDolů"  #: engines/scumm/help.cpp:219  msgid "Highlight next dialogue" -msgstr "Zvraznit nsledujc dialog" +msgstr "Zvýraznit následující dialog"  #: engines/scumm/help.cpp:223  msgid "Walk" -msgstr "Jt" +msgstr "Jít"  #: engines/scumm/help.cpp:226 engines/scumm/help.cpp:235  #: engines/scumm/help.cpp:242 engines/scumm/help.cpp:250  msgid "Inventory" -msgstr "Invent" +msgstr "Inventář"  #: engines/scumm/help.cpp:227  msgid "Object" @@ -3151,11 +3143,11 @@ msgstr "Objekt"  #: engines/scumm/help.cpp:230  msgid "Black and White / Color" -msgstr "ernobl / Barva" +msgstr "Černobílé / Barva"  #: engines/scumm/help.cpp:233  msgid "Eyes" -msgstr "Oi" +msgstr "Oči"  #: engines/scumm/help.cpp:234  msgid "Tongue" @@ -3163,7 +3155,7 @@ msgstr "Jazyk"  #: engines/scumm/help.cpp:236  msgid "Punch" -msgstr "Udeit" +msgstr "Udeřit"  #: engines/scumm/help.cpp:237  msgid "Kick" @@ -3171,11 +3163,11 @@ msgstr "Kopnout"  #: engines/scumm/help.cpp:240 engines/scumm/help.cpp:248  msgid "Examine" -msgstr "Prohldnout" +msgstr "Prohlédnout"  #: engines/scumm/help.cpp:241  msgid "Regular cursor" -msgstr "Obyejn kurzor" +msgstr "Obyčejný kurzor"  #. I18N: Comm is a communication device  #: engines/scumm/help.cpp:244 @@ -3184,15 +3176,15 @@ msgstr "Komunikace"  #: engines/scumm/help.cpp:247  msgid "Save / Load / Options" -msgstr "Uloit / Nahrt / Volby" +msgstr "Uložit / Nahrát / Volby"  #: engines/scumm/help.cpp:256  msgid "Other game controls:" -msgstr "Dal ovldac prvky hry" +msgstr "Další ovládací prvky hry"  #: engines/scumm/help.cpp:258 engines/scumm/help.cpp:268  msgid "Inventory:" -msgstr "Invent:" +msgstr "Inventář:"  #: engines/scumm/help.cpp:259 engines/scumm/help.cpp:275  msgid "Scroll list up" @@ -3204,63 +3196,63 @@ msgstr "Posunout seznam dolu"  #: engines/scumm/help.cpp:261 engines/scumm/help.cpp:269  msgid "Upper left item" -msgstr "Poloka vlevo nahoe" +msgstr "Položka vlevo nahoře"  #: engines/scumm/help.cpp:262 engines/scumm/help.cpp:271  msgid "Lower left item" -msgstr "Poloka vlevo dole" +msgstr "Položka vlevo dole"  #: engines/scumm/help.cpp:263 engines/scumm/help.cpp:272  msgid "Upper right item" -msgstr "Poloka vpravo nahoe" +msgstr "Položka vpravo nahoře"  #: engines/scumm/help.cpp:264 engines/scumm/help.cpp:274  msgid "Lower right item" -msgstr "Poloka vpravo dole" +msgstr "Položka vpravo dole"  #: engines/scumm/help.cpp:270  msgid "Middle left item" -msgstr "Poloka vlevo uprosted" +msgstr "Položka vlevo uprostřed"  #: engines/scumm/help.cpp:273  msgid "Middle right item" -msgstr "Poloka vpravo uprosted" +msgstr "Položka vpravo uprostřed"  #: engines/scumm/help.cpp:280 engines/scumm/help.cpp:285  msgid "Switching characters:" -msgstr "Mnn postav:" +msgstr "Měnění postav:"  #: engines/scumm/help.cpp:282  msgid "Second kid" -msgstr "Druh dt" +msgstr "Druhé dítě"  #: engines/scumm/help.cpp:283  msgid "Third kid" -msgstr "Tet dt" +msgstr "Třetí dítě"  #: engines/scumm/help.cpp:292  msgid "Toggle Inventory/IQ Points display" -msgstr "Pepnat zobrazen invente/chytrostnch bod" +msgstr "Přepínat zobrazení inventáře/chytrostních bodů"  #: engines/scumm/help.cpp:293  msgid "Toggle Keyboard/Mouse Fighting (*)" -msgstr "Pepnat bojovn pomoc klves/myi (*)" +msgstr "Přepínat bojování pomocí kláves/myši (*)"  #: engines/scumm/help.cpp:295  msgid "* Keyboard Fighting is always on," -msgstr "* Bojovn pomoc klvesnice je vdy zapnuto," +msgstr "* Bojování pomocí klávesnice je vždy zapnuto,"  #: engines/scumm/help.cpp:296  msgid "  so despite the in-game message this" -msgstr " take nehled a to, co k hra," +msgstr " takže nehledě a to, co říká hra,"  #: engines/scumm/help.cpp:297  msgid "  actually toggles Mouse Fighting Off/On" -msgstr " toto ve skutenosti ovld bojovn s my" +msgstr " toto ve skutečnosti ovládá bojování s myší"  #: engines/scumm/help.cpp:304  msgid "Fighting controls (numpad):" -msgstr "Ovldn boje (num. klv.)" +msgstr "Ovládání boje (num. kláv.)"  #: engines/scumm/help.cpp:305 engines/scumm/help.cpp:306  #: engines/scumm/help.cpp:307 @@ -3269,31 +3261,31 @@ msgstr "Ustoupit"  #: engines/scumm/help.cpp:308  msgid "Block high" -msgstr "Brnit nahoe" +msgstr "Bránit nahoře"  #: engines/scumm/help.cpp:309  msgid "Block middle" -msgstr "Brnit uprosted" +msgstr "Bránit uprostřed"  #: engines/scumm/help.cpp:310  msgid "Block low" -msgstr "Brnit dole" +msgstr "Bránit dole"  #: engines/scumm/help.cpp:311  msgid "Punch high" -msgstr "Udeit nahoru" +msgstr "Udeřit nahoru"  #: engines/scumm/help.cpp:312  msgid "Punch middle" -msgstr "Udeit doprosted" +msgstr "Udeřit doprostřed"  #: engines/scumm/help.cpp:313  msgid "Punch low" -msgstr "Udeit dol" +msgstr "Udeřit dolů"  #: engines/scumm/help.cpp:315  msgid "Sucker punch" -msgstr "Neekan rna" +msgstr "Nečekaná rána"  #: engines/scumm/help.cpp:318  msgid "These are for Indy on left." @@ -3301,74 +3293,71 @@ msgstr "Tyto jsou pro Indyho nalevo."  #: engines/scumm/help.cpp:319  msgid "When Indy is on the right," -msgstr "Kdy je Indy napravo," +msgstr "Když je Indy napravo,"  #: engines/scumm/help.cpp:320  msgid "7, 4, and 1 are switched with" -msgstr "7, 4 a 1 jsou zamnny s" +msgstr "7, 4 a 1 jsou zaměněny s"  #: engines/scumm/help.cpp:321  msgid "9, 6, and 3, respectively." -msgstr "9, 6 a 3, v tomto poad." +msgstr "9, 6 a 3, v tomto pořadí."  #: engines/scumm/help.cpp:328  msgid "Biplane controls (numpad):" -msgstr "Kontrola dvojplonku (numerick klvesnice)" +msgstr "Kontrola dvojplošníku (numerická klávesnice)"  #: engines/scumm/help.cpp:329  msgid "Fly to upper left" -msgstr "Lett doprava nahoru" +msgstr "Letět doprava nahoru"  #: engines/scumm/help.cpp:330  msgid "Fly to left" -msgstr "Lett doleva" +msgstr "Letět doleva"  #: engines/scumm/help.cpp:331  msgid "Fly to lower left" -msgstr "Lett doleva dol" +msgstr "Letět doleva dolů"  #: engines/scumm/help.cpp:332  msgid "Fly upwards" -msgstr "Lett nahoru" +msgstr "Letět nahoru"  #: engines/scumm/help.cpp:333  msgid "Fly straight" -msgstr "Lett rovn" +msgstr "Letět rovně"  #: engines/scumm/help.cpp:334  msgid "Fly down" -msgstr "Lett dol" +msgstr "Letět dolů"  #: engines/scumm/help.cpp:335  msgid "Fly to upper right" -msgstr "Lett doprava nahoru" +msgstr "Letět doprava nahoru"  #: engines/scumm/help.cpp:336  msgid "Fly to right" -msgstr "Lett doprava" +msgstr "Letět doprava"  #: engines/scumm/help.cpp:337  msgid "Fly to lower right" -msgstr "Lett doprava dol" +msgstr "Letět doprava dolů"  #: engines/scumm/input.cpp:572 -#, fuzzy  msgid "Snap scroll on" -msgstr "Plynul posunovn" +msgstr "Přichycení při posunování zapnuto"  #: engines/scumm/input.cpp:574  msgid "Snap scroll off" -msgstr "" +msgstr "Přichycení při posunování zapnuto"  #: engines/scumm/input.cpp:587 -#, fuzzy  msgid "Music volume: " -msgstr "Hlasitost hudby" +msgstr "Hlasitost hudby:"  #: engines/scumm/input.cpp:604 -#, fuzzy  msgid "Subtitle speed: " -msgstr "Rychlost titulk:" +msgstr "Rychlost titulkù:"  #: engines/scumm/scumm.cpp:1832  #, c-format @@ -3376,8 +3365,8 @@ msgid ""  "Native MIDI support requires the Roland Upgrade from LucasArts,\n"  "but %s is missing. Using AdLib instead."  msgstr "" -"Pirozen podpora MIDI vyaduje Aktualizaci Roland od LucasArts,\n" -"ale %s chyb. Msto toho je pouit AdLib." +"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  msgid "" @@ -3385,54 +3374,54 @@ msgid ""  "files for Maniac Mansion have to be in the 'Maniac' directory inside the "  "Tentacle game directory, and the game has to be added to ScummVM."  msgstr "" -"Normln by te byl sputn Maniac Mansion. Ale aby toto mohlo fungovat, " -"mus bt soubory se hrou umstny do sloky 'Maniac' uvnit sloky se hrou " -"Tentacle a hra mus bt pidna do ScummVM." +"Normálně by teď byl spuštěn Maniac Mansion. Ale aby toto mohlo fungovat, " +"musí být soubory se hrou umístěny do složky 'Maniac' uvnitř složky se hrou " +"Tentacle a hra musí být přidána do ScummVM."  #: engines/scumm/players/player_v3m.cpp:129  msgid ""  "Could not find the 'Loom' Macintosh executable to read the\n"  "instruments from. Music will be disabled."  msgstr "" -"Nelze najt spustiteln soubor 'Loom' pro Macintosh z jeho\n" -"maj bt nateny hudebn nstroje. Hudba bude zakzna." +"Nelze najít spustitelný soubor 'Loom' pro Macintosh z jehož\n" +"mají být načteny hudební nástroje. Hudba bude zakázána."  #: engines/scumm/players/player_v5m.cpp:107  msgid ""  "Could not find the 'Monkey Island' Macintosh executable to read the\n"  "instruments from. Music will be disabled."  msgstr "" -"Nelze najt spustiteln soubor 'Monkey Island' pro Macintosh z\n" -"jeho maj bt nateny hudebn nstroje. Hudba bude zakzna." +"Nelze najít spustitelný soubor 'Monkey Island' pro Macintosh z\n" +"jehož mají být načteny hudební nástroje. Hudba bude zakázána."  #: engines/sky/compact.cpp:130  msgid ""  "Unable to find \"sky.cpt\" file!\n"  "Please download it from www.scummvm.org"  msgstr "" -"Nelze nalzt soubor \"sky.cpt\"!\n" -"Sthnte si ho, prosm z www.scummvm.org" +"Nelze nalézt soubor \"sky.cpt\"!\n" +"Stáhněte si ho, prosím z www.scummvm.org"  #: engines/sky/compact.cpp:141  msgid ""  "The \"sky.cpt\" file has an incorrect size.\n"  "Please (re)download it from www.scummvm.org"  msgstr "" -"Soubor \"sky.cpt\" m nesprvnou velikost.\n" -"Sthnte si ho, prosm, (znovu) z www.scummvm.org" +"Soubor \"sky.cpt\" má nesprávnou velikost.\n" +"Stáhněte si ho, prosím, (znovu) z www.scummvm.org"  #: engines/sky/detection.cpp:44  msgid "Floppy intro" -msgstr "vod z diskety" +msgstr "Úvod z diskety"  #: engines/sky/detection.cpp:45  msgid "Use the floppy version's intro (CD version only)" -msgstr "Pout verzi vodu z diskety (Pouze verze CD)" +msgstr "Použít verzi úvodu z diskety (Pouze verze CD)"  #: engines/sword1/animation.cpp:524  #, c-format  msgid "PSX stream cutscene '%s' cannot be played in paletted mode" -msgstr "Proud videa PSX '%s' neme bt pehrn v reimu palety" +msgstr "Proud videa PSX '%s' nemůže být přehrán v režimu palety"  #: engines/sword1/animation.cpp:545 engines/sword2/animation.cpp:445  msgid "DXA cutscenes found but ScummVM has been built without zlib" @@ -3458,13 +3447,13 @@ msgid ""  "Press OK to convert them now, otherwise you will be asked again the next "  "time you start the game.\n"  msgstr "" -"ScummVM zjistil, e mte star uloen pozice pro Broken Sword 1, kter by " -"mly bt pevedeny.\n" -"Star formt uloench her ji nen podporovn, take pokud je nepevedete, " -"nebudete moci vae hry nast.\n" +"ScummVM zjistil, že máte staré uložené pozice pro Broken Sword 1, které by " +"měly být převedeny.\n" +"Starý formát uložených her již není podporován, takže pokud je nepřevedete, " +"nebudete moci vaše hry načíst.\n"  "\n" -"Stisknte OK, abyste je pevedli te, jinak budete podni znovu, pi " -"sputn tto hry.\n" +"Stiskněte OK, abyste je převedli teď, jinak budete požádáni znovu, při " +"spuštění této hry.\n"  #: engines/sword1/control.cpp:1232  #, c-format @@ -3472,8 +3461,8 @@ msgid ""  "Target new save game already exists!\n"  "Would you like to keep the old save game (%s) or the new one (%s)?\n"  msgstr "" -"Nov clov uloen hra ji existuje!\n" -"Chtli byste ponechat starou uloenou hru (%s), nebo novou (%s)?\n" +"Nová cílová uložená hra již existuje!\n" +"Chtěli byste ponechat starou uloženou hru (%s), nebo novou (%s)?\n"  #: engines/sword1/control.cpp:1235  msgid "Keep the old one" @@ -3494,46 +3483,44 @@ msgstr "Videa PSX nalezena, ale ScummVM byl sestaven bez podpory barev RGB"  #: engines/sword2/sword2.cpp:79  msgid "Show object labels" -msgstr "Zobrazit jmenovky objekt" +msgstr "Zobrazit jmenovky objektů"  #: engines/sword2/sword2.cpp:80  msgid "Show labels for objects on mouse hover" -msgstr "Zobrazit jmenovky objekt pi najet myi" +msgstr "Zobrazit jmenovky objektů při najetí myši"  #: engines/teenagent/resources.cpp:95  msgid ""  "You're missing the 'teenagent.dat' file. Get it from the ScummVM website" -msgstr "Chyb vm soubor 'teenagent.dat'. Mete ho zskat ze strnky ScummVM." +msgstr "Chybí vám soubor 'teenagent.dat'. Můžete ho získat ze stránky ScummVM."  #: engines/teenagent/resources.cpp:116  msgid ""  "The teenagent.dat file is compressed and zlib hasn't been included in this "  "executable. Please decompress it"  msgstr "" -"Soubor teenagent.dat  je komprimovn a zlib nen soust spustitelnho " -"souboru. Prosm dekomprimujte ho" +"Soubor teenagent.dat  je komprimován a zlib není součástí spustitelného " +"souboru. Prosím dekomprimujte ho"  #: engines/wintermute/detection.cpp:58  msgid "Show FPS-counter" -msgstr "Zobrazit potadlo FPS" +msgstr "Zobrazit počítadlo FPS"  #: engines/wintermute/detection.cpp:59  msgid "Show the current number of frames per second in the upper left corner" -msgstr "Zobrazit souasn poet snmk za sekundu v hornm levm rohu" +msgstr "Zobrazit současný počet snímků za sekundu v horním levém rohu"  #: engines/zvision/detection_tables.h:52 -#, fuzzy  msgid "Use the original save/load screens instead of the ScummVM interface" -msgstr "Pout pvodn obrazovky naten/uloen msto ze ScummVM" +msgstr "Použít původní obrazovky načtení/uložení místo rozhraní ScummVM"  #: engines/zvision/detection_tables.h:61  msgid "Double FPS" -msgstr "Dvojit snmky za sekundu" +msgstr "Dvojité snímky za sekundu"  #: engines/zvision/detection_tables.h:62 -#, fuzzy  msgid "Increase framerate from 30 to 60 FPS" -msgstr "Zvit hern snmky za sekundu z 30 na 60" +msgstr "Zvýšit snímkovou frekvenci z 30 na 60"  #: engines/zvision/detection_tables.h:71  msgid "Enable Venus" @@ -3541,137 +3528,134 @@ msgstr "Povolit Venus"  #: engines/zvision/detection_tables.h:72  msgid "Enable the Venus help system" -msgstr "Povolit systm npovdy Venus" +msgstr "Povolit systém nápovědy Venus"  #: engines/zvision/detection_tables.h:81  msgid "Disable animation while turning" -msgstr "Zakzat animaci pi oten" +msgstr "Zakázat animaci při otáčení"  #: engines/zvision/detection_tables.h:82 -#, fuzzy  msgid "Disable animation while turning in panorama mode" -msgstr "Zakzat animaci pi oten v panoramatickm reimu" +msgstr "Zakázat animaci při otáčení v panoramatickém režimu"  #: engines/zvision/detection_tables.h:91 -#, fuzzy  msgid "Use high resolution MPEG video" -msgstr "Pout videa MPEG ve vysokm rozlien" +msgstr "Použít video MPEG ve vysokém rozlišení"  #: engines/zvision/detection_tables.h:92 -#, fuzzy  msgid "Use MPEG video from the DVD version, instead of lower resolution AVI"  msgstr "" -"Pout videa MPEG ve vysokm rozlien pochzejc z DVD verze, namsto " -"vide AVI v nzkm rozlien." +"Použít video MPEG pocházející z DVD verze, namísto videa AVI v nízkém " +"rozlišení."  #~ msgid "EGA undithering" -#~ msgstr "Nerozkldn EGA" +#~ msgstr "Nerozkládání EGA"  #~ msgid "Enable undithering in EGA games" -#~ msgstr "Povolit nerozkldn v EGA hrch" +#~ msgstr "Povolit nerozkládání v EGA hrách"  #~ msgid "Are you sure you want to restart?  (Y/N)" -#~ msgstr "Jste si jisti, e chcete restartovat? (A/N)A" +#~ msgstr "Jste si jisti, že chcete restartovat? (A/N)A"  #~ msgid "Are you sure you want to quit?  (Y/N)" -#~ msgstr "Jste si jisti, e chcete odejt?  (A/N)A" +#~ msgstr "Jste si jisti, že chcete odejít?  (A/N)A"  #~ msgid ""  #~ "Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. "  #~ "To play it, go to 'Add Game' in the ScummVM start menu and select the "  #~ "'Maniac' directory inside the Tentacle game directory."  #~ msgstr "" -#~ "Normln by te Maniac Mansion byl sputn. Ale ScummVM toto zatm " -#~ "nedl. Abyste toto mohli hrt, pejdte do 'Pidat Hru' v potenm " -#~ "menu ScummVM a vyberte adres 'Maniac' uvnit hernho adrese Tentacle." +#~ "Normálně by teď Maniac Mansion byl spuštěn. Ale ScummVM toto zatím " +#~ "nedělá. Abyste toto mohli hrát, přejděte do 'Přidat Hru' v počátečním " +#~ "menu ScummVM a vyberte adresář 'Maniac' uvnitř herního adresáře Tentacle."  #~ msgid "MPEG-2 cutscenes found but ScummVM has been built without MPEG-2"  #~ msgstr "Videa MPEG-2 nalezena, ale ScummVM byl sestaven bez MPEG-2"  #~ msgctxt "lowres"  #~ msgid "Mass Add..." -#~ msgstr "Hromadn Pidn..." +#~ msgstr "Hromadné Přidání..."  #~ msgid ""  #~ "Turns off General MIDI mapping for games with Roland MT-32 soundtrack"  #~ msgstr "" -#~ "Vypne mapovn General MIDI pro hry s Roland MT-32 zvukovm doprovodem" +#~ "Vypne mapování General MIDI pro hry s Roland MT-32 zvukovým doprovodem"  #~ msgid "Standard (16bpp)" -#~ msgstr "Standardn (16bpp)" +#~ msgstr "Standardní (16bpp)"  #~ msgid "MPEG2 cutscenes are no longer supported" -#~ msgstr "Videa MPGE2 ji nejsou podporovna" +#~ msgstr "Videa MPGE2 již nejsou podporována"  #~ msgid "OpenGL Normal" -#~ msgstr "OpenGL Normln" +#~ msgstr "OpenGL Normální"  #~ msgid "OpenGL Conserve" -#~ msgstr "OpenGL Zachovvajc" +#~ msgstr "OpenGL Zachovávající"  #~ msgid "OpenGL Original" -#~ msgstr "OpenGL Pvodn" +#~ msgstr "OpenGL Původní"  #~ msgid "Current display mode" -#~ msgstr "Souasn reim obrazu" +#~ msgstr "Současný režim obrazu"  #~ msgid "Current scale" -#~ msgstr "Souasn velikost" +#~ msgstr "Současná velikost"  #~ msgid "Active filter mode: Linear" -#~ msgstr "Aktivn reim filtru: Linern" +#~ msgstr "Aktivní režim filtru: Lineární"  #~ msgid "Active filter mode: Nearest" -#~ msgstr "Aktivn reim filtru: Nejbli" +#~ msgstr "Aktivní režim filtru: Nejbližší"  #~ msgid "Enable Roland GS Mode" -#~ msgstr "Zapnout reim Roland GS" +#~ msgstr "Zapnout režim Roland GS"  #~ msgid "Hercules Green" -#~ msgstr "Hercules Zelen" +#~ msgstr "Hercules Zelená"  #~ msgid "Hercules Amber" -#~ msgstr "Hercules Jantarov" +#~ msgstr "Hercules Jantarová"  #~ msgctxt "lowres"  #~ msgid "Hercules Green" -#~ msgstr "Hercules Zelen" +#~ msgstr "Hercules Zelená"  #~ msgctxt "lowres"  #~ msgid "Hercules Amber" -#~ msgstr "Hercules Jantarov" +#~ msgstr "Hercules Jantarová"  #~ msgid "Save game failed!" -#~ msgstr "Ukldn hry selhalo!" +#~ msgstr "Ukládání hry selhalo!"  #~ msgctxt "lowres"  #~ msgid "Add Game..." -#~ msgstr "Pidat Hru..." +#~ msgstr "Přidat Hru..."  #~ msgid "Add Game..." -#~ msgstr "Pidat Hru..." +#~ msgstr "Přidat Hru..."  #~ msgid ""  #~ "Your game version has been detected using filename matching as a variant "  #~ "of %s."  #~ msgstr "" -#~ "Bylo zjitno, e Vae verze hry pouv jmno souboru shodujc se s " +#~ "Bylo zjištěno, že Vaše verze hry používá jméno souboru shodující se s "  #~ "variantou %s."  #~ msgid "If this is an original and unmodified version, please report any" -#~ msgstr "Pokud je toto pvodn a nezmnn verze, ohlaste prosm jakkoli" +#~ msgstr "Pokud je toto původní a nezměněná verze, ohlaste prosím jakékoli"  #~ msgid "information previously printed by ScummVM to the team." -#~ msgstr "pedele vypsan informace od ScummVM zptky tmu." +#~ msgstr "předešle vypsané informace od ScummVM zpátky týmu."  #~ msgid "Discovered %d new games." -#~ msgstr "Objeveno %d novch her." +#~ msgstr "Objeveno %d nových her."  #~ msgid "Command line argument not processed" -#~ msgstr "Argument pkazov dky nebyl zpracovn" +#~ msgstr "Argument příkazové řádky nebyl zpracován"  #~ msgid "FM Towns Emulator" -#~ msgstr "FM Towns Emultor" +#~ msgstr "FM Towns Emulátor"  #~ msgid "Invalid Path" -#~ msgstr "Neplatn Cesta" +#~ msgstr "Neplatná Cesta" diff --git a/po/fr_FR.po b/po/fr_FR.po index c34836e324..337b0a8dbc 100644 --- a/po/fr_FR.po +++ b/po/fr_FR.po @@ -5,10 +5,10 @@  #  msgid ""  msgstr "" -"Project-Id-Version: ScummVM 1.3.0svn\n" +"Project-Id-Version: ScummVM 1.8.0git\n"  "Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"  "POT-Creation-Date: 2015-12-23 00:28+0000\n" -"PO-Revision-Date: 2014-07-05 13:49-0000\n" +"PO-Revision-Date: 2015-12-26 16:06+0000\n"  "Last-Translator: Thierry Crozat <criezy@scummvm.org>\n"  "Language-Team: French <scummvm-devel@lists.sf.net>\n"  "Language: Francais\n" @@ -16,7 +16,7 @@ msgstr ""  "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.6.6\n" +"X-Generator: Poedit 1.8.6\n"  #: gui/about.cpp:94  #, c-format @@ -25,11 +25,11 @@ msgstr "(compil sur %s)"  #: gui/about.cpp:101  msgid "Features compiled in:" -msgstr "Options incluses:" +msgstr "Options incluses :"  #: gui/about.cpp:110  msgid "Available engines:" -msgstr "Moteurs disponibles:" +msgstr "Moteurs disponibles :"  #: gui/browser.cpp:68 gui/browser_osx.mm:104  msgid "Show hidden files" @@ -58,8 +58,8 @@ msgstr "Remonter"  #: 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 gui/fluidsynth-dialog.cpp:152 -#: engines/engine.cpp:483 backends/platform/wii/options.cpp:48 +#: gui/themebrowser.cpp:55 gui/fluidsynth-dialog.cpp:152 engines/engine.cpp:483 +#: backends/platform/wii/options.cpp:48  #: backends/events/default/default-events.cpp:196  #: backends/events/default/default-events.cpp:218  #: engines/drascula/saveload.cpp:49 engines/parallaction/saveload.cpp:274 @@ -74,32 +74,31 @@ msgstr "Choisir"  #: gui/editrecorddialog.cpp:58  msgid "Author:" -msgstr "" +msgstr "Auteur :"  #: gui/editrecorddialog.cpp:59 gui/launcher.cpp:204  msgid "Name:" -msgstr "Nom:" +msgstr "Nom :"  #: gui/editrecorddialog.cpp:60  msgid "Notes:" -msgstr "" +msgstr "Notes :"  #: gui/editrecorddialog.cpp:68 gui/predictivedialog.cpp:75  msgid "Ok" -msgstr "" +msgstr "Ok"  #: gui/filebrowser-dialog.cpp:49  msgid "Choose file for loading" -msgstr "" +msgstr "Choisir le fichier  charger"  #: gui/filebrowser-dialog.cpp:49  msgid "Enter filename for saving" -msgstr "" +msgstr "Choisir le nom de fichier pour la sauvegarde"  #: gui/filebrowser-dialog.cpp:132 -#, fuzzy  msgid "Do you really want to overwrite the file?" -msgstr "Voulez-vous vraiment supprimer cette sauvegarde ?" +msgstr "Voulez-vous vraiment remplacer ce fichier ?"  #: gui/filebrowser-dialog.cpp:132 gui/launcher.cpp:793 gui/launcher.cpp:941  #: gui/launcher.cpp:1000 gui/fluidsynth-dialog.cpp:217 @@ -184,7 +183,7 @@ msgstr "Touche associe: %s"  #: gui/KeysDialog.cpp:82 gui/KeysDialog.cpp:104 gui/KeysDialog.cpp:143  #, c-format  msgid "Associated key : none" -msgstr "Touche associe: aucune" +msgstr "Touche associe : aucune"  #: gui/KeysDialog.cpp:90  msgid "Please select an action" @@ -200,7 +199,7 @@ msgstr "Jeu"  #: gui/launcher.cpp:197  msgid "ID:" -msgstr "ID:" +msgstr "ID :"  #: gui/launcher.cpp:197 gui/launcher.cpp:199 gui/launcher.cpp:200  msgid "" @@ -213,7 +212,7 @@ msgstr ""  #: gui/launcher.cpp:199  msgctxt "lowres"  msgid "ID:" -msgstr "ID:" +msgstr "ID :"  #: gui/launcher.cpp:204 gui/launcher.cpp:206 gui/launcher.cpp:207  msgid "Full title of the game" @@ -222,11 +221,11 @@ msgstr "Nom complet du jeu"  #: gui/launcher.cpp:206  msgctxt "lowres"  msgid "Name:" -msgstr "Nom:" +msgstr "Nom :"  #: gui/launcher.cpp:210  msgid "Language:" -msgstr "Langue:" +msgstr "Langue :"  #: gui/launcher.cpp:210 gui/launcher.cpp:211  msgid "" @@ -244,7 +243,7 @@ msgstr "<defaut>"  #: gui/launcher.cpp:222  msgid "Platform:" -msgstr "Plateforme:" +msgstr "Systme :"  #: gui/launcher.cpp:222 gui/launcher.cpp:224 gui/launcher.cpp:225  msgid "Platform the game was originally designed for" @@ -253,7 +252,7 @@ msgstr "Plateforme pour laquelle votre jeu a t conu"  #: gui/launcher.cpp:224  msgctxt "lowres"  msgid "Platform:" -msgstr "Systme:" +msgstr "Systme :"  #: gui/launcher.cpp:237  msgid "Engine" @@ -344,16 +343,16 @@ msgstr "Chemins"  #: gui/launcher.cpp:323  msgid "Game Path:" -msgstr "Chemin du Jeu:" +msgstr "Chemin du Jeu :"  #: gui/launcher.cpp:325  msgctxt "lowres"  msgid "Game Path:" -msgstr "Chemin du Jeu:" +msgstr "Chemin du Jeu :"  #: gui/launcher.cpp:330 gui/options.cpp:1148  msgid "Extra Path:" -msgstr "Extra:" +msgstr "Extra :"  #: gui/launcher.cpp:330 gui/launcher.cpp:332 gui/launcher.cpp:333  msgid "Specifies path to additional data used by the game" @@ -362,11 +361,11 @@ msgstr "Dfinie un chemin vers des donnes suplmentaires utilises par le jeu"  #: gui/launcher.cpp:332 gui/options.cpp:1150  msgctxt "lowres"  msgid "Extra Path:" -msgstr "Extra:" +msgstr "Extra :"  #: gui/launcher.cpp:339 gui/options.cpp:1132  msgid "Save Path:" -msgstr "Sauvegardes:" +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 @@ -376,7 +375,7 @@ msgstr "Dfinie l'emplacement o les fichiers de sauvegarde sont crs"  #: gui/launcher.cpp:341 gui/options.cpp:1134  msgctxt "lowres"  msgid "Save Path:" -msgstr "Sauvegardes:" +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 @@ -500,13 +499,13 @@ msgstr "Recherche dans la liste de jeux"  #: gui/launcher.cpp:661 gui/launcher.cpp:1222  msgid "Search:" -msgstr "Filtre:" +msgstr "Filtre :"  #: gui/launcher.cpp:685 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214  #: engines/mohawk/myst.cpp:245 engines/mohawk/riven.cpp:718  #: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:600  msgid "Load game:" -msgstr "Charger le jeu:" +msgstr "Charger le jeu :"  #: gui/launcher.cpp:685 engines/dialogs.cpp:115  #: backends/platform/wince/CEActionsPocket.cpp:267 @@ -535,7 +534,7 @@ msgstr "ScummVM n'a pas trouv de jeux dans le rpertoire slectionn."  #: gui/launcher.cpp:867  msgid "Pick the game:" -msgstr "Choisissez le jeu:" +msgstr "Choisissez le jeu :"  #: gui/launcher.cpp:941  msgid "Do you really want to remove this game configuration?" @@ -560,7 +559,7 @@ msgstr "Ajout Massif..."  #: gui/launcher.cpp:1161  msgid "Record..." -msgstr "" +msgstr "Enregistrer..."  #: gui/massadd.cpp:79 gui/massadd.cpp:82  msgid "... progress ..." @@ -568,7 +567,7 @@ msgstr "... en cours ..."  #: gui/massadd.cpp:259  msgid "Scan complete!" -msgstr "Examen termin!" +msgstr "Examen termin !"  #: gui/massadd.cpp:262  #, c-format @@ -588,21 +587,19 @@ msgstr ""  #: gui/onscreendialog.cpp:101 gui/onscreendialog.cpp:103  msgid "Stop" -msgstr "" +msgstr "Arrter"  #: gui/onscreendialog.cpp:106  msgid "Edit record description" -msgstr "" +msgstr "Changer la description de l'enregistrement"  #: gui/onscreendialog.cpp:108 -#, fuzzy  msgid "Switch to Game" -msgstr "Commuter" +msgstr "Retourner au jeu"  #: gui/onscreendialog.cpp:110 -#, fuzzy  msgid "Fast replay" -msgstr "Mode rapide" +msgstr "Rejouer rapidement"  #: gui/options.cpp:85  msgid "Never" @@ -652,7 +649,7 @@ msgstr "Aucune"  #: gui/options.cpp:389  msgid "Failed to apply some of the graphic options changes:" -msgstr "Certaines options graphiques n'ont pu tre changes:" +msgstr "Certaines options graphiques n'ont pu tre changes :"  #: gui/options.cpp:401  msgid "the video mode could not be changed." @@ -668,11 +665,11 @@ msgstr "la correction de rapport d'aspect n'a pu tre change."  #: gui/options.cpp:732  msgid "Graphics mode:" -msgstr "Mode graphique:" +msgstr "Mode graphique :"  #: gui/options.cpp:746  msgid "Render mode:" -msgstr "Mode de rendu:" +msgstr "Mode de rendu :"  #: gui/options.cpp:746 gui/options.cpp:747  msgid "Special dithering modes supported by some games" @@ -693,11 +690,11 @@ msgstr "Corrige le rapport d'aspect pour les jeu 320x200"  #: gui/options.cpp:769  msgid "Preferred Device:" -msgstr "Sortie Prfr:" +msgstr "Sortie Prfr :"  #: gui/options.cpp:769  msgid "Music Device:" -msgstr "Sortie Audio:" +msgstr "Sortie Audio :"  #: gui/options.cpp:769 gui/options.cpp:771  msgid "Specifies preferred sound device or sound card emulator" @@ -712,16 +709,16 @@ msgstr "Spcifie le priphrique de sortie audio ou l'mulateur de carte audio"  #: gui/options.cpp:771  msgctxt "lowres"  msgid "Preferred Dev.:" -msgstr "Sortie Prfr:" +msgstr "Sortie Prfr :"  #: gui/options.cpp:771  msgctxt "lowres"  msgid "Music Device:" -msgstr "Sortie Audio:" +msgstr "Sortie Audio :"  #: gui/options.cpp:798  msgid "AdLib emulator:" -msgstr "mulateur AdLib:" +msgstr "mulateur AdLib :"  #: gui/options.cpp:798 gui/options.cpp:799  msgid "AdLib is used for music in many games" @@ -729,7 +726,7 @@ msgstr "AdLib est utilis pour la musique dans de nombreux jeux"  #: gui/options.cpp:809  msgid "Output rate:" -msgstr "Frquence:" +msgstr "Frquence :"  #: gui/options.cpp:809 gui/options.cpp:810  msgid "" @@ -741,7 +738,7 @@ msgstr ""  #: gui/options.cpp:820  msgid "GM Device:" -msgstr "Sortie GM:" +msgstr "Sortie GM :"  #: gui/options.cpp:820  msgid "Specifies default sound device for General MIDI output" @@ -757,7 +754,7 @@ msgstr "Utiliser le premier priphrique disponible"  #: gui/options.cpp:854  msgid "SoundFont:" -msgstr "Banque de sons:" +msgstr "Banque de sons :"  #: gui/options.cpp:854 gui/options.cpp:856 gui/options.cpp:857  msgid "SoundFont is supported by some audio cards, FluidSynth and Timidity" @@ -768,7 +765,7 @@ msgstr ""  #: gui/options.cpp:856  msgctxt "lowres"  msgid "SoundFont:" -msgstr "SoundFont:" +msgstr "SoundFont :"  #: gui/options.cpp:862  msgid "Mixed AdLib/MIDI mode" @@ -780,7 +777,7 @@ msgstr "Utiliser  la fois MIDI et AdLib"  #: gui/options.cpp:865  msgid "MIDI gain:" -msgstr "Gain MIDI:" +msgstr "Gain MIDI :"  #: gui/options.cpp:872  msgid "FluidSynth Settings" @@ -788,7 +785,7 @@ msgstr "Paramtres FluidSynth"  #: gui/options.cpp:879  msgid "MT-32 Device:" -msgstr "Sortie MT-32:" +msgstr "Sortie MT-32 :"  #: gui/options.cpp:879  msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output" @@ -831,7 +828,7 @@ msgstr "Ne pas utiliser la musique Roland MT-32"  #: gui/options.cpp:925  msgid "Text and Speech:" -msgstr "Dialogue:" +msgstr "Dialogue :"  #: gui/options.cpp:929 gui/options.cpp:939  msgid "Speech" @@ -847,12 +844,12 @@ msgstr "Les deux"  #: gui/options.cpp:933  msgid "Subtitle speed:" -msgstr "Vitesse des ST:" +msgstr "Vitesse des ST :"  #: gui/options.cpp:935  msgctxt "lowres"  msgid "Text and Speech:" -msgstr "Dialogue:" +msgstr "Dialogue :"  #: gui/options.cpp:939  msgid "Spch" @@ -874,16 +871,16 @@ msgstr "Affiche les sous-titres et joue les dialogues audio"  #: gui/options.cpp:943  msgctxt "lowres"  msgid "Subtitle speed:" -msgstr "Vitesse des ST:" +msgstr "Vitesse des ST :"  #: gui/options.cpp:959  msgid "Music volume:" -msgstr "Volume Musique:" +msgstr "Volume Musique :"  #: gui/options.cpp:961  msgctxt "lowres"  msgid "Music volume:" -msgstr "Musique:" +msgstr "Musique :"  #: gui/options.cpp:968  msgid "Mute All" @@ -891,7 +888,7 @@ msgstr "Silence"  #: gui/options.cpp:971  msgid "SFX volume:" -msgstr "Volume Bruitage:" +msgstr "Volume Bruitage :"  #: gui/options.cpp:971 gui/options.cpp:973 gui/options.cpp:974  msgid "Special sound effects volume" @@ -900,25 +897,25 @@ msgstr "Volume des effets spciaux sonores"  #: gui/options.cpp:973  msgctxt "lowres"  msgid "SFX volume:" -msgstr "Bruitage:" +msgstr "Bruitage :"  #: gui/options.cpp:981  msgid "Speech volume:" -msgstr "Volume Dialogues:" +msgstr "Volume Dialogues :"  #: gui/options.cpp:983  msgctxt "lowres"  msgid "Speech volume:" -msgstr "Dialogues:" +msgstr "Dialogues :"  #: gui/options.cpp:1140  msgid "Theme Path:" -msgstr "Thmes:" +msgstr "Thmes :"  #: gui/options.cpp:1142  msgctxt "lowres"  msgid "Theme Path:" -msgstr "Thmes:" +msgstr "Thmes :"  #: gui/options.cpp:1148 gui/options.cpp:1150 gui/options.cpp:1151  msgid "Specifies path to additional data used by all games or ScummVM" @@ -928,12 +925,12 @@ msgstr ""  #: gui/options.cpp:1157  msgid "Plugins Path:" -msgstr "Plugins:" +msgstr "Plugins :"  #: gui/options.cpp:1159  msgctxt "lowres"  msgid "Plugins Path:" -msgstr "Plugins:" +msgstr "Plugins :"  #: gui/options.cpp:1168 gui/fluidsynth-dialog.cpp:138  msgid "Misc" @@ -946,20 +943,20 @@ msgstr "Divers"  #: gui/options.cpp:1172  msgid "Theme:" -msgstr "Thme:" +msgstr "Thme :"  #: gui/options.cpp:1176  msgid "GUI Renderer:" -msgstr "Interface:" +msgstr "Interface :"  #: gui/options.cpp:1188  msgid "Autosave:" -msgstr "Sauvegarde auto:" +msgstr "Sauvegarde auto :"  #: gui/options.cpp:1190  msgctxt "lowres"  msgid "Autosave:" -msgstr "Sauvegarde:" +msgstr "Sauvegarde :"  #: gui/options.cpp:1198  msgid "Keys" @@ -967,7 +964,7 @@ msgstr "Touches"  #: gui/options.cpp:1205  msgid "GUI Language:" -msgstr "Langue:" +msgstr "Langue :"  #: gui/options.cpp:1205  msgid "Language of ScummVM GUI" @@ -1007,29 +1004,28 @@ msgstr ""  #. I18N: You must leave "#" as is, only word 'next' is translatable  #: gui/predictivedialog.cpp:87  msgid "#  next" -msgstr "" +msgstr "# suivant"  #: gui/predictivedialog.cpp:88  msgid "add" -msgstr "" +msgstr "ajouter"  #: gui/predictivedialog.cpp:92 -#, fuzzy  msgid "Delete char" -msgstr "Supprimer" +msgstr "Supprimer le caractre"  #: gui/predictivedialog.cpp:96  msgid "<" -msgstr "" +msgstr "<"  #. I18N: Pre means 'Predictive', leave '*' as is  #: gui/predictivedialog.cpp:98  msgid "*  Pre" -msgstr "" +msgstr "* Pr"  #: gui/recorderdialog.cpp:64  msgid "Recorder or Playback Gameplay" -msgstr "" +msgstr "Enregistreur ou Joueur de Gameplay"  #: gui/recorderdialog.cpp:69 gui/recorderdialog.cpp:156  #: gui/saveload-dialog.cpp:220 gui/saveload-dialog.cpp:276 @@ -1038,36 +1034,33 @@ msgstr "Supprimer"  #: gui/recorderdialog.cpp:71  msgid "Record" -msgstr "" +msgstr "Enregistrer"  #: gui/recorderdialog.cpp:72 -#, fuzzy  msgid "Playback" -msgstr "Jouer" +msgstr "Lecture"  #: gui/recorderdialog.cpp:74  msgid "Edit" -msgstr "" +msgstr "Editer"  #: gui/recorderdialog.cpp:86 gui/recorderdialog.cpp:243  #: gui/recorderdialog.cpp:253  msgid "Author: " -msgstr "" +msgstr "Auteur : "  #: gui/recorderdialog.cpp:87 gui/recorderdialog.cpp:244  #: gui/recorderdialog.cpp:254  msgid "Notes: " -msgstr "" +msgstr "Notes : "  #: gui/recorderdialog.cpp:155 -#, fuzzy  msgid "Do you really want to delete this record?" -msgstr "Voulez-vous vraiment supprimer cette sauvegarde ?" +msgstr "Voulez-vous vraiment supprimer cet enregistrement ?"  #: gui/recorderdialog.cpp:174 -#, fuzzy  msgid "Unknown Author" -msgstr "Erreur inconnue" +msgstr "Auteur inconnu"  #: gui/saveload-dialog.cpp:167  msgid "List view" @@ -1095,15 +1088,15 @@ msgstr "Voulez-vous vraiment supprimer cette sauvegarde ?"  #: gui/saveload-dialog.cpp:385 gui/saveload-dialog.cpp:884  msgid "Date: " -msgstr "Date: " +msgstr "Date : "  #: gui/saveload-dialog.cpp:389 gui/saveload-dialog.cpp:890  msgid "Time: " -msgstr "Heure: " +msgstr "Heure : "  #: gui/saveload-dialog.cpp:395 gui/saveload-dialog.cpp:898  msgid "Playtime: " -msgstr "Dure de jeu: " +msgstr "Dure de jeu : "  #: gui/saveload-dialog.cpp:408 gui/saveload-dialog.cpp:496  msgid "Untitled savestate" @@ -1177,19 +1170,19 @@ msgstr "Actif"  #: gui/fluidsynth-dialog.cpp:72  msgid "Room:" -msgstr "Pice:" +msgstr "Pice :"  #: gui/fluidsynth-dialog.cpp:79  msgid "Damp:" -msgstr "Attnuation:" +msgstr "Attnuation :"  #: gui/fluidsynth-dialog.cpp:86  msgid "Width:" -msgstr "Largeur:" +msgstr "Largeur :"  #: gui/fluidsynth-dialog.cpp:93 gui/fluidsynth-dialog.cpp:111  msgid "Level:" -msgstr "Niveau:" +msgstr "Niveau :"  #: gui/fluidsynth-dialog.cpp:100  msgid "Chorus" @@ -1197,19 +1190,19 @@ msgstr "Chorus"  #: gui/fluidsynth-dialog.cpp:104  msgid "N:" -msgstr "N:" +msgstr "N :"  #: gui/fluidsynth-dialog.cpp:118  msgid "Speed:" -msgstr "Vitesse:" +msgstr "Vitesse :"  #: gui/fluidsynth-dialog.cpp:125  msgid "Depth:" -msgstr "Profondeur:" +msgstr "Profondeur :"  #: gui/fluidsynth-dialog.cpp:132  msgid "Type:" -msgstr "Type:" +msgstr "Type :"  #: gui/fluidsynth-dialog.cpp:135  msgid "Sine" @@ -1221,7 +1214,7 @@ msgstr "Triangle"  #: gui/fluidsynth-dialog.cpp:140  msgid "Interpolation:" -msgstr "Interpolation:" +msgstr "Interpolation :"  #: gui/fluidsynth-dialog.cpp:143  msgid "None (fastest)" @@ -1279,7 +1272,7 @@ msgstr "Passer la phrase"  #: base/main.cpp:507  msgid "Error running game:" -msgstr "Erreur lors de l'xcution du jeu:" +msgstr "Erreur lors de l'xcution du jeu : "  #: base/main.cpp:554  msgid "Could not find any engine capable of running the selected game" @@ -1315,7 +1308,7 @@ msgstr "Chemin inexistant"  #: common/error.cpp:54  msgid "Path not a directory" -msgstr "Chemin n'est pas un rpertoire" +msgstr "Le chemin n'est pas un rpertoire"  #: common/error.cpp:56  msgid "Path not a file" @@ -1327,11 +1320,11 @@ msgstr "Impossible de crer le fichier"  #: common/error.cpp:61  msgid "Reading data failed" -msgstr "Echec de la lecture" +msgstr "chec de la lecture"  #: common/error.cpp:63  msgid "Writing data failed" -msgstr "Echec de l'criture des donnes" +msgstr "chec de l'criture des donnes"  #: common/error.cpp:66  msgid "Could not find suitable engine plugin" @@ -1403,7 +1396,7 @@ msgstr "Retour au ~L~anceur"  #: engines/pegasus/pegasus.cpp:377 engines/sci/engine/kfile.cpp:759  #: engines/toltecs/menu.cpp:281 engines/tsage/scenes.cpp:598  msgid "Save game:" -msgstr "Sauvegarde:" +msgstr "Sauvegarde :"  #: engines/dialogs.cpp:116 backends/platform/symbian/src/SymbianActions.cpp:44  #: backends/platform/wince/CEActionsPocket.cpp:43 @@ -1501,7 +1494,7 @@ msgid ""  "Gamestate load failed (%s)! Please consult the README for basic information, "  "and for instructions on how to obtain further assistance."  msgstr "" -"Echec du chargement (%s)! . Lisez le fichier README pour les informations de " +"Echec du chargement (%s) ! Lisez le fichier README pour les informations de "  "base et les instructions pour obtenir de l'aide supplmentaire."  #: engines/engine.cpp:480 @@ -1510,7 +1503,7 @@ msgid ""  "ScummVM. As such, it is likely to be unstable, and any saves you make might "  "not work in future versions of ScummVM."  msgstr "" -"Attention:le jeu que vous vous apprtez  jouer n'est pas encore " +"Attention : le jeu que vous vous apprtez  jouer n'est pas encore "  "compltement support par ScummVM. Il est donc instable et les sauvegardes "  "peuvent ne pas  marcher avec une future version de ScummVM." @@ -1528,7 +1521,7 @@ msgstr "mulateur DOSBox OPL"  #: audio/fmopl.cpp:67  msgid "ALSA Direct FM" -msgstr "" +msgstr "ALSA direct-FM"  #: audio/mididrv.cpp:209  #, c-format @@ -1550,8 +1543,8 @@ msgid ""  "The selected audio device '%s' cannot be used. See log file for more "  "information."  msgstr "" -"The selected audio device '%s' ne peut pas tre utilis. Voir le fichier de " -"log pour plus de dtails." +"Le priphrique audio slectionn '%s' ne peut pas tre utilis. Voir le " +"fichier de log pour plus de dtails."  #: audio/mididrv.cpp:257  #, c-format @@ -1702,7 +1695,7 @@ msgstr "Sans changement d'chelle (vous devez faire dfiler l'cran)"  #: backends/platform/ds/arm9/source/dsoptions.cpp:111  msgid "Brightness:" -msgstr "Luminosit:" +msgstr "Luminosit :"  #: backends/platform/ds/arm9/source/dsoptions.cpp:121  msgid "High quality audio (slower) (reboot)" @@ -1851,9 +1844,8 @@ msgstr "Mode rapide"  #: backends/platform/symbian/src/SymbianActions.cpp:52  #: backends/platform/wince/CEActionsPocket.cpp:44  #: backends/platform/wince/CEActionsSmartphone.cpp:52 -#: backends/events/default/default-events.cpp:218 -#: engines/scumm/dialogs.cpp:192 engines/scumm/help.cpp:83 -#: engines/scumm/help.cpp:85 +#: backends/events/default/default-events.cpp:218 engines/scumm/dialogs.cpp:192 +#: engines/scumm/help.cpp:83 engines/scumm/help.cpp:85  msgid "Quit"  msgstr "Quitter" @@ -1915,7 +1907,7 @@ msgstr "DVD"  #: backends/platform/wii/options.cpp:89 backends/platform/wii/options.cpp:101  msgid "Status:" -msgstr "Status:" +msgstr "tat :"  #: backends/platform/wii/options.cpp:90 backends/platform/wii/options.cpp:102  msgid "Unknown" @@ -1939,15 +1931,15 @@ msgstr "Serveur:"  #: backends/platform/wii/options.cpp:110  msgid "Share:" -msgstr "Disque partag:" +msgstr "Disque partag :"  #: backends/platform/wii/options.cpp:114  msgid "Username:" -msgstr "Nom d'utilisateur:" +msgstr "Nom d'utilisateur :"  #: backends/platform/wii/options.cpp:118  msgid "Password:" -msgstr "Mot de passe:" +msgstr "Mot de passe :"  #: backends/platform/wii/options.cpp:121  msgid "Init network" @@ -2226,31 +2218,33 @@ msgstr ""  "ScummVM"  #: engines/agi/detection.cpp:157 -#, fuzzy  msgid "Use an alternative palette" -msgstr "Utiliser une intro alternative (version CD uniquement)" +msgstr "Utiliser une palette alternative"  #: engines/agi/detection.cpp:158  msgid ""  "Use an alternative palette, common for all Amiga games. This was the old "  "behavior"  msgstr "" +"Utiliser une palette de remplacement commune  tous les jeux Amiga. C'est " +"l'ancien comportement."  #: engines/agi/detection.cpp:167 -#, fuzzy  msgid "Mouse support" -msgstr "Support des interruptions" +msgstr "Support de la souris"  #: engines/agi/detection.cpp:168  msgid ""  "Enables mouse support. Allows to use mouse for movement and in game menus."  msgstr "" +"Activer le support de la souris. Cela permet d'utiliser la souris pour les " +"mouvements et la navigation dans les menus."  #: engines/agi/saveload.cpp:816 engines/drascula/saveload.cpp:349  #: engines/dreamweb/saveload.cpp:169 engines/neverhood/menumodule.cpp:890  #: engines/sci/engine/kfile.cpp:858 engines/toltecs/menu.cpp:256  msgid "Restore game:" -msgstr "Charger le jeu:" +msgstr "Charger le jeu :"  #: engines/agi/saveload.cpp:816 engines/drascula/saveload.cpp:349  #: engines/dreamweb/saveload.cpp:169 engines/neverhood/menumodule.cpp:890 @@ -2265,7 +2259,7 @@ msgid ""  "\n"  "%s"  msgstr "" -"chec du chargement de l'tat du jeu depuis le fichier:\n" +"chec du chargement de l'tat du jeu depuis le fichier :\n"  "\n"  "%s" @@ -2276,7 +2270,7 @@ msgid ""  "\n"  "%s"  msgstr "" -"chec de l'enregistrement de l'tat du jeu dans le fichier:\n" +"chec de l'enregistrement de l'tat du jeu dans le fichier :\n"  "\n"  "%s" @@ -2287,23 +2281,22 @@ msgid ""  "\n"  "%s"  msgstr "" -"tat du jeu enregistr avec succs dans le fichier:\n" +"tat du jeu enregistr avec succs dans le fichier :\n"  "\n"  "%s"  #: engines/agos/animation.cpp:557  #, c-format  msgid "Cutscene file '%s' not found!" -msgstr "Fichier de squence '%s' non trouv!" +msgstr "Fichier de squence '%s' non trouv !"  #: engines/cge/detection.cpp:105 engines/cge2/detection.cpp:101 -#, fuzzy  msgid "Color Blind Mode" -msgstr "Mode Clic" +msgstr "Mode Daltonien"  #: engines/cge/detection.cpp:106 engines/cge2/detection.cpp:102  msgid "Enable Color Blind Mode by default" -msgstr "" +msgstr "Activer le mode Daltonien par dfaut"  #: engines/drascula/saveload.cpp:47  msgid "" @@ -2359,11 +2352,11 @@ msgstr "chec de la sauvegarde."  #: engines/hopkins/detection.cpp:76 engines/hopkins/detection.cpp:86  msgid "Gore Mode" -msgstr "" +msgstr "Mode Sanglant"  #: engines/hopkins/detection.cpp:77 engines/hopkins/detection.cpp:87  msgid "Enable Gore Mode when available" -msgstr "" +msgstr "Activer le Mode Sanglant quand il est disponible"  #. I18N: Studio audience adds an applause and cheering sounds whenever  #. Malcolm makes a joke. @@ -2479,8 +2472,8 @@ msgid ""  "General MIDI ones. It is still possible that\n"  "some tracks sound incorrect."  msgstr "" -"Il semble que vous utilisiez un priphrique General MIDI,\n" -"mais ce jeu ne support que le MIDI Roland MT32. Nous essayons\n" +"Il semble que vous utilisez un priphrique General MIDI,\n" +"mais ce jeu ne supporte que le MIDI Roland MT32. Nous essayons\n"  "d'associer les instruments Roland MT32 aux instruments General\n"  "MIDI. Cependant il est possible que quelques pistes ne soient\n"  " pas joues correctement." @@ -2495,6 +2488,13 @@ msgid ""  "Do you wish to use this save game file with ScummVM?\n"  "\n"  msgstr "" +"Le fichier de sauvegarde original suivant a t trouv dans le rpertoire du " +"jeu :\n" +"\n" +"%s %s\n" +"\n" +"Voulez-vous utiliser cette sauvegarde avec ScummVM ?\n" +"\n"  #: engines/kyra/saveload_eob.cpp:590  #, c-format @@ -2502,6 +2502,8 @@ msgid ""  "A save game file was found in the specified slot %d. Overwrite?\n"  "\n"  msgstr "" +"Une sauvegarde existe dj dans l'emplacement %d. craser ?\n" +"\n"  #: engines/kyra/saveload_eob.cpp:623  #, c-format @@ -2513,6 +2515,11 @@ msgid ""  "'import_savefile'.\n"  "\n"  msgstr "" +"%d sauvegardes originales ont t importes avec succs. Si vous voulez\n" +"importer d'autre sauvegardes originales plus tard, vous devrez ouvrir la\n" +"console de debug de ScummVM et utiliser la commande 'import_savefile'.\n" +"\n" +" \n"  #. I18N: Option for fast scene switching  #: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:167 @@ -2653,15 +2660,17 @@ msgstr "Utiliser une intro alternative (version CD uniquement)"  #: engines/sci/detection.cpp:374  msgid "Skip EGA dithering pass (full color backgrounds)" -msgstr "" +msgstr "Passer l'tape de tramage EGA (fonds de couleurs pleines)"  #: engines/sci/detection.cpp:375  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  msgid "Prefer digital sound effects" -msgstr "Prfrer les effets sonors digitals" +msgstr "Prfrer les effets sonores digitaux"  #: engines/sci/detection.cpp:385  msgid "Prefer digital sound effects instead of synthesized ones" @@ -2732,13 +2741,11 @@ msgstr "Jeu en pause. Appuyer sur Espace pour Reprendre."  #. "Moechten Sie wirklich neu starten?  (J/N)J"  #. Will react to J as 'Yes'  #: engines/scumm/dialogs.cpp:183 -#, fuzzy  msgid "Are you sure you want to restart?  (Y/N)Y"  msgstr "Voulez-vous vraiment recommencer ? (O/N)O"  #. I18N: you may specify 'Yes' symbol at the end of the line. See previous comment  #: engines/scumm/dialogs.cpp:185 -#, fuzzy  msgid "Are you sure you want to quit?  (Y/N)Y"  msgstr "Voulez-vous vraiment quitter ? (O/N)O" @@ -2829,7 +2836,7 @@ msgstr "Expert"  #: engines/scumm/help.cpp:74  msgid "Common keyboard commands:" -msgstr "Commandes clavier communes:" +msgstr "Commandes clavier communes :"  #: engines/scumm/help.cpp:75  msgid "Save / Load dialog" @@ -2853,7 +2860,7 @@ msgstr "Espace"  #: engines/scumm/help.cpp:79  msgid "Pause game" -msgstr "Mettre en pause:" +msgstr "Mettre en pause"  #: engines/scumm/help.cpp:80 engines/scumm/help.cpp:85  #: engines/scumm/help.cpp:96 engines/scumm/help.cpp:97 @@ -2865,7 +2872,7 @@ msgstr "Ctrl"  #: engines/scumm/help.cpp:80  msgid "Load game state 1-10" -msgstr "Charger sauvegarde 1-10:" +msgstr "Charger sauvegarde 1-10"  #: engines/scumm/help.cpp:81 engines/scumm/help.cpp:85  #: engines/scumm/help.cpp:87 engines/scumm/help.cpp:101 @@ -2875,7 +2882,7 @@ msgstr "Alt"  #: engines/scumm/help.cpp:81  msgid "Save game state 1-10" -msgstr "crire sauvegarde 1-10:" +msgstr "crire sauvegarde 1-10"  #: engines/scumm/help.cpp:87 engines/scumm/help.cpp:90  msgid "Enter" @@ -2903,7 +2910,7 @@ msgstr "Simuler bouton droit de la souris"  #: engines/scumm/help.cpp:94  msgid "Special keyboard commands:" -msgstr "Commandes clavier spciales:" +msgstr "Commandes clavier spciales :"  #: engines/scumm/help.cpp:95  msgid "Show / Hide console" @@ -2915,7 +2922,7 @@ msgstr "Ouvrir le dbugger"  #: engines/scumm/help.cpp:97  msgid "Show memory consumption" -msgstr "Afficher la consomation de mmoire" +msgstr "Afficher la consommation de mmoire"  #: engines/scumm/help.cpp:98  msgid "Run in fast mode (*)" @@ -2959,11 +2966,11 @@ msgstr "  ou comportement incorrect du jeu."  #: engines/scumm/help.cpp:115  msgid "Spinning drafts on the keyboard:" -msgstr "Filage au clavier:" +msgstr "Filage au clavier :"  #: engines/scumm/help.cpp:117  msgid "Main game controls:" -msgstr "Controles principaux du jeu:" +msgstr "Contrles principaux du jeu :"  #: engines/scumm/help.cpp:122 engines/scumm/help.cpp:137  #: engines/scumm/help.cpp:162 @@ -3248,25 +3255,24 @@ msgid "Third kid"  msgstr "Troisime enfant"  #: engines/scumm/help.cpp:292 -#, fuzzy  msgid "Toggle Inventory/IQ Points display" -msgstr "Basculer l'Affichage Central" +msgstr "Basculer entre Inventaire/Points QI"  #: engines/scumm/help.cpp:293  msgid "Toggle Keyboard/Mouse Fighting (*)" -msgstr "" +msgstr "Basculer entre Clavier et Souris pour les combats (*)"  #: engines/scumm/help.cpp:295  msgid "* Keyboard Fighting is always on," -msgstr "" +msgstr "* Le clavier peut toujours tre utilis pour les combats,"  #: engines/scumm/help.cpp:296  msgid "  so despite the in-game message this" -msgstr "" +msgstr "  donc malgr le message dans le jeu cela simplement"  #: engines/scumm/help.cpp:297  msgid "  actually toggles Mouse Fighting Off/On" -msgstr "" +msgstr "  active/dsactive le combat  la souris"  #: engines/scumm/help.cpp:304  msgid "Fighting controls (numpad):" @@ -3303,7 +3309,7 @@ msgstr "Frapper bas"  #: engines/scumm/help.cpp:315  msgid "Sucker punch" -msgstr "" +msgstr "Sucker punch"  #: engines/scumm/help.cpp:318  msgid "These are for Indy on left." @@ -3362,23 +3368,20 @@ msgid "Fly to lower right"  msgstr "Voler vers la bas  droite"  #: engines/scumm/input.cpp:572 -#, fuzzy  msgid "Snap scroll on" -msgstr "Dfilement rgulier" +msgstr "Dfilement par -coups"  #: engines/scumm/input.cpp:574  msgid "Snap scroll off" -msgstr "" +msgstr "Dfilement rgulier"  #: engines/scumm/input.cpp:587 -#, fuzzy  msgid "Music volume: " -msgstr "Volume Musique:" +msgstr "Volume Musique :"  #: engines/scumm/input.cpp:604 -#, fuzzy  msgid "Subtitle speed: " -msgstr "Vitesse des ST:" +msgstr "Vitesse des ST :"  #: engines/scumm/scumm.cpp:1832  #, c-format @@ -3390,28 +3393,31 @@ msgstr ""  "mais %s manque. Utilise AdLib  la place."  #: engines/scumm/scumm.cpp:2644 -#, fuzzy  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 "  "Tentacle game directory, and the game has to be added to ScummVM."  msgstr "" -"Normalement, Maniac Mansion devrait dmarrer maintenant. Cependant ScummVM " -"ne supporte pas encore cette fonctionalit. Pour jouer  Maniac Mansion, " -"choisissez 'Ajouter...' dans le Lanceur de ScummVM et slectionnez le " -"rpertoire 'Maniac Mansion' dans le rpertoire du jeu Day Of The Tentacle." +"Normalement, Maniac Mansion devrait dmarrer maintenant. Mais pour que cela " +"marche il faut que les fichiers du jeu Maniac Mansion soient dans e " +"rpertoire 'Maniac'  l'intrieur du rpertoire du jeu Day of the Tentacle, " +"et le jeu doit tre ajouter  ScummVM."  #: engines/scumm/players/player_v3m.cpp:129  msgid ""  "Could not find the 'Loom' Macintosh executable to read the\n"  "instruments from. Music will be disabled."  msgstr "" +"L'excutable Macintosh de 'Loom' n'a pas t trouv pour\n" +"y lire les instruments. La musique sera dsactive."  #: engines/scumm/players/player_v5m.cpp:107  msgid ""  "Could not find the 'Monkey Island' Macintosh executable to read the\n"  "instruments from. Music will be disabled."  msgstr "" +"L'excutable Macintosh de 'Monkey Island' n'a pas t trouv pour\n" +"y lire les instruments. La musique sera dsactive."  #: engines/sky/compact.cpp:130  msgid "" @@ -3532,14 +3538,14 @@ msgstr ""  #: engines/wintermute/detection.cpp:58  msgid "Show FPS-counter" -msgstr "" +msgstr "Afficher le compteur FPS"  #: engines/wintermute/detection.cpp:59  msgid "Show the current number of frames per second in the upper left corner"  msgstr "" +"Affiche le nombre d'images par seconde (FPS) dans le coin en haut  gauche"  #: engines/zvision/detection_tables.h:52 -#, fuzzy  msgid "Use the original save/load screens instead of the ScummVM interface"  msgstr ""  "Utiliser les dialogues sauvegarde/chargement d'origine plutt que ceux de " @@ -3547,38 +3553,37 @@ msgstr ""  #: engines/zvision/detection_tables.h:61  msgid "Double FPS" -msgstr "" +msgstr "Doubler les FPS"  #: engines/zvision/detection_tables.h:62  msgid "Increase framerate from 30 to 60 FPS" -msgstr "" +msgstr "Augmente de 30  60 le nombre d'images par seconde"  #: engines/zvision/detection_tables.h:71 -#, fuzzy  msgid "Enable Venus" -msgstr "Activer le mode helium" +msgstr "Activer Venus"  #: engines/zvision/detection_tables.h:72 -#, fuzzy  msgid "Enable the Venus help system" -msgstr "Activer le mode helium" +msgstr "Active le systme d'aide Venus"  #: engines/zvision/detection_tables.h:81  msgid "Disable animation while turning" -msgstr "" +msgstr "Dsactiver les animations en tournant"  #: engines/zvision/detection_tables.h:82  msgid "Disable animation while turning in panorama mode" -msgstr "" +msgstr "Dsactiver les animations en tournant dans le mode panorama"  #: engines/zvision/detection_tables.h:91  msgid "Use high resolution MPEG video" -msgstr "" +msgstr "Utiliser les vidos MPEG haute rsolution"  #: engines/zvision/detection_tables.h:92 -#, fuzzy  msgid "Use MPEG video from the DVD version, instead of lower resolution AVI" -msgstr "Utiliser les curseurs argents au lieu des curseurs normaux  dors" +msgstr "" +"Utiliser les vidos MPEG du DVD  la place des vidos AVI de plus basse " +"rsolution"  #~ msgid "EGA undithering"  #~ msgstr "Dtramage EGA" | 
