]> git.sesse.net Git - nageru/blobdiff - nageru/scene.cpp
Make Block.choose() return the effect that was chosen.
[nageru] / nageru / scene.cpp
index 38927384a1fafc4fb8fa8cb1477334f1e4b4cad7..090f95be917884a1044239bb4046fc4d6726d613 100644 (file)
@@ -366,16 +366,16 @@ Scene::get_chain(Theme *theme, lua_State *L, unsigned num, const InputState &inp
                if (!block->alternatives.empty()) {
                        EffectBlueprint *blueprint = block->alternatives[block->currently_chosen_alternative];
                        for (const auto &key_and_tuple : blueprint->int_parameters) {
-                               int_to_set.emplace(make_pair(effect, key_and_tuple.first), key_and_tuple.second);
+                               int_to_set[make_pair(effect, key_and_tuple.first)] = key_and_tuple.second;
                        }
                        for (const auto &key_and_tuple : blueprint->float_parameters) {
-                               float_to_set.emplace(make_pair(effect, key_and_tuple.first), key_and_tuple.second);
+                               float_to_set[make_pair(effect, key_and_tuple.first)] = key_and_tuple.second;
                        }
                        for (const auto &key_and_tuple : blueprint->vec3_parameters) {
-                               vec3_to_set.emplace(make_pair(effect, key_and_tuple.first), key_and_tuple.second);
+                               vec3_to_set[make_pair(effect, key_and_tuple.first)] = key_and_tuple.second;
                        }
                        for (const auto &key_and_tuple : blueprint->vec4_parameters) {
-                               vec4_to_set.emplace(make_pair(effect, key_and_tuple.first), key_and_tuple.second);
+                               vec4_to_set[make_pair(effect, key_and_tuple.first)] = key_and_tuple.second;
                        }
                }
        }
@@ -516,7 +516,7 @@ int Block_choose(lua_State* L)
        assert(size_t(alternative_idx) < block->alternatives.size());
        block->currently_chosen_alternative = alternative_idx;
 
-       return 0;
+       return wrap_lua_existing_object_nonowned<EffectBlueprint>(L, "EffectBlueprint", block->alternatives[alternative_idx]);
 }
 
 int Block_enable(lua_State *L)