pulled everything out into handles and removed errant updates.
game drops pointers on objects we're looking at sometimes, so we guard against it now (as much as possible)
went all out without try/expect to fix everything i could find with all of the managers
stop running memory lookups when not needed :)
managers no longer tell the memory core to update, just update them before the others; if a failure happens its probably because the core died (which means the game isn't running)
tried to stop using as much slow python as possible
adds "LevelManager.loading" so you can see if the game is loading or not; It also doesn't look up memory unnecessarily while its loading, because pointers start moving around anyways.
the mem.ready_for_updates() function has been removed and replaced with a field, so we dont have to check 9 comparisons 1800 times a second times the number of managers we have.
removed all fallbacks on core field lookups - i'd like to find issues instead of falling back.
Memory will still be slow as the game launches, as it doesn't have the Managers Loaded yet so its trying to latch on.
This can probably be fixed by checking if the process is running before latching. I may throw this on the end of this PR
Slow-to-fast!
Big update here:
Memory will still be slow as the game launches, as it doesn't have the Managers Loaded yet so its trying to latch on. This can probably be fixed by checking if the process is running before latching. I may throw this on the end of this PR