X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=planner.cpp;h=46cf230d1421c25d4aa28574a79a53987fc8cbba;hb=500180d0755f2c6196f339f6397b9af578e8ab74;hp=10f5e57f2970f1cd7a111d497de7d75c81dc848b;hpb=fdcf46671ca1dab0dadb490bb4375dc3dd2fc9a4;p=popboot.git diff --git a/planner.cpp b/planner.cpp index 10f5e57..46cf230 100644 --- a/planner.cpp +++ b/planner.cpp @@ -24,6 +24,7 @@ Planner::Planner(std::vector actions, Literals init, Literals goal){ } Planner::~Planner(){ + cerr << "Deleting " << _addedNodes.size() << " nodes" << endl; for (vector::iterator node = _addedNodes.begin(); node != _addedNodes.end(); ++node){ cerr << "Deleting node " << (*node)->action().name() << endl; delete *node; @@ -63,6 +64,7 @@ void Planner::makePlan(Node* node){ }else{ cerr << "Action with effect: " << precond->first << " not found!" << endl; cerr << "This is a soft precondition, so we will continue" << endl; + node->satisfyCondition(precond->first); } } } @@ -84,8 +86,13 @@ void Planner::addNode(Node* node){ void Planner::execute(){ _start->execute(Literals()); - /*for (hash_map::iterator node = _addedNodes.begin(); node != _addedNodes.end(); ++node){ - if (node->second->executed()){ - }*/ - _start->execute(Literals()); + cerr << "Number of nodes: " << _addedNodes.size() << endl; + for (vector::iterator node = _addedNodes.begin(); node != _addedNodes.end(); ++node){ + if ((*node)->executed()){ + //remove stuff + } + delete *node; + } + _addedNodes.clear(); + cerr << "Number of nodes left: " << _addedNodes.size() << endl; }