unit ESMifyer;

function Process(e: IInterface): integer;
var
  i: integer;
  b: boolean;
  f: IwbFile;
begin
  f := getFile(e);
  if (getIsESM(f) = false) then
       setIsESM(f, true);

  b := false;

  if (Signature(e) = 'NPC_') then
    for i := 0 to ReferencedByCount(e)-1 do
      if(Signature(ReferencedByIndex(e,i)) = 'QUST') then
        b := true;
    if(b = true) then
      for i := 0 to ReferencedByCount(e)-1 do
        if((Signature(ReferencedByIndex(e,i)) = 'ACHR') and (getFileName(getFile(ReferencedByIndex(e,i))) = getFileName(f))) then
          SetIsPersistent(ReferencedByIndex(e,i), true);
end;

end.
