//---------------------------------------------------------------------------------------------- CActor * CActor::FindActorByPath(const std::string &Path) { CStringUtility<std::string> ParseString(Path, "/"); CActor * IterActor = 0; for (size_t Index = 0; Index < ParseString.m_vector.size(); ++Index) { if (ParseString.m_vector[Index] == "..") { if (!IterActor) { CActor * NextIterActor = GetParent(); IterActor = NextIterActor; } else { CActor * NextIterActor = IterActor->GetParent(); IterActor = NextIterActor; } if (!IterActor){ return 0; } } else { if (!IterActor) { CActor * NextIterActor = FindActor(ParseString.m_vector[Index].c_str(), false); IterActor = NextIterActor; } else { CActor * NextIterActor = IterActor->FindActor(ParseString.m_vector[Index].c_str(), false); IterActor = NextIterActor; } if (!IterActor){ return 0; } } } return IterActor; }