correct core module with new types
This commit is contained in:
57
Makefile
57
Makefile
@@ -1,6 +1,6 @@
|
||||
#############################################################################
|
||||
# Makefile for building: aliendefender
|
||||
# Generated by qmake (2.01a) (Qt 4.6.2) on: ?? ???. 17 20:37:06 2010
|
||||
# Generated by qmake (2.01a) (Qt 4.6.2) on: ?? ???. 23 12:02:15 2010
|
||||
# Project: aliendefender.pro
|
||||
# Template: app
|
||||
# Command: /usr/bin/qmake-qt4 -spec /usr/share/qt4/mkspecs/linux-g++ -unix CONFIG+=debug -o Makefile aliendefender.pro
|
||||
@@ -51,7 +51,6 @@ SOURCES = map.cpp \
|
||||
splashes.cpp \
|
||||
adcore.cpp \
|
||||
player.cpp \
|
||||
settreader.cpp \
|
||||
loader.cpp moc_map.cpp \
|
||||
moc_game_data.cpp \
|
||||
moc_aliens.cpp \
|
||||
@@ -69,7 +68,6 @@ OBJECTS = map.o \
|
||||
splashes.o \
|
||||
adcore.o \
|
||||
player.o \
|
||||
settreader.o \
|
||||
loader.o \
|
||||
moc_map.o \
|
||||
moc_game_data.o \
|
||||
@@ -190,7 +188,7 @@ qmake: FORCE
|
||||
|
||||
dist:
|
||||
@$(CHK_DIR_EXISTS) .tmp/aliendefender1.0.0 || $(MKDIR) .tmp/aliendefender1.0.0
|
||||
$(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/aliendefender1.0.0/ && $(COPY_FILE) --parents base_types.h map.h game_data.h aliens.h towers.h splashes.h adcore.h player.h settreader.h loader.h .tmp/aliendefender1.0.0/ && $(COPY_FILE) --parents images.qrc .tmp/aliendefender1.0.0/ && $(COPY_FILE) --parents map.cpp game_data.cpp aliens.cpp towers.cpp main.cpp splashes.cpp adcore.cpp player.cpp settreader.cpp loader.cpp .tmp/aliendefender1.0.0/ && (cd `dirname .tmp/aliendefender1.0.0` && $(TAR) aliendefender1.0.0.tar aliendefender1.0.0 && $(COMPRESS) aliendefender1.0.0.tar) && $(MOVE) `dirname .tmp/aliendefender1.0.0`/aliendefender1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/aliendefender1.0.0
|
||||
$(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/aliendefender1.0.0/ && $(COPY_FILE) --parents base_types.h map.h game_data.h aliens.h towers.h splashes.h adcore.h player.h loader.h .tmp/aliendefender1.0.0/ && $(COPY_FILE) --parents images.qrc .tmp/aliendefender1.0.0/ && $(COPY_FILE) --parents map.cpp game_data.cpp aliens.cpp towers.cpp main.cpp splashes.cpp adcore.cpp player.cpp loader.cpp .tmp/aliendefender1.0.0/ && (cd `dirname .tmp/aliendefender1.0.0` && $(TAR) aliendefender1.0.0.tar aliendefender1.0.0 && $(COMPRESS) aliendefender1.0.0.tar) && $(MOVE) `dirname .tmp/aliendefender1.0.0`/aliendefender1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/aliendefender1.0.0
|
||||
|
||||
|
||||
clean:compiler_clean
|
||||
@@ -213,64 +211,49 @@ compiler_moc_header_make_all: moc_map.cpp moc_game_data.cpp moc_aliens.cpp moc_t
|
||||
compiler_moc_header_clean:
|
||||
-$(DEL_FILE) moc_map.cpp moc_game_data.cpp moc_aliens.cpp moc_towers.cpp moc_splashes.cpp moc_adcore.cpp moc_player.cpp moc_loader.cpp
|
||||
moc_map.cpp: base_types.h \
|
||||
settreader.h \
|
||||
map.h
|
||||
/usr/bin/moc-qt4 $(DEFINES) $(INCPATH) map.h -o moc_map.cpp
|
||||
|
||||
moc_game_data.cpp: player.h \
|
||||
map.h \
|
||||
base_types.h \
|
||||
settreader.h \
|
||||
game_data.h
|
||||
/usr/bin/moc-qt4 $(DEFINES) $(INCPATH) game_data.h -o moc_game_data.cpp
|
||||
|
||||
moc_aliens.cpp: game_data.h \
|
||||
player.h \
|
||||
map.h \
|
||||
base_types.h \
|
||||
settreader.h \
|
||||
aliens.h
|
||||
/usr/bin/moc-qt4 $(DEFINES) $(INCPATH) aliens.h -o moc_aliens.cpp
|
||||
|
||||
moc_towers.cpp: game_data.h \
|
||||
player.h \
|
||||
map.h \
|
||||
base_types.h \
|
||||
settreader.h \
|
||||
towers.h
|
||||
/usr/bin/moc-qt4 $(DEFINES) $(INCPATH) towers.h -o moc_towers.cpp
|
||||
|
||||
moc_splashes.cpp: game_data.h \
|
||||
player.h \
|
||||
map.h \
|
||||
base_types.h \
|
||||
settreader.h \
|
||||
splashes.h
|
||||
/usr/bin/moc-qt4 $(DEFINES) $(INCPATH) splashes.h -o moc_splashes.cpp
|
||||
|
||||
moc_adcore.cpp: aliens.h \
|
||||
game_data.h \
|
||||
player.h \
|
||||
map.h \
|
||||
base_types.h \
|
||||
settreader.h \
|
||||
towers.h \
|
||||
splashes.h \
|
||||
loader.h \
|
||||
adcore.h
|
||||
/usr/bin/moc-qt4 $(DEFINES) $(INCPATH) adcore.h -o moc_adcore.cpp
|
||||
|
||||
moc_player.cpp: map.h \
|
||||
base_types.h \
|
||||
settreader.h \
|
||||
moc_player.cpp: base_types.h \
|
||||
player.h
|
||||
/usr/bin/moc-qt4 $(DEFINES) $(INCPATH) player.h -o moc_player.cpp
|
||||
|
||||
moc_loader.cpp: game_data.h \
|
||||
player.h \
|
||||
map.h \
|
||||
base_types.h \
|
||||
settreader.h \
|
||||
loader.h
|
||||
/usr/bin/moc-qt4 $(DEFINES) $(INCPATH) loader.h -o moc_loader.cpp
|
||||
|
||||
@@ -318,40 +301,31 @@ compiler_clean: compiler_moc_header_clean compiler_rcc_clean
|
||||
####### Compile
|
||||
|
||||
map.o: map.cpp map.h \
|
||||
base_types.h \
|
||||
settreader.h
|
||||
base_types.h
|
||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o map.o map.cpp
|
||||
|
||||
game_data.o: game_data.cpp game_data.h \
|
||||
player.h \
|
||||
map.h \
|
||||
base_types.h \
|
||||
settreader.h
|
||||
base_types.h
|
||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o game_data.o game_data.cpp
|
||||
|
||||
aliens.o: aliens.cpp aliens.h \
|
||||
game_data.h \
|
||||
player.h \
|
||||
map.h \
|
||||
base_types.h \
|
||||
settreader.h
|
||||
base_types.h
|
||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o aliens.o aliens.cpp
|
||||
|
||||
towers.o: towers.cpp towers.h \
|
||||
game_data.h \
|
||||
player.h \
|
||||
map.h \
|
||||
base_types.h \
|
||||
settreader.h
|
||||
base_types.h
|
||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o towers.o towers.cpp
|
||||
|
||||
main.o: main.cpp adcore.h \
|
||||
aliens.h \
|
||||
game_data.h \
|
||||
player.h \
|
||||
map.h \
|
||||
base_types.h \
|
||||
settreader.h \
|
||||
towers.h \
|
||||
splashes.h \
|
||||
loader.h
|
||||
@@ -360,38 +334,27 @@ main.o: main.cpp adcore.h \
|
||||
splashes.o: splashes.cpp splashes.h \
|
||||
game_data.h \
|
||||
player.h \
|
||||
map.h \
|
||||
base_types.h \
|
||||
settreader.h
|
||||
base_types.h
|
||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o splashes.o splashes.cpp
|
||||
|
||||
adcore.o: adcore.cpp adcore.h \
|
||||
aliens.h \
|
||||
game_data.h \
|
||||
player.h \
|
||||
map.h \
|
||||
base_types.h \
|
||||
settreader.h \
|
||||
towers.h \
|
||||
splashes.h \
|
||||
loader.h
|
||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o adcore.o adcore.cpp
|
||||
|
||||
player.o: player.cpp player.h \
|
||||
map.h \
|
||||
base_types.h \
|
||||
settreader.h
|
||||
base_types.h
|
||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o player.o player.cpp
|
||||
|
||||
settreader.o: settreader.cpp settreader.h
|
||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o settreader.o settreader.cpp
|
||||
|
||||
loader.o: loader.cpp loader.h \
|
||||
game_data.h \
|
||||
player.h \
|
||||
map.h \
|
||||
base_types.h \
|
||||
settreader.h
|
||||
base_types.h
|
||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o loader.o loader.cpp
|
||||
|
||||
moc_map.o: moc_map.cpp
|
||||
|
||||
15
adcore.h
15
adcore.h
@@ -2,7 +2,6 @@
|
||||
#define ADCORE_H
|
||||
|
||||
#include <QThread>
|
||||
#include <QObject>
|
||||
|
||||
#include "aliens.h"
|
||||
#include "towers.h"
|
||||
@@ -14,14 +13,12 @@ class adCore : public QThread
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit adCore(QObject *parent = 0);
|
||||
|
||||
Map *admap;
|
||||
Game_Data *addata;
|
||||
Aliens *adaliens;
|
||||
Towers *adtowers;
|
||||
Splashes *adsplashes;
|
||||
Loader * adload;
|
||||
int step;
|
||||
Game_Data * addata;
|
||||
Aliens * adaliens;
|
||||
Towers * adtowers;
|
||||
Splashes * adsplashes;
|
||||
Loader * adloader;
|
||||
unsigned int step;
|
||||
signals:
|
||||
|
||||
public slots:
|
||||
|
||||
@@ -6,7 +6,6 @@ HEADERS += base_types.h \
|
||||
splashes.h \
|
||||
adcore.h \
|
||||
player.h \
|
||||
settreader.h \
|
||||
loader.h
|
||||
SOURCES += map.cpp \
|
||||
game_data.cpp \
|
||||
@@ -16,7 +15,6 @@ SOURCES += map.cpp \
|
||||
splashes.cpp \
|
||||
adcore.cpp \
|
||||
player.cpp \
|
||||
settreader.cpp \
|
||||
loader.cpp
|
||||
RESOURCES += images.qrc
|
||||
OTHER_FILES += map.conf \
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
#include "aliens.h"
|
||||
|
||||
#include <cmath>
|
||||
|
||||
Aliens::Aliens(Game_Data *gd, QObject *parent) :
|
||||
QObject(parent)
|
||||
{
|
||||
gameData = gd;
|
||||
nextId = 0;
|
||||
nextId = 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -63,7 +62,6 @@ void Aliens::update()
|
||||
//qDebug() << i;
|
||||
//if (al.health < 0) emit AlienKill();
|
||||
float tmpdx,tmpdy,angl,arctg = 0;
|
||||
qDebug() <<"alien"<< i << " path index" << al.pathIndex << " pos" << al.pos;
|
||||
tmpdx = al.pos.x() - al.path.at(al.pathIndex).x();
|
||||
tmpdy = al.pos.y() - al.path.at(al.pathIndex).y();
|
||||
while (std::sqrt(tmpdx*tmpdx +tmpdy*tmpdy) < 2*al.speed)
|
||||
@@ -104,6 +102,7 @@ void Aliens::update()
|
||||
-al.speed*std::cos(arctg));
|
||||
//return true;
|
||||
gameData->curAliens.insert(al.Id,al);
|
||||
qDebug() <<"alien"<< i << " path index" << al.pathIndex << " pos" << al.pos;
|
||||
}
|
||||
for (int j=0; j<missIndex.size(); j++)
|
||||
{
|
||||
|
||||
3
aliens.h
3
aliens.h
@@ -1,8 +1,6 @@
|
||||
#ifndef ALIENS_H
|
||||
#define ALIENS_H
|
||||
|
||||
#include <QObject>
|
||||
|
||||
#include "game_data.h"
|
||||
|
||||
|
||||
@@ -14,7 +12,6 @@ public:
|
||||
void AddAlien(int srcId);
|
||||
void nextWave();
|
||||
void update();
|
||||
int size() const {return gameData->curAliens.size();}
|
||||
signals:
|
||||
|
||||
public slots:
|
||||
|
||||
23
base_types.h
23
base_types.h
@@ -2,8 +2,17 @@
|
||||
#define BASE_TYPES_H
|
||||
|
||||
#include <QPointF>
|
||||
#include <QPoint>
|
||||
#include <QList>
|
||||
#include <QVector>
|
||||
#include <QHash>
|
||||
#include <QMultiHash>
|
||||
#include <QDebug>
|
||||
#include <QString>
|
||||
#include <QObject>
|
||||
#include <QSize>
|
||||
#include <QRect>
|
||||
#include <QRectF>
|
||||
|
||||
struct AlienType
|
||||
{
|
||||
@@ -48,6 +57,13 @@ struct TowerType
|
||||
};
|
||||
|
||||
|
||||
struct TriggerType
|
||||
{
|
||||
int src;
|
||||
unsigned int timer;
|
||||
};
|
||||
|
||||
|
||||
struct srcTriggerType
|
||||
{
|
||||
enum triggerType
|
||||
@@ -106,6 +122,7 @@ struct SplashType
|
||||
int life; // in ticks
|
||||
float angle; // -180 .. 180
|
||||
QPointF pos;
|
||||
QList <TriggerType> triggers;
|
||||
};
|
||||
|
||||
|
||||
@@ -119,4 +136,10 @@ struct WaveType
|
||||
};
|
||||
|
||||
|
||||
inline uint qHash(const QPoint &pos)
|
||||
{
|
||||
return qHash(pos.x()) + (qHash(pos.y()) << 16);
|
||||
}
|
||||
|
||||
|
||||
#endif // BASE_TYPES_H
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
#ifndef GAME_DATA_H
|
||||
#define GAME_DATA_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QHash>
|
||||
|
||||
#include "player.h"
|
||||
#include "base_types.h"
|
||||
#include "map.h"
|
||||
|
||||
class Game_Data : public QObject
|
||||
{
|
||||
@@ -13,8 +12,10 @@ public:
|
||||
explicit Game_Data(Map * map, QObject *parent = 0);
|
||||
QList <srcAlienType> srcAliens;
|
||||
QHash <int,AlienType> curAliens;
|
||||
QHash <QPoint,TowerType> curTowers;
|
||||
QList <srcSplashType> srcSplashes;
|
||||
QList <srcTriggerType> srTriggers;
|
||||
QHash <int,SplashType> curSplashes;
|
||||
QHash <QPoint,TowerType> curTowers;
|
||||
QList <WaveType> waves;
|
||||
QList <Player *> players;
|
||||
Map * map;
|
||||
|
||||
2
loader.h
2
loader.h
@@ -1,11 +1,9 @@
|
||||
#ifndef LOADER_H
|
||||
#define LOADER_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QDomDocument>
|
||||
#include <QFile>
|
||||
#include <QTextStream>
|
||||
#include <QDebug>
|
||||
#include <QXmlSchema>
|
||||
#include <QXmlSchemaValidator>
|
||||
#include "game_data.h"
|
||||
|
||||
2
main.cpp
2
main.cpp
@@ -1,9 +1,9 @@
|
||||
#include <QDebug>
|
||||
#include <QtGui/QApplication>
|
||||
#include <QTimer>
|
||||
|
||||
#include "adcore.h"
|
||||
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
adCore core;
|
||||
|
||||
10
map.h
10
map.h
@@ -1,15 +1,7 @@
|
||||
#ifndef MAP_H
|
||||
#define MAP_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QSize>
|
||||
#include <QList>
|
||||
#include <QPointF>
|
||||
#include <QRect>
|
||||
#include <QFile>
|
||||
|
||||
#include "base_types.h"
|
||||
#include "settreader.h"
|
||||
|
||||
// Maximum map is 65530 x 65530 because qHash may be repeat and towers has same Id
|
||||
|
||||
@@ -44,7 +36,7 @@ public:
|
||||
void delTowerOnMap(QPoint pos);
|
||||
void removeAliensPath();
|
||||
QVector <QPointF> CreatePath(QPoint start, QPoint finish);
|
||||
// QSize size() const {return mapsize;}
|
||||
QRect Rect() const {return QRect(QPoint(),mapSize);}
|
||||
// QString name() const {return mapName;}
|
||||
QList <QPoint> Starts() const {return starts;}
|
||||
QList <QPoint> Finishs() const {return finishs;}
|
||||
|
||||
4
player.h
4
player.h
@@ -1,9 +1,7 @@
|
||||
#ifndef PLAYER_H
|
||||
#define PLAYER_H
|
||||
|
||||
#include <QObject>
|
||||
|
||||
#include "map.h"
|
||||
#include "base_types.h"
|
||||
|
||||
class Player : public QObject
|
||||
{
|
||||
|
||||
91
splashes.cpp
91
splashes.cpp
@@ -1,13 +1,102 @@
|
||||
#include "splashes.h"
|
||||
#include <cmath>
|
||||
|
||||
Splashes::Splashes(Game_Data *gd, QObject *parent) :
|
||||
QObject(parent)
|
||||
{
|
||||
gameData = gd;
|
||||
nextId = 1;
|
||||
}
|
||||
|
||||
|
||||
bool Splashes::AddSplash(int srcId, QPointF pos)
|
||||
{
|
||||
if (srcId < 0 || srcId >= gameData->srcSplashes.size())
|
||||
{
|
||||
qCritical("ERROR out of splashes range");
|
||||
return false;
|
||||
}
|
||||
srcSplashType src = gameData->srcSplashes.at(srcId);
|
||||
SplashType spl;// = gameData->srcAliens.at(srcId);
|
||||
spl.Id = nextId;
|
||||
spl.src = srcId;
|
||||
spl.TowerId = QPoint(-1,-1);
|
||||
spl.life = 0;
|
||||
spl.imgType = src.imgType;
|
||||
if (!gameData->map->Rect().contains(pos.toPoint()))
|
||||
{
|
||||
qCritical("ERROR splash out of map size");
|
||||
return false;
|
||||
}
|
||||
spl.pos = pos;
|
||||
spl.AlienId = -1;
|
||||
spl.angle = 0;
|
||||
spl.destination = pos;
|
||||
TriggerType trig;
|
||||
for(int i; i<src.triggerIndexes.size(); i++)
|
||||
{
|
||||
trig.timer = gameData->srTriggers.at(src.triggerIndexes.at(i)).timer;
|
||||
trig.src = src.triggerIndexes.at(i);
|
||||
spl.triggers.push_back(trig);
|
||||
}
|
||||
gameData->curSplashes.insert(spl.Id,spl);
|
||||
nextId++;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void Splashes::AddSplash(srcSplashType src, int index, TowerType tw)
|
||||
{
|
||||
SplashType spl;
|
||||
spl.Id = nextId;
|
||||
spl.TowerId = tw.pos;
|
||||
if (!gameData->curAliens.contains(tw.aim))
|
||||
qFatal("Error finding splash aim! Tower has nvalid aim!");
|
||||
if (src.autoControl)
|
||||
spl.AlienId = tw.aim;
|
||||
else
|
||||
spl.AlienId = -1;
|
||||
spl.destination = gameData->curAliens.value(tw.aim).pos;
|
||||
spl.angle = tw.angle;
|
||||
spl.pos = tw.pos; // FIXME: pos not in center/left angle of tower
|
||||
spl.imgType = src.imgType;
|
||||
spl.life = 0;
|
||||
spl.src = index;
|
||||
TriggerType trig;
|
||||
for(int i; i<src.triggerIndexes.size(); i++)
|
||||
{
|
||||
trig.timer = gameData->players.at(tw.PlayerId)->srcTowers.at(tw.src).triggers.at(src.triggerIndexes.at(i));
|
||||
trig.src = src.triggerIndexes.at(i);
|
||||
spl.triggers.push_back(trig);
|
||||
}
|
||||
gameData->curSplashes.insert(spl.Id,spl);
|
||||
nextId++;
|
||||
}
|
||||
|
||||
|
||||
void Splashes::update()
|
||||
{
|
||||
|
||||
for (int i; i<gameData->curSplashes.size(); i++)
|
||||
{
|
||||
SplashType spl = gameData->curSplashes.values().at(i);
|
||||
bool isTowerSplash = false;
|
||||
srcSplashType src;
|
||||
TowerType tw;
|
||||
if (gameData->map->Rect().contains(spl.TowerId))
|
||||
{
|
||||
if (gameData->curTowers.contains(spl.TowerId))
|
||||
{
|
||||
tw = gameData->curTowers.value(spl.TowerId);
|
||||
src = gameData->players.at(tw.PlayerId)->srcTowers.at(tw.src).splashes.at(spl.src);
|
||||
isTowerSplash = true;
|
||||
} else {
|
||||
spl.TowerId = QPoint(-1,-1);
|
||||
}
|
||||
}
|
||||
if (!isTowerSplash)
|
||||
src = gameData->srcSplashes.at(spl.src);
|
||||
// TODO: calculate new angle and pos....
|
||||
// TODO: activate trigger and more...
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
12
splashes.h
12
splashes.h
@@ -1,8 +1,6 @@
|
||||
#ifndef SPLASHES_H
|
||||
#define SPLASHES_H
|
||||
|
||||
#include <QObject>
|
||||
|
||||
#include "game_data.h"
|
||||
|
||||
class Splashes : public QObject
|
||||
@@ -10,19 +8,17 @@ class Splashes : public QObject
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit Splashes(Game_Data * gd, QObject *parent = 0);
|
||||
void AddSplash(int srcId);
|
||||
void AddSplash(srcSplashType src,TowerType tw);
|
||||
void DelSplashById(int Id);
|
||||
void DelSplash(int index);
|
||||
bool AddSplash(int srcId, QPointF pos);
|
||||
void DelSplash(int Id);
|
||||
void update();
|
||||
int size() const {return gameData->curSplashes.size();}
|
||||
|
||||
signals:
|
||||
|
||||
public slots:
|
||||
void AddSplash(srcSplashType src, int index, TowerType tw);
|
||||
|
||||
private:
|
||||
Game_Data *gameData;
|
||||
int nextId;
|
||||
};
|
||||
|
||||
#endif // SPLASHES_H
|
||||
|
||||
@@ -61,7 +61,7 @@ void Towers::update()
|
||||
{
|
||||
tw.reload++;
|
||||
} else {
|
||||
emit shot(stw.splashes.at(0),tw);
|
||||
emit shot(stw.splashes.at(0), 0, tw);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
10
towers.h
10
towers.h
@@ -1,8 +1,6 @@
|
||||
#ifndef TOWERS_H
|
||||
#define TOWERS_H
|
||||
|
||||
#include <QObject>
|
||||
|
||||
#include "game_data.h"
|
||||
|
||||
class Towers : public QObject
|
||||
@@ -13,18 +11,12 @@ public:
|
||||
bool AddTower(int playerId, int srcId, QPoint pos);
|
||||
void DelTower(QPoint pos);
|
||||
void update();
|
||||
int size() const {return gameData->curTowers.size();}
|
||||
signals:
|
||||
void shot(srcSplashType src, TowerType tw);
|
||||
void shot(srcSplashType src, int index, TowerType tw);
|
||||
public slots:
|
||||
|
||||
private:
|
||||
Game_Data * gameData;
|
||||
};
|
||||
|
||||
inline uint qHash(const QPoint &pos)
|
||||
{
|
||||
return qHash(pos.x()) + (qHash(pos.y()) << 16);
|
||||
}
|
||||
|
||||
#endif // TOWERS_H
|
||||
|
||||
Reference in New Issue
Block a user