CS verify hangs after deletion of node from path grid
Whilst attempting to create an addon to eliminate all the CS verify errors and warnings from the morrowind.esp I haven't found a way to delete orphaned pathgrid nodes.
Selecting one such from the list of warnings, right clicking to open the pathgrid pane, scrolling down to the offending node and removing the row appears to complete satisfactorily.
However subsequent verify stalls at or close to that point, and the program closes.
Further testing - it's not just orphaned nodes which cause this, all nodes appear to do so.
#3 Updated by David Walley 9 days ago
Select "Edit a content file" in CS.
Select Morrowind.esm as the game file.
Select no further files.
There will be numerous Pathgrid warnings, of orphaned nodes. Select one, right-click and "show".
This opens a pane for that Pathgrid.
Select any row in the "points" table - whether the one described as "orphaned" or any other.
Right click and select the option "Remove Rows"
I couldn't find any "remove node" option within the cell view.
Apologies for delayed response - I've been away for a couple of days.
#4 Updated by Kyle Cooley 4 days ago
The crash occurs within the verifier. There is no check to make sure a pathgrid node exists when it checks the edges.
The editor currently assumes you know what you are doing when you manually edit a pathgrid within the tables. Removing a pathgrid node changes the indices of all nodes after it (this is a limitation of the file format). Thus all edges referencing said indices are incorrect. I am unsure of how this issue should be fixed. I removed the code that attempted to fix this automatically when I implemented scene view pathgrid editing, because the code was in the wrong place (directly in the tables) and also broken (did not work with the undo mechanism).
#5 Updated by Kyle Cooley 4 days ago
And now that I think about it, I'm pretty sure it also required the verifier to be run to fix some other things. It was a pretty nasty hack. Anyway, we probably need to add another level of abstraction for editing pathgrids instead of allowing the user to directly edit the pathgrid tables.