X-Git-Url: http://deadsoftware.ru/gitweb?p=d2df-sdl.git;a=blobdiff_plain;f=src%2Fgame%2Fg_saveload.pas;h=17a186698a26ed0c5cccb2ce8d4f336c4bbb1fd2;hp=194b8337a06813310aacb4a7b39a808fbdc8da02;hb=6a8baf759e33dfda3cf8d9062b6989cfd090a695;hpb=6f611376783122c46f1613ebd74586e3e746c191 diff --git a/src/game/g_saveload.pas b/src/game/g_saveload.pas index 194b833..17a1866 100644 --- a/src/game/g_saveload.pas +++ b/src/game/g_saveload.pas @@ -501,14 +501,26 @@ begin st.Free(); end; except + on e: EFileNotFoundException do + begin + g_Console_Add(_lc[I_GAME_ERROR_LOAD]); + g_Console_Add('LoadState Error: '+e.message); + e_WriteLog('LoadState Error: '+e.message, TMsgType.Warning); + gLoadGameMode := false; + result := false; + end; on e: Exception do begin g_Console_Add(_lc[I_GAME_ERROR_LOAD]); + g_Console_Add('LoadState Error: '+e.message); e_WriteLog('LoadState Error: '+e.message, TMsgType.Warning); {$IF DEFINED(D2F_DEBUG)}e_LogWritefln('stream error position: 0x%08x', [errpos], TMsgType.Warning);{$ENDIF} gLoadGameMode := false; result := false; - if not gameCleared then g_Game_Free(); + if gState <> STATE_MENU then + g_FatalError(_lc[I_GAME_ERROR_LOAD]) + else if not gameCleared then + g_Game_Free(); {$IF DEFINED(D2F_DEBUG)}e_WriteStackTrace(e.message);{$ENDIF} end; end;