aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
diff options
context:
space:
mode:
authorColin Snover2016-07-11 09:08:00 -0500
committerColin Snover2016-07-11 10:39:50 -0500
commit08821cf4e3cec6d8b65b4cb1fa49f466430eb330 (patch)
tree3445fe00989d5cb8070dfb77112e0cd8cbd17226 /engines/sci
parentf171db965c2a927d8d526f56d777a70f6b89ed51 (diff)
downloadscummvm-rg350-08821cf4e3cec6d8b65b4cb1fa49f466430eb330.tar.gz
scummvm-rg350-08821cf4e3cec6d8b65b4cb1fa49f466430eb330.tar.bz2
scummvm-rg350-08821cf4e3cec6d8b65b4cb1fa49f466430eb330.zip
SCI32: Give planes a default type
With the addition of the transparent pic type code, the _type property would be read uninitialised by setType if _pictureId was set to kPlanePic. CID 1357230, 1357231.
Diffstat (limited to 'engines/sci')
-rw-r--r--engines/sci/graphics/plane32.cpp3
-rw-r--r--engines/sci/graphics/plane32.h7
2 files changed, 8 insertions, 2 deletions
diff --git a/engines/sci/graphics/plane32.cpp b/engines/sci/graphics/plane32.cpp
index 87ab43bb5c..aa629e4081 100644
--- a/engines/sci/graphics/plane32.cpp
+++ b/engines/sci/graphics/plane32.cpp
@@ -47,6 +47,7 @@ uint16 Plane::_nextObjectId = 20000;
Plane::Plane(const Common::Rect &gameRect, PlanePictureCodes pictureId) :
_pictureId(pictureId),
_mirrored(false),
+_type(kPlaneTypeColored),
_back(0),
_priorityChanged(0),
_object(make_reg(0, _nextObjectId++)),
@@ -63,6 +64,7 @@ _gameRect(gameRect) {
}
Plane::Plane(reg_t object) :
+_type(kPlaneTypeColored),
_priorityChanged(false),
_object(object),
_redrawAllCount(g_sci->_gfxFrameout->getScreenCount()),
@@ -93,6 +95,7 @@ _moved(0) {
Plane::Plane(const Plane &other) :
_pictureId(other._pictureId),
_mirrored(other._mirrored),
+_type(other._type),
_back(other._back),
_object(other._object),
_priority(other._priority),
diff --git a/engines/sci/graphics/plane32.h b/engines/sci/graphics/plane32.h
index a1739264e8..3981a2b319 100644
--- a/engines/sci/graphics/plane32.h
+++ b/engines/sci/graphics/plane32.h
@@ -150,6 +150,11 @@ private:
public:
/**
+ * The type of the plane.
+ */
+ PlaneType _type;
+
+ /**
* The color to use when erasing the plane. Only
* applies to planes of type kPlaneTypeColored.
*/
@@ -186,8 +191,6 @@ public:
*/
int _redrawAllCount;
- PlaneType _type;
-
/**
* Flags indicating the state of the plane.
* - `created` is set when the plane is first created,