From e7cac5098145d75a680e35787f7c504caf16965b Mon Sep 17 00:00:00 2001 From: tom Date: Mon, 2 May 2016 22:02:25 -0500 Subject: fixed issue, was related to erasing nodes within vectors while using iterators --- src/list.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'src/list.cpp') diff --git a/src/list.cpp b/src/list.cpp index ff9722f..5d8ae35 100644 --- a/src/list.cpp +++ b/src/list.cpp @@ -21,10 +21,10 @@ List::List(Window m) void List::Place() { - for(vector::iterator it = C.begin(); it!=C.end(); it++) + for(list::iterator it = C.begin(); it!=C.end(); it++) it->Place(); - for(vector::iterator it = R.begin(); it!=R.end(); it++){ + for(list::iterator it = R.begin(); it!=R.end(); it++){ if(it->getAmount()<=0) R.erase(it--); else @@ -34,9 +34,9 @@ void List::Place() void List::Behavior() { - for(vector::iterator it = C.begin(); it!=C.end(); it++){ + for(list::iterator it = C.begin(); it!=C.end(); it++){ - vector N = getNear(*it); + list N = getNear(*it); it->giveN(N); it->Behavior(); @@ -50,16 +50,16 @@ void List::Behavior() } } -vector List::getNear(Creature nC) +list List::getNear(Creature nC) { - vector N; + list N; - for(vector ::iterator it = R.begin(); it!=R.end(); it++){ + for(list ::iterator it = R.begin(); it!=R.end(); it++){ if( nC.getBestSense() > Distance(nC.getLocation(),it->getLocation()) ) N.push_back(&(*it)); } - for(vector ::iterator it = C.begin(); it!=C.end(); it++){ + for(list ::iterator it = C.begin(); it!=C.end(); it++){ if( &nC == &(*it)) continue; else if( nC.getBestSense() > Distance(nC.getLocation(),it->getLocation()) ) -- cgit v1.2.3