[Orxonox-commit 5928] r10587 - code/branches/towerdefenseFabien/src/modules/towerdefense
landauf at orxonox.net
landauf at orxonox.net
Tue Sep 15 16:43:03 CEST 2015
Author: landauf
Date: 2015-09-15 16:43:03 +0200 (Tue, 15 Sep 2015)
New Revision: 10587
Modified:
code/branches/towerdefenseFabien/src/modules/towerdefense/TowerDefense.cc
code/branches/towerdefenseFabien/src/modules/towerdefense/TowerDefense.h
Log:
use list instead of vector - list is better suited for removing elements
Modified: code/branches/towerdefenseFabien/src/modules/towerdefense/TowerDefense.cc
===================================================================
--- code/branches/towerdefenseFabien/src/modules/towerdefense/TowerDefense.cc 2015-09-15 12:20:34 UTC (rev 10586)
+++ code/branches/towerdefenseFabien/src/modules/towerdefense/TowerDefense.cc 2015-09-15 14:43:03 UTC (rev 10587)
@@ -319,22 +319,16 @@
//if ships are at the end they get destroyed
- std::vector<orxonox::WeakPtr<TowerDefenseEnemy> >::iterator itBegin = enemies_.begin();
- std::vector<orxonox::WeakPtr<TowerDefenseEnemy> >::iterator it = itBegin;
- std::vector<orxonox::WeakPtr<TowerDefenseEnemy> >::iterator itEnd = enemies_.end();
-
- while(it != itEnd)
+ for (std::list<WeakPtr<TowerDefenseEnemy> >::iterator it = enemies_.begin(); it != enemies_.end(); )
{
//destroys enemys at the end of the path and reduces the life by 1. No credits gifted
Vector3 ship = (*it)->getRVWorldPosition();
float distance = ship.distance(endpoint_);
if(distance < 50)
{
- std::vector<orxonox::WeakPtr<TowerDefenseEnemy> >::iterator itTemp = it;
- ++ it;
orxout() << "enemy deleted" << endl;
- enemies_.erase(itTemp);
- (*itTemp)->destroy();
+ (*it)->destroy();
+ enemies_.erase(it++);
this->reduceLifes(1);
if (this->getLifes() == 0)
{
Modified: code/branches/towerdefenseFabien/src/modules/towerdefense/TowerDefense.h
===================================================================
--- code/branches/towerdefenseFabien/src/modules/towerdefense/TowerDefense.h 2015-09-15 12:20:34 UTC (rev 10586)
+++ code/branches/towerdefenseFabien/src/modules/towerdefense/TowerDefense.h 2015-09-15 14:43:03 UTC (rev 10587)
@@ -95,7 +95,7 @@
int waves_;
int lifes_;
Timer nextwaveTimer_;
- std::vector<orxonox::WeakPtr<TowerDefenseEnemy> > enemies_;
+ std::list<orxonox::WeakPtr<TowerDefenseEnemy> > enemies_;
TowerDefenseField* fields_[16][16];
std::vector<orxonox::WeakPtr<TowerDefenseField> > waypoints_;
Vector3 endpoint_;
More information about the Orxonox-commit
mailing list