CompoundPropStore::CompoundPropStore(int c,vector<pair<pddl_type *,vector<const pddl_type *> > > & tps,TMap & t,extended_pred_symbol * e,Associater * a) : PropStore(), stores(c) { int arity = tps.size(); vector<pddl_type *> tps1; for(int i = 0;i < c;++i) { tps1.clear(); TypeExtractor tex(tps,i); while(!(tex == TypeExtractor(arity))) { pddl_type * tt = *tex; // cout << "Got " << tt->getName() << "\n"; tps1.push_back(tt); ++tex; }; // if(e->getName()=="can-carry") // { // t.write(cout); // }; SimplePropStore * s = t.get(tps1.begin(),tps1.end()); if(!s) { // cout << "About to find\n"; extended_pred_symbol * f = a->find(e,tps1.begin(),tps1.end()); if(!f->getParent()) { e->getParent()->add(f); }; // cout << "Ready to record "; // f->writeName(cout); // cout << "\n"; s = new SimplePropStore(f); // TypeExtractor te(tps,i); // cout << "building for "; // while(!(te == TypeExtractor(arity))) // { // cout << (*te)->getName() << " "; // ++te; // }; // cout << "\n"; t.insert(tps1.begin(),tps1.end(),s); }; stores[i] = s; records.insert(tps1.begin(),tps1.end(),s); }; };