shared_ptr<Entity> VisibleEntity::create (const String& name, Scene* scene, AnyTableReader& propertyTable, const ModelTable& modelTable, const Scene::LoadOptions& options) { bool canChange = false; propertyTable.getIfPresent("canChange", canChange); // Pretend that we haven't peeked at this value propertyTable.setReadStatus("canChange", false); if ((canChange && ! options.stripDynamicVisibleEntitys) || (! canChange && ! options.stripStaticVisibleEntitys)) { shared_ptr<VisibleEntity> visibleEntity(new VisibleEntity()); visibleEntity->Entity::init(name, scene, propertyTable); visibleEntity->VisibleEntity::init(propertyTable, modelTable); propertyTable.verifyDone(); return visibleEntity; } else { return nullptr; } }