]> git.sesse.net Git - nageru/blobdiff - nageru/scene.cpp
Small refactoring in Block.
[nageru] / nageru / scene.cpp
index 8df9511276c65c8202e75c3ed84597dc078add7a..6c3a0393b8e83d47c7ca6fd202c668f69bf4bf38 100644 (file)
@@ -191,8 +191,7 @@ Effect *Scene::instantiate_effects(const Block *block, size_t chain_idx, Scene::
        }
 
        // Find the chosen alternative for this block in this instance.
-       size_t chosen_alternative = (chain_idx / block->cardinality_base) % block->alternatives.size();
-       EffectType chosen_type = block->alternatives[chosen_alternative]->effect_type;
+       EffectType chosen_type = block->alternatives[block->chosen_alternative(chain_idx)]->effect_type;
 
        Effect *effect;
        switch (chosen_type) {
@@ -225,7 +224,7 @@ Effect *Scene::instantiate_effects(const Block *block, size_t chain_idx, Scene::
                break;
        }
        default:
-               effect = instantiate_effect(instantiation->chain.get(), block->alternatives[chosen_alternative]->effect_type);
+               effect = instantiate_effect(instantiation->chain.get(), chosen_type);
                instantiation->chain->add_effect(effect, inputs);
                break;
        }