/** GDevelop - LinkedObjects Extension Copyright (c) 2011-2014 Florian Rival (Florian.Rival@gmail.com) This project is released under the MIT License. */ #include "LinkedObjectsTools.h" #include #include #include #include #include "GDCpp/RuntimeObject.h" #include "GDCpp/RuntimeScene.h" #include "ObjectsLinksManager.h" using namespace std; namespace GDpriv { namespace LinkedObjects { std::map < RuntimeScene* , ObjectsLinksManager > ObjectsLinksManager::managers; bool GD_EXTENSION_API PickObjectsLinkedTo(RuntimeScene & scene, std::map *> pickedObjectsLists, RuntimeObject * object) { if (!object) return false; bool isTrue = false; //Create a boolean for each object std::vector < std::vector > pickedList; for(std::map *>::const_iterator it = pickedObjectsLists.begin(); it != pickedObjectsLists.end();++it) { std::vector arr; arr.assign(it->second->size(), false); pickedList.push_back(arr); } //Pick objects which are linked to the object unsigned int i = 0; for(std::map *>::const_iterator it = pickedObjectsLists.begin(); it != pickedObjectsLists.end();++it, ++i) { if ( !it->second ) continue; const std::vector & arr1 = *it->second; std::vector linkedObjects = ObjectsLinksManager::managers[&scene].GetObjectsLinkedWith(object); for(unsigned int k = 0;k *>::const_iterator it = pickedObjectsLists.begin(); it != pickedObjectsLists.end();++it, ++i) { size_t finalSize = 0; if ( !it->second ) continue; std::vector & arr = *it->second; for(unsigned int k = 0;k