diff options
-rw-r--r-- | scumm/boxes.cpp | 4 | ||||
-rw-r--r-- | scumm/scummvm.cpp | 13 |
2 files changed, 9 insertions, 8 deletions
diff --git a/scumm/boxes.cpp b/scumm/boxes.cpp index c57ca1e27e..088ce91173 100644 --- a/scumm/boxes.cpp +++ b/scumm/boxes.cpp @@ -136,9 +136,9 @@ int Scumm::getScale(int box, int x, int y) if (_features & GF_AFTER_V8) { int slot = FROM_LE_32(ptr->v8.scaleSlot); if (slot) { - assert(0 <= slot && slot < 20); + assert(1 <= slot && slot <= 20); int scaleX = 0, scaleY = 0; - ScaleSlot &s = _scaleSlots[slot]; + ScaleSlot &s = _scaleSlots[slot-1]; if (s.y1 == s.y2 && s.x1 == s.x2) error("Invalid scale slot %d", slot); diff --git a/scumm/scummvm.cpp b/scumm/scummvm.cpp index 63afbc2286..8c9bea8b85 100644 --- a/scumm/scummvm.cpp +++ b/scumm/scummvm.cpp @@ -980,12 +980,13 @@ void Scumm::setScaleItem(int slot, int a, int b, int c, int d) void Scumm::setScaleSlot(int slot, int x1, int y1, int scale1, int x2, int y2, int scale2) { - _scaleSlots[slot].x2 = x2; - _scaleSlots[slot].y2 = y2; - _scaleSlots[slot].scale2 = scale2; - _scaleSlots[slot].x1 = x1; - _scaleSlots[slot].y1 = y1; - _scaleSlots[slot].scale1 = scale1; + assert(1 <= slot && slot <= 20); + _scaleSlots[slot-1].x2 = x2; + _scaleSlots[slot-1].y2 = y2; + _scaleSlots[slot-1].scale2 = scale2; + _scaleSlots[slot-1].x1 = x1; + _scaleSlots[slot-1].y1 = y1; + _scaleSlots[slot-1].scale1 = scale1; } void Scumm::dumpResource(char *tag, int idx, byte *ptr) |