aboutsummaryrefslogtreecommitdiff
path: root/engines/mohawk/myst_areas.cpp
diff options
context:
space:
mode:
authorBastien Bouclet2016-02-06 12:57:03 +0100
committerBastien Bouclet2016-02-07 15:27:03 +0100
commit085f3700f7cd6ddb23abe3719ca21b7025695da4 (patch)
treeaaee4b1035a9add41cb9f88bf3aa6cd705b46aec /engines/mohawk/myst_areas.cpp
parent0c8d8bbd40e4806e1b63196e283bcbff21431080 (diff)
downloadscummvm-rg350-085f3700f7cd6ddb23abe3719ca21b7025695da4.tar.gz
scummvm-rg350-085f3700f7cd6ddb23abe3719ca21b7025695da4.tar.bz2
scummvm-rg350-085f3700f7cd6ddb23abe3719ca21b7025695da4.zip
MOHAWK: Make MystResourceType8::_subImages private
Diffstat (limited to 'engines/mohawk/myst_areas.cpp')
-rw-r--r--engines/mohawk/myst_areas.cpp44
1 files changed, 26 insertions, 18 deletions
diff --git a/engines/mohawk/myst_areas.cpp b/engines/mohawk/myst_areas.cpp
index 2221ef1165..45840bc4ed 100644
--- a/engines/mohawk/myst_areas.cpp
+++ b/engines/mohawk/myst_areas.cpp
@@ -369,37 +369,37 @@ MystResourceType8::MystResourceType8(MohawkEngine_Myst *vm, Common::SeekableRead
debugC(kDebugResource, "\tvar8: %d", _var8);
debugC(kDebugResource, "\tnumSubImages: %d", _numSubImages);
- _subImages = new MystResourceType8::SubImage[_numSubImages];
-
for (uint16 i = 0; i < _numSubImages; i++) {
debugC(kDebugResource, "\tSubimage %d:", i);
- _subImages[i].wdib = rlstStream->readUint16LE();
- _subImages[i].rect.left = rlstStream->readSint16LE();
+ SubImage subImage;
+ subImage.wdib = rlstStream->readUint16LE();
+ subImage.rect.left = rlstStream->readSint16LE();
- if (_subImages[i].rect.left != -1) {
- _subImages[i].rect.top = rlstStream->readSint16LE();
- _subImages[i].rect.right = rlstStream->readSint16LE();
- _subImages[i].rect.bottom = rlstStream->readSint16LE();
+ if (subImage.rect.left != -1) {
+ subImage.rect.top = rlstStream->readSint16LE();
+ subImage.rect.right = rlstStream->readSint16LE();
+ subImage.rect.bottom = rlstStream->readSint16LE();
} else {
// Use the hotspot rect as the source rect since the subimage is fullscreen
// Convert to bitmap coordinates (upside down)
- _subImages[i].rect.left = _rect.left;
- _subImages[i].rect.top = 333 - _rect.bottom;
- _subImages[i].rect.right = _rect.right;
- _subImages[i].rect.bottom = 333 - _rect.top;
+ subImage.rect.left = _rect.left;
+ subImage.rect.top = 333 - _rect.bottom;
+ subImage.rect.right = _rect.right;
+ subImage.rect.bottom = 333 - _rect.top;
}
- debugC(kDebugResource, "\twdib: %d", _subImages[i].wdib);
- debugC(kDebugResource, "\tleft: %d", _subImages[i].rect.left);
- debugC(kDebugResource, "\ttop: %d", _subImages[i].rect.top);
- debugC(kDebugResource, "\tright: %d", _subImages[i].rect.right);
- debugC(kDebugResource, "\tbottom: %d", _subImages[i].rect.bottom);
+ debugC(kDebugResource, "\twdib: %d", subImage.wdib);
+ debugC(kDebugResource, "\tleft: %d", subImage.rect.left);
+ debugC(kDebugResource, "\ttop: %d", subImage.rect.top);
+ debugC(kDebugResource, "\tright: %d", subImage.rect.right);
+ debugC(kDebugResource, "\tbottom: %d", subImage.rect.bottom);
+
+ _subImages.push_back(subImage);
}
}
MystResourceType8::~MystResourceType8() {
- delete[] _subImages;
}
void MystResourceType8::drawDataToScreen() {
@@ -480,6 +480,14 @@ uint16 MystResourceType8::getType8Var() {
return _var8;
}
+MystResourceType8::SubImage MystResourceType8::getSubImage(uint index) const {
+ return _subImages[index];
+}
+
+void MystResourceType8::setSubImageRect(uint index, const Common::Rect &rect) {
+ _subImages[index].rect = rect;
+}
+
const Common::String MystResourceType8::describe() {
Common::String desc = Common::String::format("%s var: %2d",
MystResourceType7::describe().c_str(), _var8);