[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