anchor.diff:    F := TIniFile.Create(GetPath() + 'morgue.thi');
     try
       S := IntToStr(Index);
  -    F.WriteInteger(S, 'X', AX);
  -    F.WriteInteger(S, 'Y', AY);
  -    F.WriteInteger(S, 'Z', AZ);
  +    F.EraseSection(S);
  +    if ((AX > 0) and (AY > 0)) then
  +    begin
  +      F.WriteInteger(S, 'X', AX);
  +      F.WriteInteger(S, 'Y', AY);
  +      F.WriteInteger(S, 'Z', AZ);
  +    end; 
  +  finally
  +    F.Free;
  +  end;
  +end;
  +
  +procedure TCorpses.Load(Index: Byte);
  +var
  +  F: TIniFile;  
  +  S: string;
  +begin
  +  F := TIniFile.Create(GetPath() + 'morgue.thi');
  +  try
  +    S := IntToStr(Index);
  +    FCorpse[Index].X := F.ReadInteger(S, 'X', 0);
  +    FCorpse[Index].Y := F.ReadInteger(S, 'Y', 0);
  +    FCorpse[Index].Z := F.ReadInteger(S, 'Z', 0);
     finally
       F.Free;
     end;
  
positive.code:   begin
      if (Ord(Map.Deep) <> FCorpse[I].Z) then Continue;
      if ((FCorpse[I].X = AX) and (FCorpse[I].Y = AY)) then
        Save(I, 0, 0, 0);
    end;
  end;
  
  
negative.code: 
  constructor TCorpses.Create;
  var
    F: TIniFile;
    I: Byte;
  begin
    F := TIniFile.Create(GetPath() + 'morgue.thi');
    try
      for I := 0 to CorpseMax - 1 do Load(I);
    finally
      F.Free;
    end;
  