The vtable for LAND records will return an empty string if you try to get their object ID. Instead you get the CELL for a grid x/y then get the LAND off of it. They are loaded on demand for cells and stored off of that in memory. That said, the following are split out in different places in memory: races, class, birthsigns, scripts, cells, factions, sounds, globals, regions, then everything else is clumped together in the main object map.ĭoes anyone know what LAND records use as their ID? Internally the game uses a hashmap of all objects by their ID, and there can be collisions there that can be unexpected.
You should never have two objects of different types with the same ID. Is there anywhere that comprehensively lays out which record types belong in which namespaces? I was wondering if there was any namespacing, then I saw Elminster said there is for some record types. Morrowind doesn't have FormIDs, it looks like there's an ID subrecord that is used for this purpose instead - it's often the NAME subrecord, but it varies by record type.cell records have more granular conflict resolution) but LOOT ignores that, and just cares about if any records with the same FormID exist. in later games two records conflict if they have the same FormID, and generally the plugin that loads last has its version of the record applied. How are conflicts resolved in Morrowind? E.g.Does Morrowind add a Registry entry that contains the path it's installed at, and if yes, what entry is it?.in Oblivion they are loaded if their filename starts with the basename of an active plugin. Does Morrowind have BSAs or equivalent resource archives? UESP says yes, the have the.I think everything else should be sufficiently generic, and libloadorder already supports Morrowind. libloot's API uses "FormID" in method names dealing with overlap, which would be inaccurate for Morrowind (they could be renamed to use "Record" instead, or equivalent methods using that term added).libloot and LOOT hardcode the directory that plugins are found in as "Data", this will need to be different for Morrowind (a minor change).loot-condition-interpreter would need a new Morrowind game type, though using the Skyrim or earlier game type would be fine.libloot and LOOT would need new a new Morrowind game type and corresponding default config added.esplugin supports Morrowind, but doesn't handle overlapping records correctly, as Morrowind plugins don't use FormIDs, so that would need changing.
Off the top of my head, the code changes necessary to support Morrowind would be: