Aliens create, wavetrace work, towers build, aliens move - thats all by now. I think it is time to write Graphic and Network modules.
55 lines
1.1 KiB
C++
55 lines
1.1 KiB
C++
#include "towers.h"
|
|
|
|
Towers::Towers(Game_Data *gd, QObject *parent) :
|
|
QObject(parent)
|
|
{
|
|
gameData = gd;
|
|
nextId = 0;
|
|
Tower tw;
|
|
for (int i=0; i<gameData->players.size(); i++)
|
|
gameData->players[i]->srcTowers.push_back(tw);
|
|
}
|
|
|
|
bool Towers::AddTower(int playerId, int srcId, QPoint pos)
|
|
{
|
|
if (playerId < 0 || playerId >= gameData->players.size()) qDebug("ERROR out of players range"),exit(-1);
|
|
if (srcId < 0 || srcId >= gameData->players.at(playerId)->srcTowers.size()) qDebug("ERROR out of towers range"),exit(-1);
|
|
Tower tw = gameData->players.at(playerId)->srcTowers.at(srcId);
|
|
tw.Id = nextId;
|
|
if (gameData->map->addTowerOnMap(playerId,pos))
|
|
{
|
|
tw.pos = pos;
|
|
gameData->map->printMap();
|
|
nextId++;
|
|
gameData->curTowers.push_back(tw);
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
|
|
void Towers::DelTower(int index)
|
|
{
|
|
gameData->curTowers.remove(index);
|
|
}
|
|
|
|
|
|
void Towers::DelTowerById(int Id)
|
|
{
|
|
DelTower(TowerIndex(Id));
|
|
}
|
|
|
|
|
|
int Towers::TowerIndex(int towerId)
|
|
{
|
|
int i=-1;
|
|
for (i=0; i<gameData->curTowers.size(); i++)
|
|
if (gameData->curTowers.at(i).Id==towerId) return i;
|
|
return i;
|
|
}
|
|
|
|
void Towers::update()
|
|
{
|
|
|
|
}
|