Ejemplo n.º 1
0
void Actor::CopyData(Actor* post, Actor* base){

	for (const auto& cmp : base->mComponents.mComponent){
		Component* basecmp = cmp.second.Get();
		Component* postcmp;
		auto postcmpite = post->GetComponent(cmp.first);
		if (postcmpite){
			postcmp = postcmpite.Get();
		}
		else{
			auto c = ComponentFactory::Create(cmp.second->ClassName());
			post->mComponents.AddComponent_NotInitialize(c);
			postcmp = c.Get();
		}
		postcmp->CopyData(postcmp, basecmp);
	}
}