Since they're loaded with a generic loader now, the standard keyword
mechanism can't handle them.
Resources::Loader::Loader(Resources &r):
DerivedObjectLoader<Resources, Collection::Loader>(r)
{
Resources::Loader::Loader(Resources &r):
DerivedObjectLoader<Resources, Collection::Loader>(r)
{
- add("scene", &Loader::scene);
+ add("light", &Loader::generic<Light>);
+ add("material", &Loader::generic<Material>);
+ add("scene", &Loader::generic<Scene>);
-void Resources::Loader::scene(const string &name)
+template<typename T>
+void Resources::Loader::generic(const string &name)
- Scene::GenericLoader ldr(obj);
+ typename T::GenericLoader ldr(obj);
- obj.add(name, ldr.get_object());
+ ldr.store_object(obj, name);
Loader(Resources &);
private:
Loader(Resources &);
private:
- void scene(const std::string &);
+ template<typename T>
+ void generic(const std::string &);