animationmgr: avoid looping over all avars in favor of only active ones

This commit is contained in:
vaxerski
2023-07-20 19:26:10 +02:00
parent 7940f779e9
commit 6c1f4faff2
4 changed files with 23 additions and 9 deletions

View File

@@ -58,12 +58,7 @@ void CAnimationManager::tick() {
std::vector<CAnimatedVariable*> animationEndedVars;
for (auto& av : m_lAnimatedVariables) {
// first of all, check if we need to update it at all
// TODO: this has a 100% cache miss rate, maybe move active avars to a separate vec
if (!av->m_bIsBeingAnimated)
continue;
for (auto& av : m_vActiveAnimatedVariables) {
if (av->m_eDamagePolicy == AVARDAMAGE_SHADOW && !*PSHADOWSENABLED) {
av->warp(false);