[Orxonox-commit 4489] r9160 - code/branches/newlevel2012/src/modules/towerdefense
mentzerf at orxonox.net
mentzerf at orxonox.net
Fri May 4 16:12:48 CEST 2012
Author: mentzerf
Date: 2012-05-04 16:12:47 +0200 (Fri, 04 May 2012)
New Revision: 9160
Modified:
code/branches/newlevel2012/src/modules/towerdefense/TowerDefense.cc
code/branches/newlevel2012/src/modules/towerdefense/TowerDefense.h
Log:
* Fixed height of towers
+ not adding towers when they were added already
Modified: code/branches/newlevel2012/src/modules/towerdefense/TowerDefense.cc
===================================================================
--- code/branches/newlevel2012/src/modules/towerdefense/TowerDefense.cc 2012-05-04 14:09:25 UTC (rev 9159)
+++ code/branches/newlevel2012/src/modules/towerdefense/TowerDefense.cc 2012-05-04 14:12:47 UTC (rev 9160)
@@ -149,15 +149,38 @@
ChatManager::message("Match is over");
}
+ bool TowerDefense::hasTower(int x, int y)
+ {
+ for(std::vector<coordinate>::iterator it = addedTowersCoordinates_.begin(); it != addedTowersCoordinates_.end(); ++it)
+ {
+ coordinate currentCoordinates = (coordinate) (*it);
+ if (currentCoordinates.x == x && currentCoordinates.y == y)
+ return true;
+ }
+
+ return false;
+ }
void TowerDefense::addTower(int x, int y)
{
+ if (this->hasTower(x,y))
+ {
+ orxout() << "tower exists!!" << endl;
+ return;
+ }
+
+ coordinate newTowerCooridnates;
+ newTowerCooridnates.x = x; newTowerCooridnates.y = y;
+ addedTowersCoordinates_.push_back(newTowerCooridnates);
+
unsigned int width = this->center_->getWidth();
unsigned int height = this->center_->getHeight();
int tileScale = (int) this->center_->getTileScale();
orxout() << "tile scale = " << tileScale << endl;
+
+
if (x > 15 || y > 15 || x < 0 || y < 0)
{
//Hard coded: TODO: let this depend on the centerpoint's height, width and fieldsize (fieldsize doesn't exist yet)
@@ -172,8 +195,9 @@
this->center_->attach(newTower);
- newTower->setPosition((x-8) * tileScale, (y-8) * tileScale, 0);
+ newTower->setPosition((x-8) * tileScale, (y-8) * tileScale, 100);
newTower->setGame(this);
+
//TODO: Save the Tower in a Vector. I would suggest std::vector< std::vector<Tower*> > towers_ as a protected member variable;
// TODO: create Tower mesh
Modified: code/branches/newlevel2012/src/modules/towerdefense/TowerDefense.h
===================================================================
--- code/branches/newlevel2012/src/modules/towerdefense/TowerDefense.h 2012-05-04 14:09:25 UTC (rev 9159)
+++ code/branches/newlevel2012/src/modules/towerdefense/TowerDefense.h 2012-05-04 14:12:47 UTC (rev 9160)
@@ -77,7 +77,20 @@
private:
// WeakPtr<TowerDefenseCenterpoint> center_;
TowerDefenseCenterpoint *center_;
+
+
+ bool hasTower(int x, int y);
+ typedef struct {
+ int x;
+ int y;
+ } coordinate;
+
+
+
+ std::vector<coordinate> addedTowersCoordinates_;
+ std::vector<Tower*> towers_;
+
void addWaypointsAndFirstEnemy();
};
}
More information about the Orxonox-commit
mailing list