std::set < std::string > EventsVariablesFinder::FindArgumentsInEvents(const gd::Platform & platform, const gd::Project & project, const gd::Layout & layout, const gd::EventsList & events, const std::string & parameterType, const std::string & objectName) { std::set < std::string > results; for (unsigned int i = 0;i<events.size();++i) { vector < const vector<gd::Instruction>* > conditionsVectors = events[i].GetAllConditionsVectors(); for (unsigned int j = 0;j < conditionsVectors.size();++j) { std::set < std::string > results2 = FindArgumentsInInstructions(platform, project, layout, *conditionsVectors[j], /*conditions=*/true, parameterType, objectName); results.insert(results2.begin(), results2.end()); } vector < const vector<gd::Instruction>* > actionsVectors = events[i].GetAllActionsVectors(); for (unsigned int j = 0;j < actionsVectors.size();++j) { std::set < std::string > results2 = FindArgumentsInInstructions(platform, project, layout, *actionsVectors[j], /*conditions=*/false, parameterType, objectName); results.insert(results2.begin(), results2.end()); } if ( events[i].CanHaveSubEvents() ) { std::set < std::string > results2 = FindArgumentsInEvents(platform, project, layout, events[i].GetSubEvents(), parameterType, objectName); results.insert(results2.begin(), results2.end()); } } return results; }
std::set < std::string > EventsVariablesFinder::FindAllObjectVariables(const gd::Platform & platform, const gd::Project & project, const gd::Layout & layout, const gd::Object & object) { std::set < std::string > results; std::set < std::string > results2 = FindArgumentsInEvents(platform, project, layout, layout.GetEvents(), "objectvar", object.GetName()); results.insert(results2.begin(), results2.end()); return results; }
std::set < gd::String > EventsVariablesFinder::FindAllLayoutVariables(const gd::Platform & platform, const gd::Project & project, const gd::Layout & layout) { std::set < gd::String > results; std::set < gd::String > results2 = FindArgumentsInEvents(platform, project, layout, layout.GetEvents(), "scenevar"); results.insert(results2.begin(), results2.end()); return results; }
std::set < std::string > EventsVariablesFinder::FindAllGlobalVariables(const gd::Platform & platform, const gd::Project & project) { std::set < std::string > results; for (unsigned int i = 0;i<project.GetLayoutsCount();++i) { std::set < std::string > results2 = FindArgumentsInEvents(platform, project, project.GetLayout(i), project.GetLayout(i).GetEvents(), "globalvar"); results.insert(results2.begin(), results2.end()); } return results; }