loot / libloot

A C++ library for accessing LOOT's metadata and sorting functionality.
GNU General Public License v3.0
32 stars 12 forks source link

Sorting can't handle a light master that depends on a non-master #12

Closed Ortham closed 7 years ago

Ortham commented 7 years ago

It's possible to create a light master that depends on a non-master, and the game will load it, but in doing so the non-master will be moved so that it loads before the light master. The sorting algorithm doesn't currently handle this case, and will instead produce a cyclic interaction error.

A fix would probably require a little pre-processing to get the non-masters that any ESLs depend on, and flag them so they're treated as masters by the rest of the sorting algorithm.

Ortham commented 7 years ago

Declassifying this as a bug, as this behaviour is something that we may not want to support, given the chance for it to produce crazy bugs.

Ortham commented 7 years ago

Closing this as erroring is the safe behaviour, and with no evidence that allowing ESLs to depend on ESPs is desirable, behaving safely seems reasonable. The LOOT application will also display warnings for ESLs that depend on ESPs.