Editor: A way to see unchanged touched records exclusively
Test steps:
- Start OpenMW-CS, pick "Create A New Addon", and pick just Morrowind, and give it a name like test1; click Create.
- Do nothing other than Save, and quit the app. You now have a
.../openmw/data/test1.omwaddon
, an empty shell with no actual game data in it, just the basic file structure. On my system, it is 362 bytes. - Reopen the CS, create another addon, test2.
- This time, do a search on Umbra (or whatever). Open the Umbra NPC record (or whatever).
- Double-click something in it, like "Warrior" and cut it to clipboard. Click on another field in the same NPC record, to register that the original field changed; go back to the Class field and paste "Warrior" back in, and save.
- The new test2.omwaddon has game data in it, and is 1,064 bytes on my system.
This makes modding very difficult and error prone (in ways that no present mod cleanup tools can detect and correct, as far as I know, because they all work with .esp format): if you accidentally click the wrong checkbox, or cut when you meant to copy, it will save a duplicate of the vanilla record even if you restore that record back to exactly what it originally was.
This has serious consequences. E.g., if someone creates a mod using a particular Dunmer face, by getting it from a stock NPC, and they do not do this exactly right, then that mod if loaded late will overrule some other mod like Better Heads that loaded before it, and force back the same original vanilla head on the stock NPC, because the new mod includes both the new NPC's data and the original Morrowind character's (which in this scenario was touched but not actually changed).
While there's Undo, it requires you to realize you just made an error. There's also a geeky way to fix something later, but it requires:
- Understanding the ID tables feature and regex filters to find the ID, so you can run Revert Record on it
- Knowing that the object (or whatever) has changed and needs to be reverted.
The problem is that we seem to lack any "show me only records in a particular file" ability. We actually need this for other reasons anyway, like being able to distinguish errors found by Verify that are from a mod we're testing versus found in the original Bethesda files. For the purposes of this ticket, however, the need is to be able to examine what is going into the mod file, in isolation from all other resources (from the base game file, and any loaded dependencies). I.e., to see a list in which we can say "Hey, why is this vanilla NPC showing up as a dirty ref in my mod? I must have touched something in it and need to revert it."
Aside from creating such a feature, I would think a fix for basic "this data didn't really change" issue is to check whether a value is different from that in the originally loaded data files and discard any apparent edit that did not result in a change; i.e., save only newly-added data, and data in existing records that does not match old data.
(RM-4348 from redmine: created on 2018-03-07 by Dark Locq, )