The flag must be separate so as to not contaminate the user's savegame.
Fixes the following use cases that were broken before:
- Content file edits a reference that was already deleted by a previously loaded content file -> reference must stay deleted
- Changed or new content file deletes a reference that is already present in the user's savegame -> reference must be deleted
- Said content file is disabled again - reference must be undeleted
The cell loading threshold (default: 1024 units) prevents exterior cell loading until the player has travelled part-way into the next cell. This gets rid of excessive cell loadings when walking along an exterior cell border.
Lower the maximum allowed view distance in options menu to accomodate. Change setting name so that old settings files are upgraded.
- Remove broken cache locking mechanism
This was supposed to unload NIFFiles after a cell transition completes, but it was never working due to a mistake on the line if (--sLockLevel), should have been if (--sLockLevel == 0). Repairing this would increase load times (NIF files would have to be reloaded more frequently), so just removed it for now.
- Decouple cache from NIFFile (now a new nifcache component)
- Add API for future background loading
- Provide a reliable way (SharedPtr) to hold on to loaded NIFFiles. This will be useful to avoid deep copies of keyframe and text key data, which is currently a performance bottleneck.
The InsertFunctor for cells was calling localRotateObject() for all references which set the mChanged flag in RefData to true.
Also clean up RefData interface slightly.
It was just adding a level of indirection to Ptr.getClass().
All the call were replaced by that instead. The number of lines changed
is important, but the change itself is trivial, so everything should be
fine. :)