From 2e4d19ba21347cc370d1aae7a57298328b94ca4e Mon Sep 17 00:00:00 2001 From: majortom6 Date: Sun, 26 Feb 2017 07:39:15 -0600 Subject: -comepletly removed use of lists in quadtree and creature, using vectors now --- inc/creature.hpp | 4 +--- inc/list.hpp | 3 ++- inc/quadtree.hpp | 5 ++--- src/list.cpp | 6 +++--- src/quadtree.cpp | 10 +++++----- 5 files changed, 13 insertions(+), 15 deletions(-) diff --git a/inc/creature.hpp b/inc/creature.hpp index f9cb979..8174cf6 100644 --- a/inc/creature.hpp +++ b/inc/creature.hpp @@ -1,9 +1,7 @@ #ifndef creature_h #define creature_h -#include #include -#include #include #include "entity.hpp" @@ -21,7 +19,7 @@ class Creature: public Entity void checkTarget(); void moveTowards(Rectangle r); void impregnate(DNA d); - void giveNearMe(std::list n){nearMe = {std::begin(n),std::end(n)};}; + void giveNearMe(std::vector n){nearMe = n;}; DNA getDNA(){return myDNA;}; DNA getChildsDNA(){return childsDNA;}; diff --git a/inc/list.hpp b/inc/list.hpp index 872d5fa..f62112c 100644 --- a/inc/list.hpp +++ b/inc/list.hpp @@ -17,7 +17,8 @@ class List void Place(); void Remove(); - std::list getNear(Creature c); + std::vector getNear(Creature c); + std::list resources; std::list creatures; diff --git a/inc/quadtree.hpp b/inc/quadtree.hpp index 2b07103..bf308f8 100644 --- a/inc/quadtree.hpp +++ b/inc/quadtree.hpp @@ -1,7 +1,6 @@ #ifndef quadtree_h #define quadtree_h -#include #include #include "constants.hpp" @@ -21,8 +20,8 @@ class Quadtree { void clear(); void insert(Entity* iter); - std::list retrieve(std::list returnObject, GraphicsData obj); - std::list objects; + std::vector retrieve(std::vector returnObject, GraphicsData obj); + std::vector objects; Quadtree* nodes; diff --git a/src/list.cpp b/src/list.cpp index 2daed25..ca69a4d 100644 --- a/src/list.cpp +++ b/src/list.cpp @@ -36,7 +36,7 @@ void List::Remove() void List::Behavior() { for(std::list::iterator it = creatures.begin(); it!= creatures.end(); it++){ - std::list N = getNear(*it); + std::vector N = getNear(*it); it->giveNearMe(N); it->Behavior(); @@ -74,9 +74,9 @@ void List::Place() } } -std::list List::getNear(Creature nC) +std::vector List::getNear(Creature nC) { - std::list N; + std::vector N; N = tree.retrieve(N, nC.getGFXD()); return N; diff --git a/src/quadtree.cpp b/src/quadtree.cpp index 54a16c6..909c875 100644 --- a/src/quadtree.cpp +++ b/src/quadtree.cpp @@ -92,7 +92,7 @@ void Quadtree::insert(Entity* iter){ split(); int index; - for(std::list ::iterator it = objects.begin(); it!=objects.end();it++){ + for(std::vector::iterator it = objects.begin(); it!=objects.end();it++){ index = getIndex((*it)->getGFXD()); if (index != -1) { nodes[index].insert(*it); @@ -104,8 +104,8 @@ void Quadtree::insert(Entity* iter){ std::vector Quadtree::Draw(){ std::vector retdat; - - for (int i = 0; i < 4; i++) { + int i; + for (i = 0; i < 4; i++) { if (!nodes[i].isNull) { std::vector temp = nodes[i].Draw(); retdat.insert(retdat.end(), temp.begin(), temp.end()); @@ -126,12 +126,12 @@ std::vector Quadtree::Draw(){ return retdat; } -std::list Quadtree::retrieve(std::list returnObjects, GraphicsData obj) { +std::vector Quadtree::retrieve(std::vector returnObjects, GraphicsData obj) { int index = getIndex(obj); if (index != -1 && !nodes[0].isNull) returnObjects = nodes[index].retrieve(returnObjects, obj); - for(std::list ::iterator it = objects.begin(); it!=objects.end(); it++) + for(std::vector::iterator it = objects.begin(); it!=objects.end(); it++) returnObjects.emplace_back(*it); return returnObjects; -- cgit v1.2.3