index a7477581a189541fd1de6a9ea8f0530f44d99ef8..4e5697465bfc8b8c42ede7cc174ebc3e2dc07742 100644 (file)
--- a/src/game/g_saveload.pas
+++ b/src/game/g_saveload.pas
g_game, g_items, g_map, g_monsters, g_triggers,
g_basic, g_main, Math, wadreader,
g_weapons, g_player, g_console,
g_game, g_items, g_map, g_monsters, g_triggers,
g_basic, g_main, Math, wadreader,
g_weapons, g_player, g_console,
- e_log, g_language;
+ e_log, e_res, g_language;
const
SAVE_SIGNATURE = $56534644; // 'DFSV'
const
SAVE_SIGNATURE = $56534644; // 'DFSV'
function buildSaveName (n: Integer): AnsiString;
begin
function buildSaveName (n: Integer): AnsiString;
begin
- result := '';
- if (n < 0) or (n > 65535) then exit;
- result := formatstrf('%sSAVGAME%s.DAT', [DataDir, n]);
+ result := 'SAVGAME' + IntToStr(n) + '.DAT'
end;
end;
try
// Îòêðûâàåì ôàéë ñîõðàíåíèé
filename := buildSaveName(n);
try
// Îòêðûâàåì ôàéë ñîõðàíåíèé
filename := buildSaveName(n);
- st := openDiskFileRO(filename);
+ st := e_OpenResourceRO(SaveDirs, filename);
try
if not utils.checkSign(st, 'DFSV') then
begin
try
if not utils.checkSign(st, 'DFSV') then
begin
begin
result := false;
try
begin
result := false;
try
- st := createDiskFile(filename);
+ st := e_CreateResource(SaveDirs, filename);
try
utils.writeSign(st, 'DFSV');
utils.writeInt(st, Byte(SAVE_VERSION));
try
utils.writeSign(st, 'DFSV');
utils.writeInt(st, Byte(SAVE_VERSION));
e_WriteLog('SaveState Error: '+e.message, TMsgType.Warning);
if deleteOnError then DeleteFile(filename);
{$IF DEFINED(D2F_DEBUG)}e_WriteStackTrace(e.message);{$ENDIF}
e_WriteLog('SaveState Error: '+e.message, TMsgType.Warning);
if deleteOnError then DeleteFile(filename);
{$IF DEFINED(D2F_DEBUG)}e_WriteStackTrace(e.message);{$ENDIF}
+e_WriteStackTrace(e.message);
result := false;
end;
end;
result := false;
end;
end;
result := false;
try
result := false;
try
- st := openDiskFileRO(filename);
+ st := e_OpenResourceRO(SaveDirs, filename);
try
if not utils.checkSign(st, 'DFSV') then raise XStreamError.Create('invalid save game signature');
if (utils.readByte(st) <> SAVE_VERSION) then raise XStreamError.Create('invalid save game version');
try
if not utils.checkSign(st, 'DFSV') then raise XStreamError.Create('invalid save game signature');
if (utils.readByte(st) <> SAVE_VERSION) then raise XStreamError.Create('invalid save game version');
function g_SaveGame (n: Integer; const aname: AnsiString): Boolean;
begin
function g_SaveGame (n: Integer; const aname: AnsiString): Boolean;
begin
- result := false;
- if (n < 0) or (n > 65535) then exit;
result := g_SaveGameTo(buildSaveName(n), aname, true);
end;
function g_LoadGame (n: Integer): Boolean;
begin
result := g_SaveGameTo(buildSaveName(n), aname, true);
end;
function g_LoadGame (n: Integer): Boolean;
begin
- result := false;
- if (n < 0) or (n > 65535) then exit;
result := g_LoadGameFrom(buildSaveName(n));
end;
result := g_LoadGameFrom(buildSaveName(n));
end;