diff options
Diffstat (limited to 'engines/gob/map_v2.cpp')
-rw-r--r-- | engines/gob/map_v2.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/engines/gob/map_v2.cpp b/engines/gob/map_v2.cpp index 668b4d2e97..bd9f5b3efc 100644 --- a/engines/gob/map_v2.cpp +++ b/engines/gob/map_v2.cpp @@ -56,12 +56,12 @@ void Map_v2::loadMapObjects(const char *avjFile) { uint32 passPos; var = _vm->_parse->parseVarIndex(); - variables = _vm->_global->_inter_variables + var; + variables = _vm->_inter->_variables->getAddressOff8(var, 0); id = _vm->_inter->load16(); if (id == -1) { - _passMap = (int8 *)(_vm->_global->_inter_variables + var); + _passMap = (int8 *) _vm->_inter->_variables->getAddressOff8(var, 0); return; } @@ -104,18 +104,17 @@ void Map_v2::loadMapObjects(const char *avjFile) { // In the original asm, this writes byte-wise into the variables-array tmpPos = mapData.pos(); mapData.seek(passPos); - if (variables != _vm->_global->_inter_variables) { - byte *sizes; + if ((variables != 0) && + (variables != _vm->_inter->_variables->getAddressOff8(0, 0))) { _passMap = (int8 *) variables; mapHeight = _screenHeight / _tilesHeight; mapWidth = _screenWidth / _tilesWidth; - sizes = _vm->_global->_inter_variablesSizes + - (((byte *) _passMap) - _vm->_global->_inter_variables); + for (int i = 0; i < mapHeight; i++) { for (int j = 0; j < mapWidth; j++) setPass(j, i, mapData.readSByte()); - memset(sizes + i * _passWidth, 0, mapWidth); + _vm->_inter->_variables->getAddressOff8(var + i * _passWidth, mapWidth); } } mapData.seek(tmpPos); |