- 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 OpenCS startup window of the existing exist is raised when trying to
start a new instance. This is done by the new instance connection to the
existing instance's QLocalServer. Once the connection is established the
existing instance raises the startup window.
If another instance of OpenCS is started, then it will terminate. This
is done by creating a QLocalServer with a unique ID. If another
QLocalServer with the same ID attempts to be opened, then the creation
of the QLocalServer will fail and the application will terminate.