From e54170cfb8c0fb99ecdc3b1e57e832dec58ee76e Mon Sep 17 00:00:00 2001 From: majortom6 Date: Sun, 26 Feb 2017 07:55:18 -0600 Subject: -reimplemented a creature only being aware of something within its best sense, this also fixed the weird all creatures having the same target bug --- src/list.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'src/list.cpp') diff --git a/src/list.cpp b/src/list.cpp index ca69a4d..30b0eb1 100644 --- a/src/list.cpp +++ b/src/list.cpp @@ -41,9 +41,7 @@ void List::Behavior() it->Behavior(); if(it->getPregnancyReady()){ - DNA d = it->getChildsDNA(); - Rectangle tmp = it->getRectangle(); - Creature X(tmp,d); + Creature X(it->getRectangle(),it->getChildsDNA()); creatures.push_back(X); it->hadPregnancy(); } @@ -74,12 +72,16 @@ void List::Place() } } -std::vector List::getNear(Creature nC) +std::vector List::getNear(Creature c) { - std::vector N; - N = tree.retrieve(N, nC.getGFXD()); + std::vector near; + near = tree.retrieve(near, c.getGFXD()); - return N; + for(std::vector::iterator it = near.begin(); it!= near.end(); it++) + if(c.getBestSense() < Distance(c.getRectangle(),(*it)->getRectangle())) + near.erase(it--); + + return near; } std::vector List::drawQuadTree(){ -- cgit v1.2.3