diff options
Diffstat (limited to 'engines/lure/res_struct.cpp')
-rw-r--r-- | engines/lure/res_struct.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/engines/lure/res_struct.cpp b/engines/lure/res_struct.cpp index 8ce8a14f69..0903586c98 100644 --- a/engines/lure/res_struct.cpp +++ b/engines/lure/res_struct.cpp @@ -1220,9 +1220,11 @@ void BarmanLists::loadFromStream(Common::ReadStream *stream) { uint8 saveVersion = LureEngine::getReference().saveVersion(); int numEntries = (saveVersion >= 30) ? 3 : 2; + reset(); for (int index = 0; index < numEntries; ++index) { int16 value = stream->readUint16LE(); - _barList[index].currentCustomer = (value == 0) ? NULL : &_barList[index].customers[value - 1]; + _barList[index].currentCustomer = ((value < 1) || (value > NUM_SERVE_CUSTOMERS)) ? NULL : + &_barList[index].customers[value - 1]; for (int ctr = 0; ctr < NUM_SERVE_CUSTOMERS; ++ctr) { _barList[index].customers[ctr].hotspotId = stream->readUint16LE(); |