[Scummvm-git-logs] scummvm master -> 52a9b4a03ca93d59252f9bce125c04f5d4c16a50

bluegr noreply at scummvm.org
Tue Jan 25 23:41:09 UTC 2022


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
52a9b4a03c TRECISION: Clean up location reading code


Commit: 52a9b4a03ca93d59252f9bce125c04f5d4c16a50
    https://github.com/scummvm/scummvm/commit/52a9b4a03ca93d59252f9bce125c04f5d4c16a50
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2022-01-26T01:40:48+02:00

Commit Message:
TRECISION: Clean up location reading code

Changed paths:
    engines/trecision/graphics.cpp
    engines/trecision/graphics.h
    engines/trecision/trecision.cpp
    engines/trecision/trecision.h


diff --git a/engines/trecision/graphics.cpp b/engines/trecision/graphics.cpp
index 2e454c3a2bf..cfc7f5ed0ca 100644
--- a/engines/trecision/graphics.cpp
+++ b/engines/trecision/graphics.cpp
@@ -262,8 +262,11 @@ void GraphicsManager::drawTexturePixel(uint16 textureX, uint16 textureY, uint16
 	_screenBuffer.setPixel(screenX, screenY, texturePixel);
 }
 
-void GraphicsManager::loadBackground(Common::SeekableReadStream *stream, uint16 width, uint16 height) {
-	readSurface(stream, &_background, width, height);
+void GraphicsManager::loadBackground(Common::SeekableReadStream *stream) {
+	SObject bgInfo;
+	bgInfo.readRect(stream);
+
+	readSurface(stream, &_background, bgInfo._rect.width(), bgInfo._rect.height());
 	_smkBackground.copyFrom(_background);
 	memcpy(_screenBuffer.getBasePtr(0, TOP), _background.getPixels(), _background.pitch * _background.h);
 }
diff --git a/engines/trecision/graphics.h b/engines/trecision/graphics.h
index 45d51beff68..df31acc309e 100644
--- a/engines/trecision/graphics.h
+++ b/engines/trecision/graphics.h
@@ -77,7 +77,7 @@ public:
 	void copyToScreenBuffer(const Graphics::Surface *surface, int x, int y, const byte *palette);
 	void blitToScreenBuffer(const Graphics::Surface *surface, int x, int y, const byte *palette, bool useSmkBg);
 	void paintScreen(bool flag);
-	void loadBackground(Common::SeekableReadStream *stream, uint16 width, uint16 height);
+	void loadBackground(Common::SeekableReadStream *stream);
 	void clearScreenBuffer();
 	void clearScreenBufferTop();
 	void clearScreenBufferInventory();
diff --git a/engines/trecision/trecision.cpp b/engines/trecision/trecision.cpp
index 9594710a9b1..f2fe5c3761a 100644
--- a/engines/trecision/trecision.cpp
+++ b/engines/trecision/trecision.cpp
@@ -381,27 +381,27 @@ void TrecisionEngine::reEvent() {
 	_scheduler->doEvent(_curMessage->_class, _curMessage->_event, _curMessage->_priority, _curMessage->_u16Param1, _curMessage->_u16Param2, _curMessage->_u8Param, _curMessage->_u32Param);
 }
 
-void TrecisionEngine::readLoc() {
-	_soundMgr->stopAllExceptMusic();
-
-	_graphicsMgr->clearScreenBufferTop();
-
+Common::SeekableReadStreamEndian *TrecisionEngine::getLocStream() {
 	Common::String filename;
-	Common::SeekableReadStreamEndian *picFile;
+
 	if (isAmiga()) {
 		filename = Common::String::format("%s.bm", _room[_curRoom]._baseName);
-		picFile = readEndian(_dataFile.createReadStreamForMember(filename));
+		return readEndian(_dataFile.createReadStreamForMember(filename));
 	} else {
 		filename = Common::String::format("%s.cr", _room[_curRoom]._baseName);
-		picFile = readEndian(_dataFile.createReadStreamForCompressedMember(filename));
+		return readEndian(_dataFile.createReadStreamForCompressedMember(filename));
 	}
+}
 
-	SObject bgInfo;
-	bgInfo.readRect(picFile);
+void TrecisionEngine::readLoc() {
+	_soundMgr->stopAllExceptMusic();
 
-	_graphicsMgr->loadBackground(picFile, bgInfo._rect.width(), bgInfo._rect.height());
+	_graphicsMgr->clearScreenBufferTop();
 	_sortTable.clear();
 	_sortTableReplay.clear();
+
+	Common::SeekableReadStreamEndian *picFile = getLocStream();
+	_graphicsMgr->loadBackground(picFile);
 	readObj(picFile);
 
 	_soundMgr->stopAll();
@@ -444,20 +444,8 @@ void TrecisionEngine::redrawRoom() {
 		}
 	}
 
-	Common::String filename;
-	Common::SeekableReadStreamEndian *picFile;
-	if (isAmiga()) {
-		filename = Common::String::format("%s.bm", _room[_curRoom]._baseName);
-		picFile = readEndian(_dataFile.createReadStreamForMember(filename));
-	} else {
-		filename = Common::String::format("%s.cr", _room[_curRoom]._baseName);
-		picFile = readEndian(_dataFile.createReadStreamForCompressedMember(filename));
-	}
-
-	SObject bgInfo;
-	bgInfo.readRect(picFile);
-
-	_graphicsMgr->loadBackground(picFile, bgInfo._rect.width(), bgInfo._rect.height());
+	Common::SeekableReadStreamEndian *picFile = getLocStream();
+	_graphicsMgr->loadBackground(picFile);
 	_sortTable.clear();
 	_sortTable = _sortTableReplay;
 
diff --git a/engines/trecision/trecision.h b/engines/trecision/trecision.h
index d27b4e7684a..82cf0b1f929 100644
--- a/engines/trecision/trecision.h
+++ b/engines/trecision/trecision.h
@@ -232,6 +232,7 @@ public:
 	void setObjectAnim(uint16 objectId, uint16 animId);
 	void redrawRoom();
 	void readLoc();
+	Common::SeekableReadStreamEndian *getLocStream();
 	void tendIn();
 	void readExtraObj2C();
 	void readPositionerSnapshots();




More information about the Scummvm-git-logs mailing list