]> git.sesse.net Git - nageru/blobdiff - nageru/scene.h
Small refactoring in Block.
[nageru] / nageru / scene.h
index bf23fbd1f2bb789d1fb350393fadf84ff2c5629c..b659429fbd5a8ef9a1ef54ec55cdc3175924739a 100644 (file)
@@ -76,6 +76,11 @@ struct Block {
        // (B_i is alternatives.size().) Not set before finalize() has run.
        size_t cardinality_base = 0;
 
+       // Find the chosen alternative for this block in a given instance.
+       size_t chosen_alternative(size_t chain_idx) const {
+               return (chain_idx / cardinality_base) % alternatives.size();
+       }
+
        std::vector<EffectBlueprint *> alternatives;  // Must all have the same amount of inputs. Pointers to make things easier for Lua.
        std::vector<Index> inputs;  // One for each input of alternatives[0] (ie., typically 0 or 1, occasionally 2).
        int currently_chosen_alternative = 0;