forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   Сохранение игры (http://forum.boolean.name/showthread.php?t=17522)

DeaDCore 15.11.2012 20:38

Сохранение игры
 
Делаю сохранение игры на флешку но сохранение/загрузка работает только один раз. сохранился, загрузился и всё, при повторной попытке этих действий игра зависает. не могу найти причину.
вот код:
Код:

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;

Что я сделал не так?

barsunduk 16.11.2012 22:26

Ответ: Сохранение игры
 
попробуй это
Код:

file_create('/e:/world.sav');
заменить на
Код:

if file_exists('/e:/world.sav')<>1 then
  file_create('/e:/world.sav');


DeaDCore 17.11.2012 18:26

Ответ: Сохранение игры
 
Не помогло. Что может быть ещё? Зависает при попытке записать/прочитать байт.

nil0q 17.11.2012 19:12

Ответ: Сохранение игры
 
Та же беда с либой jsr75i вообще. При втором открытии файла и вызове open_file() виснет. Это к товарищу Винту.


Часовой пояс GMT +4, время: 02:41.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot