Compare commits
3 Commits
8a3aa4ed41
...
ecdf6c9d9f
Author | SHA1 | Date | |
---|---|---|---|
ecdf6c9d9f | |||
4df785d0d7 | |||
add6832e55 |
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
ESMify Plugins 1.0
|
Skyrim ESMifier 1.0
|
||||||
by Eddoursul https://eddoursul.win
|
by Eddoursul https://eddoursul.win
|
||||||
|
|
||||||
For proper overriding of temporary records, "Always save ONAM" must be enabled in xEdit.
|
For proper overriding of temporary records, "Always save ONAM" must be enabled in xEdit.
|
||||||
|
@ -12,7 +12,7 @@
|
||||||
assign valid locations to actors via the Persistent Location field.
|
assign valid locations to actors via the Persistent Location field.
|
||||||
}
|
}
|
||||||
|
|
||||||
unit ESMify_Plugins;
|
unit Skyrim_ESMifier;
|
||||||
|
|
||||||
var
|
var
|
||||||
refsChecked, recordsCounted, flaggedCount, persLocSkipped: integer;
|
refsChecked, recordsCounted, flaggedCount, persLocSkipped: integer;
|
||||||
|
@ -43,16 +43,23 @@ begin
|
||||||
if (sig = 'LCTN') or (sig = 'WRLD') or (sig = 'TES4') then
|
if (sig = 'LCTN') or (sig = 'WRLD') or (sig = 'TES4') then
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
// Do not consider formlists, created by Plugins Merge, true references
|
||||||
|
if sig = 'FLST' then
|
||||||
|
if ReferencedByCount(referencingRecord) = 0 then
|
||||||
|
if StrEndsWith(EditorID(referencingRecord), 'Forms') then
|
||||||
|
continue;
|
||||||
|
|
||||||
// Only check plugins higher in the load order.
|
// Only check plugins higher in the load order.
|
||||||
// This will include non-masters as well, and will not take references from plugins lower in the load order into consideration.
|
// This will include non-masters as well, and will not take references from plugins lower in the load order into consideration.
|
||||||
if GetLoadOrder(GetFile(referencingRecord)) <= GetLoadOrder(GetFile(rec)) then begin
|
if GetLoadOrder(GetFile(referencingRecord)) <= GetLoadOrder(GetFile(rec)) then begin
|
||||||
|
|
||||||
// When referencing record is not referenced and it's in the same cell, the ref does not need persistence.
|
// When referencing record is not referenced and it's in the same cell, the ref does not need persistence.
|
||||||
if (ReferencedByCount(referencingRecord) = 0) then begin
|
// Not always true, needs investigating.
|
||||||
if (sig = 'REFR') then begin
|
//if (ReferencedByCount(referencingRecord) = 0) then begin
|
||||||
if InSameCell(rec, referencingRecord) then continue;
|
// if (sig = 'REFR') then begin
|
||||||
end;
|
// if InSameCell(rec, referencingRecord) then continue;
|
||||||
end;
|
// end;
|
||||||
|
//end;
|
||||||
|
|
||||||
// Refs referencing themselves do not require the flag
|
// Refs referencing themselves do not require the flag
|
||||||
if not SameRecord(rec, referencingRecord) then begin
|
if not SameRecord(rec, referencingRecord) then begin
|
||||||
|
@ -244,6 +251,20 @@ begin
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
// Copied from mteFunctions by Mator
|
||||||
|
function StrEndsWith(s1, s2: string): boolean;
|
||||||
|
var
|
||||||
|
i, n1, n2: integer;
|
||||||
|
begin
|
||||||
|
Result := false;
|
||||||
|
|
||||||
|
n1 := Length(s1);
|
||||||
|
n2 := Length(s2);
|
||||||
|
if n1 < n2 then exit;
|
||||||
|
|
||||||
|
Result := (Copy(s1, n1 - n2 + 1, n2) = s2);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
///// PROCESSING ////////////////////////////////////
|
///// PROCESSING ////////////////////////////////////
|
||||||
|
|
Loading…
Reference in New Issue
Block a user