cyberrumor / ammo

Almost Manual Mod Organizer - Linux MO for Bethesda Games
GNU General Public License v2.0
33 stars 6 forks source link

move lib.normalize calls into install #64

Open cyberrumor opened 1 week ago

cyberrumor commented 1 week ago

lib.normalize is really slow and called very often. If mods were doctored during the install step, they wouldn't have to have their paths corrected during staging. This would provide a sizable speedup for modlists with a large number of loose files.

Existing mods will have to be handled in some way or another so users don't have to reinstall their modlists when lib.normalize is removed from staging.

In my very humble modlist, lib.normalize is called upwards of 44,000 times just from launching ammo then running commit.

The purpose of lib.normalize is to prevent the same folders but with different casing from being created inside of the game directory.

E.g.

my_mod/Data/skse/PLUGINS/some_plugin.dll
my_other_mod/data/SKSE/Plugins/some_other_plugin.dll
my_third_mod/DATA/Skse/plugins/some_third_plugin.dll

should only create one folder path with all three files under it:

my_game/Data/SKSE/Plugins/*