aboutsummaryrefslogtreecommitdiff
path: root/engines/cge/bitmap.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/cge/bitmap.cpp')
-rw-r--r--engines/cge/bitmap.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/engines/cge/bitmap.cpp b/engines/cge/bitmap.cpp
index 309b89bdda..7089c8e0d1 100644
--- a/engines/cge/bitmap.cpp
+++ b/engines/cge/bitmap.cpp
@@ -94,7 +94,7 @@ Bitmap::Bitmap(CGEEngine *vm, uint16 w, uint16 h, uint8 fill)
// Replicate across the entire table
for (HideDesc *hdP = b + 1; hdP < (b + _h); hdP++)
*hdP = *b;
-
+
b->_skip = 0; // fix the first entry
_v = v;
_b = b;
@@ -123,12 +123,15 @@ Bitmap::~Bitmap() {
Bitmap &Bitmap::operator=(const Bitmap &bmp) {
debugC(1, kCGEDebugBitmap, "&Bitmap::operator =");
+ if (this == &bmp)
+ return *this;
uint8 *v0 = bmp._v;
_w = bmp._w;
_h = bmp._h;
_m = NULL;
_map = 0;
+ _vm = bmp._vm;
delete[] _v;
if (v0 == NULL) {
@@ -354,7 +357,7 @@ bool Bitmap::loadVBM(EncryptedStream *f) {
// Read in the palette
byte palData[kPalSize];
f->read(palData, kPalSize);
-
+
const byte *srcP = palData;
for (int idx = 0; idx < kPalCount; idx++, srcP += 3) {
_vm->_bitmapPalette[idx]._r = *srcP;