hoist unvisited member options to globals #35073
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
SUMMARY: Bugfixes "hoist unvisited member options to globals"
Purpose of change
Changes in #35065 significantly helped with loading performance, but can cause the game to crash on exit, due to attempting to use data that had already been freed by that point in the exit process
Describe the solution
add global variables for the settings involved
this also has the side benefit of being slightly less expensive than an option test with a string parameter.
Describe alternatives you've considered
could make the unvisited member reports a compile-time option, but i kind of liked the idea of being able to turn on this kind of reporting on the fly without a rebuild
this solution is nearly as fast anyway.
Testing
build it, run it, quit it, push it
Additional context
in the process of working on this i discovered some of these config globals are declared in
game.h
which is absolutely not where they belong.at some point they should be migrated to
options.h
because they're options.