diff options
| -rw-r--r-- | engines/sludge/builtin.cpp | 5 | ||||
| -rw-r--r-- | engines/sludge/graphics.cpp | 4 | ||||
| -rw-r--r-- | engines/sludge/graphics.h | 7 | ||||
| -rw-r--r-- | engines/sludge/sludger.cpp | 3 | ||||
| -rw-r--r-- | engines/sludge/thumbnail.cpp | 23 | 
5 files changed, 30 insertions, 12 deletions
| diff --git a/engines/sludge/builtin.cpp b/engines/sludge/builtin.cpp index 8195fc53f9..909118a2dd 100644 --- a/engines/sludge/builtin.cpp +++ b/engines/sludge/builtin.cpp @@ -58,7 +58,7 @@ int speechMode = 0;  Variable *launchResult = NULL; -extern int lastFramesPerSecond, thumbWidth, thumbHeight; +extern int lastFramesPerSecond;  extern bool allowAnyFilename;  extern VariableStack *noStack;  extern StatusStuff  *nowStatus; @@ -2460,13 +2460,14 @@ builtIn(showThumbnail) {  builtIn(setThumbnailSize) {  	UNUSEDALL +	int thumbHeight, thumbWidth;  	if (!getValueType(thumbHeight, SVT_INT, fun->stack->thisVar))  		return BR_ERROR;  	trimStack(fun->stack);  	if (!getValueType(thumbWidth, SVT_INT, fun->stack->thisVar))  		return BR_ERROR;  	trimStack(fun->stack); -	if (!g_sludge->_gfxMan->checkSizeValide(thumbWidth, thumbHeight)) { +	if (!g_sludge->_gfxMan->setThumbnailSize(thumbWidth, thumbHeight)) {  		Common::String buff = Common::String::format("%i x %i", thumbWidth, thumbWidth);  		fatal("Invalid thumbnail size", buff);  		return BR_ERROR; diff --git a/engines/sludge/graphics.cpp b/engines/sludge/graphics.cpp index 578e6f65fe..580124f513 100644 --- a/engines/sludge/graphics.cpp +++ b/engines/sludge/graphics.cpp @@ -83,6 +83,10 @@ void GraphicsManager::init() {  	_currentBurnR = 0;  	_currentBurnG = 0;  	_currentBurnB = 0; + +	// Thumbnail +	_thumbWidth = 0; +	_thumbHeight = 0;  }  void GraphicsManager::kill() { diff --git a/engines/sludge/graphics.h b/engines/sludge/graphics.h index 16973a1658..6c5351cb53 100644 --- a/engines/sludge/graphics.h +++ b/engines/sludge/graphics.h @@ -167,7 +167,8 @@ public:  	void saveColors(Common::WriteStream *stream);  	void loadColors(Common::SeekableReadStream *stream); -	// Thumb nail +	// Thumbnail +	bool setThumbnailSize(int thumbWidth, int thumbHeight);  	bool saveThumbnail(Common::WriteStream *stream);  	bool skipThumbnail(Common::SeekableReadStream *stream);  	void showThumbnail(const Common::String &filename, int x, int y); @@ -222,6 +223,10 @@ private:  	// Colors  	uint _currentBlankColour;  	byte _currentBurnR, _currentBurnG, _currentBurnB; + +	// Thumbnail +	int _thumbWidth; +	int _thumbHeight;  };  } // End of namespace Sludge diff --git a/engines/sludge/sludger.cpp b/engines/sludge/sludger.cpp index 4f5f204d92..f616fe696b 100644 --- a/engines/sludge/sludger.cpp +++ b/engines/sludge/sludger.cpp @@ -79,7 +79,7 @@ Variable *globalVars;  int numGlobals = 0;  extern Variable *launchResult; -extern int lastFramesPerSecond, thumbWidth, thumbHeight; +extern int lastFramesPerSecond;  extern bool allowAnyFilename;  extern byte fadeMode; @@ -167,7 +167,6 @@ void initSludge() {  	launchResult = nullptr;  	lastFramesPerSecond = -1; -	thumbWidth = thumbHeight = 0;  	allowAnyFilename = true;  	noStack = nullptr;  	numBIFNames = numUserFunc = 0; diff --git a/engines/sludge/thumbnail.cpp b/engines/sludge/thumbnail.cpp index 2c7e007f71..dcbcd91db3 100644 --- a/engines/sludge/thumbnail.cpp +++ b/engines/sludge/thumbnail.cpp @@ -35,14 +35,23 @@  namespace Sludge { -int thumbWidth = 0, thumbHeight = 0; +bool GraphicsManager::setThumbnailSize(int thumbWidth, int thumbHeight) +{ +	if (checkSizeValide(thumbWidth, thumbHeight)) +	{ +		_thumbWidth = thumbWidth; +		_thumbHeight = thumbHeight; +		return true; +	} +	return false; +}  bool GraphicsManager::saveThumbnail(Common::WriteStream *stream) { -	stream->writeUint32LE(thumbWidth); -	stream->writeUint32LE(thumbHeight); +	stream->writeUint32LE(_thumbWidth); +	stream->writeUint32LE(_thumbHeight); -	if (thumbWidth && thumbHeight) { +	if (_thumbWidth && _thumbHeight) {  		if (!freeze())  			return false; @@ -117,12 +126,12 @@ void GraphicsManager::showThumbnail(const Common::String &filename, int atX, int  }  bool GraphicsManager::skipThumbnail(Common::SeekableReadStream *stream) { -	thumbWidth = stream->readUint32LE(); -	thumbHeight = stream->readUint32LE(); +	_thumbWidth = stream->readUint32LE(); +	_thumbHeight = stream->readUint32LE();  	// Load image  	Graphics::Surface tmp; -	if (thumbWidth & thumbHeight) { +	if (_thumbWidth & _thumbHeight) {  		if (!ImgLoader::loadPNGImage(stream, &tmp))  			return false;  		else | 
