Делаю сохранение игры на флешку но сохранение/загрузка работает только один раз. сохранился, загрузился и всё, при повторной попытке этих действий игра зависает. не могу найти причину.
вот код:
function readint:integer;
begin
readint:=(read_uns_byte<<24) and (read_uns_byte<<16) and (read_uns_byte<<8) and (read_uns_byte)
end;
procedure writeint(intt:integer);
begin
write_byte((intt>>24) and $FF);
write_byte((intt>>16) and $FF);
write_byte((intt>>8) and $FF);
write_byte((intt) and $FF);
end;
procedure savegame;
var
ix,iy:integer;
begin
file_create('/e:/world.sav');
if open_file('/e:/world.sav')=1 then
begin
writeint(seed);
for ix:=0 to 255 do
for iy:=0 to 127 do
begin
write_byte(map[ix,iy]);
write_byte(i_map[ix,iy]);
end;
if close_file('/e:/world.sav')=1 then debug('OK');
end;
end;
procedure loadgame;
var
ix,iy:integer;
begin
if file_exists('/e:/world.sav')=1 then
if open_file('/e:/world.sav')=1 then
begin
seed:=readint;
for ix:=0 to 255 do
for iy:=0 to 127 do
begin
map[ix,iy]:=read_byte;
i_map[ix,iy]:=read_byte;
end;
if close_file('/e:/world.sav')=1 then debug('OK');
end;
end;
Что я сделал не так?