void BatchNode::addChild(Node *child, int zOrder, int tag) { Node::addChild(child, zOrder, tag); Armature *armature = dynamic_cast<Armature *>(child); if (armature != nullptr) { armature->setBatchNode(this); const Dictionary *dict = armature->getBoneDic(); DictElement *element = nullptr; CCDICT_FOREACH(dict, element) { Bone *bone = static_cast<Bone*>(element->getObject()); Array *displayList = bone->getDisplayManager()->getDecorativeDisplayList(); for(auto object : *displayList) { DecorativeDisplay *display = static_cast<DecorativeDisplay*>(object); if (Skin *skin = dynamic_cast<Skin*>(display->getDisplay())) { skin->setTextureAtlas(getTexureAtlasWithTexture(skin->getTexture())); } } }