Показать сообщение отдельно
Старый 15.11.2012, 20:38   #1
DeaDCore
Оператор ЭВМ
 
Аватар для DeaDCore
 
Регистрация: 06.02.2012
Адрес: Equestria
Сообщений: 43
Написано 7 полезных сообщений
(для 10 пользователей)
Сохранение игры

Делаю сохранение игры на флешку но сохранение/загрузка работает только один раз. сохранился, загрузился и всё, при повторной попытке этих действий игра зависает. не могу найти причину.
вот код:
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;
Что я сделал не так?
(Offline)
 
Ответить с цитированием