reverted lua related changes before broken state and changed savegame layer to prevent touch lua library

This commit is contained in:
Pawel Kolodziejski 2006-05-13 10:16:19 +00:00
parent 3306ae4792
commit ca87f8b052
8 changed files with 257 additions and 370 deletions

View file

@ -456,6 +456,14 @@ void Engine::mainLoop() {
}
}
void Engine::savegameGzread(void *data, int size) {
gzread(g_engine->_savegameFileHandle, data, size);
}
void Engine::savegameGzwrite(void *data, int size) {
gzwrite(g_engine->_savegameFileHandle, data, size);
}
void Engine::savegameRestore() {
printf("Engine::savegameRestore() started.\n");
_savegameLoadRequest = false;
@ -466,6 +474,7 @@ void Engine::savegameRestore() {
strcpy(filename, _savegameFileName);
}
_savedState = new SaveGame(filename, false);
_savegameFileHandle = _savedState->fileHandle();
g_imuse->stopAllSounds();
g_imuse->resetState();
@ -485,7 +494,7 @@ void Engine::savegameRestore() {
//Primitive_Restore(_savedState);
//Smush_Restore(_savedState);
g_imuse->restoreState(_savedState);
lua_Restore(_savedState);
lua_Restore(savegameGzread);
// unlock resources
delete _savedState;
@ -506,6 +515,7 @@ void Engine::savegameSave() {
strcpy(filename, _savegameFileName);
}
_savedState = new SaveGame(filename, true);
_savegameFileHandle = _savedState->fileHandle();
g_imuse->pause(true);
g_smush->pause(true);
@ -521,7 +531,7 @@ void Engine::savegameSave() {
//Primitive_Save(_savedState);
//Smush_Save(_savedState);
g_imuse->saveState(_savedState);
lua_Save(_savedState);
lua_Save(savegameGzwrite);
delete _savedState;