aboutsummaryrefslogtreecommitdiff
path: root/engines/gob/saveload_v4.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/gob/saveload_v4.cpp')
-rw-r--r--engines/gob/saveload_v4.cpp33
1 files changed, 13 insertions, 20 deletions
diff --git a/engines/gob/saveload_v4.cpp b/engines/gob/saveload_v4.cpp
index 9b46bb26ac..a6548dd82d 100644
--- a/engines/gob/saveload_v4.cpp
+++ b/engines/gob/saveload_v4.cpp
@@ -27,8 +27,8 @@
#include "gob/gob.h"
#include "gob/saveload.h"
-#include "gob/global.h"
#include "gob/game.h"
+#include "gob/inter.h"
namespace Gob {
@@ -247,8 +247,8 @@ bool SaveLoad_v4::loadScreenProps(SaveFile &saveFile,
debugC(3, kDebugSaveLoad, "Loading screen properties (%d, %d, %d)",
dataVar, size, offset);
- memcpy(_vm->_global->_inter_variables + dataVar, _screenProps + offset, size);
- memcpy(_vm->_global->_inter_variablesSizes + dataVar, _screenProps + 256000 + offset, size);
+ _vm->_inter->_variables->copyFrom(dataVar,
+ _screenProps + offset, _screenProps + 256000 + offset, size);
return true;
}
@@ -269,10 +269,8 @@ bool SaveLoad_v4::loadGame(SaveFile &saveFile,
return false;
}
- memcpy(_vm->_global->_inter_variables + dataVar,
- _propBuffer + offset, size);
- memcpy(_vm->_global->_inter_variablesSizes + dataVar,
- _propBuffer + offset + 500, size);
+ _vm->_inter->_variables->copyFrom(dataVar,
+ _propBuffer + offset, _propBuffer + offset + 500, size);
} else if (offset == 500) {
debugC(3, kDebugSaveLoad, "Loading save index");
@@ -282,9 +280,8 @@ bool SaveLoad_v4::loadGame(SaveFile &saveFile,
return false;
}
- SaveLoad::buildIndex(_vm->_global->_inter_variables + dataVar,
+ SaveLoad::buildIndex(_vm->_inter->_variables->getAddressOff8(dataVar, 1200),
saveFile.destName, 30, 40, 1000);
- memset(_vm->_global->_inter_variablesSizes + dataVar, 0, 1200);
} else {
int slot = getSlot(offset);
@@ -300,8 +297,7 @@ bool SaveLoad_v4::loadGame(SaveFile &saveFile,
return false;
}
- if (!_save.load(dataVar, size, 540, saveFile.destName,
- _vm->_global->_inter_variables, _vm->_global->_inter_variablesSizes))
+ if (!_save.load(dataVar, size, 540, saveFile.destName, _vm->_inter->_variables))
return false;
}
@@ -340,8 +336,8 @@ bool SaveLoad_v4::saveScreenProps(SaveFile &saveFile,
debugC(3, kDebugSaveLoad, "Saving screen properties (%d, %d, %d)",
dataVar, size, offset);
- memcpy(_screenProps + offset, _vm->_global->_inter_variables + dataVar, size);
- memcpy(_screenProps + 256000 + offset, _vm->_global->_inter_variablesSizes + dataVar, size);
+ _vm->_inter->_variables->copyTo(dataVar,
+ _screenProps + offset, _screenProps + 256000 + offset, size);
return true;
}
@@ -362,10 +358,8 @@ bool SaveLoad_v4::saveGame(SaveFile &saveFile,
return false;
}
- memcpy(_propBuffer + offset,
- _vm->_global->_inter_variables + dataVar, size);
- memcpy(_propBuffer + offset + 500,
- _vm->_global->_inter_variablesSizes + dataVar, size);
+ _vm->_inter->_variables->copyTo(dataVar,
+ _propBuffer + offset, _propBuffer + offset + 500, size);
} else if (offset == 500) {
debugC(3, kDebugSaveLoad, "Saving save index");
@@ -375,7 +369,7 @@ bool SaveLoad_v4::saveGame(SaveFile &saveFile,
return false;
}
- memcpy(_indexBuffer, _vm->_global->_inter_variables + dataVar, size);
+ _vm->_inter->_variables->copyTo(dataVar, _indexBuffer, 0, size);
_hasIndex = true;
} else {
@@ -405,8 +399,7 @@ bool SaveLoad_v4::saveGame(SaveFile &saveFile,
if(!_save.save(0, 40, 500, saveFile.destName, _indexBuffer + (slot * 40), 0))
return false;
- if (!_save.save(dataVar, size, 540, saveFile.destName,
- _vm->_global->_inter_variables, _vm->_global->_inter_variablesSizes))
+ if (!_save.save(dataVar, size, 540, saveFile.destName, _vm->_inter->_variables))
return false;
}