void SaveLoad()
{
if (_saveLoadFlag != 0)
{
if (_savegame == null)
{
var dir = ServiceLocator.FileStorage.GetDirectoryName(Game.Path);
_savegame = ServiceLocator.FileStorage.Combine(dir, string.Format("{0}_{1}{2}.sav", Game.Id, _saveTemporaryState ? 'c' : 's', (_saveLoadSlot + 1)));
}
if (_saveLoadFlag == 2)
{
if (ServiceLocator.FileStorage.FileExists(_savegame))
{
LoadState(_savegame);
if (_saveTemporaryState && Game.Version <= 7)
{
_variables[VariableGameLoaded.Value] = (_game.Version == 8) ? 1 : 203;
}
}
}
else if (_saveLoadFlag == 1)
{
SaveState(_savegame, ServiceLocator.FileStorage.GetFileNameWithoutExtension(_savegame));
if (_saveTemporaryState)
{
_variables[VariableGameLoaded.Value] = 201;
}
}
// update IQ points after loading
if (_saveLoadFlag == 2)
{
if (_game.GameId == Scumm.IO.GameId.Indy4)
RunScript(145, false, false, new int[0]);
}
_saveLoadFlag = 0;
}
}