correct core module with new types
This commit is contained in:
57
Makefile
57
Makefile
@@ -1,6 +1,6 @@
|
|||||||
#############################################################################
|
#############################################################################
|
||||||
# Makefile for building: aliendefender
|
# 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
|
# Project: aliendefender.pro
|
||||||
# Template: app
|
# Template: app
|
||||||
# Command: /usr/bin/qmake-qt4 -spec /usr/share/qt4/mkspecs/linux-g++ -unix CONFIG+=debug -o Makefile aliendefender.pro
|
# 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 \
|
splashes.cpp \
|
||||||
adcore.cpp \
|
adcore.cpp \
|
||||||
player.cpp \
|
player.cpp \
|
||||||
settreader.cpp \
|
|
||||||
loader.cpp moc_map.cpp \
|
loader.cpp moc_map.cpp \
|
||||||
moc_game_data.cpp \
|
moc_game_data.cpp \
|
||||||
moc_aliens.cpp \
|
moc_aliens.cpp \
|
||||||
@@ -69,7 +68,6 @@ OBJECTS = map.o \
|
|||||||
splashes.o \
|
splashes.o \
|
||||||
adcore.o \
|
adcore.o \
|
||||||
player.o \
|
player.o \
|
||||||
settreader.o \
|
|
||||||
loader.o \
|
loader.o \
|
||||||
moc_map.o \
|
moc_map.o \
|
||||||
moc_game_data.o \
|
moc_game_data.o \
|
||||||
@@ -190,7 +188,7 @@ qmake: FORCE
|
|||||||
|
|
||||||
dist:
|
dist:
|
||||||
@$(CHK_DIR_EXISTS) .tmp/aliendefender1.0.0 || $(MKDIR) .tmp/aliendefender1.0.0
|
@$(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
|
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:
|
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
|
-$(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 \
|
moc_map.cpp: base_types.h \
|
||||||
settreader.h \
|
|
||||||
map.h
|
map.h
|
||||||
/usr/bin/moc-qt4 $(DEFINES) $(INCPATH) map.h -o moc_map.cpp
|
/usr/bin/moc-qt4 $(DEFINES) $(INCPATH) map.h -o moc_map.cpp
|
||||||
|
|
||||||
moc_game_data.cpp: player.h \
|
moc_game_data.cpp: player.h \
|
||||||
map.h \
|
|
||||||
base_types.h \
|
base_types.h \
|
||||||
settreader.h \
|
|
||||||
game_data.h
|
game_data.h
|
||||||
/usr/bin/moc-qt4 $(DEFINES) $(INCPATH) game_data.h -o moc_game_data.cpp
|
/usr/bin/moc-qt4 $(DEFINES) $(INCPATH) game_data.h -o moc_game_data.cpp
|
||||||
|
|
||||||
moc_aliens.cpp: game_data.h \
|
moc_aliens.cpp: game_data.h \
|
||||||
player.h \
|
player.h \
|
||||||
map.h \
|
|
||||||
base_types.h \
|
base_types.h \
|
||||||
settreader.h \
|
|
||||||
aliens.h
|
aliens.h
|
||||||
/usr/bin/moc-qt4 $(DEFINES) $(INCPATH) aliens.h -o moc_aliens.cpp
|
/usr/bin/moc-qt4 $(DEFINES) $(INCPATH) aliens.h -o moc_aliens.cpp
|
||||||
|
|
||||||
moc_towers.cpp: game_data.h \
|
moc_towers.cpp: game_data.h \
|
||||||
player.h \
|
player.h \
|
||||||
map.h \
|
|
||||||
base_types.h \
|
base_types.h \
|
||||||
settreader.h \
|
|
||||||
towers.h
|
towers.h
|
||||||
/usr/bin/moc-qt4 $(DEFINES) $(INCPATH) towers.h -o moc_towers.cpp
|
/usr/bin/moc-qt4 $(DEFINES) $(INCPATH) towers.h -o moc_towers.cpp
|
||||||
|
|
||||||
moc_splashes.cpp: game_data.h \
|
moc_splashes.cpp: game_data.h \
|
||||||
player.h \
|
player.h \
|
||||||
map.h \
|
|
||||||
base_types.h \
|
base_types.h \
|
||||||
settreader.h \
|
|
||||||
splashes.h
|
splashes.h
|
||||||
/usr/bin/moc-qt4 $(DEFINES) $(INCPATH) splashes.h -o moc_splashes.cpp
|
/usr/bin/moc-qt4 $(DEFINES) $(INCPATH) splashes.h -o moc_splashes.cpp
|
||||||
|
|
||||||
moc_adcore.cpp: aliens.h \
|
moc_adcore.cpp: aliens.h \
|
||||||
game_data.h \
|
game_data.h \
|
||||||
player.h \
|
player.h \
|
||||||
map.h \
|
|
||||||
base_types.h \
|
base_types.h \
|
||||||
settreader.h \
|
|
||||||
towers.h \
|
towers.h \
|
||||||
splashes.h \
|
splashes.h \
|
||||||
loader.h \
|
loader.h \
|
||||||
adcore.h
|
adcore.h
|
||||||
/usr/bin/moc-qt4 $(DEFINES) $(INCPATH) adcore.h -o moc_adcore.cpp
|
/usr/bin/moc-qt4 $(DEFINES) $(INCPATH) adcore.h -o moc_adcore.cpp
|
||||||
|
|
||||||
moc_player.cpp: map.h \
|
moc_player.cpp: base_types.h \
|
||||||
base_types.h \
|
|
||||||
settreader.h \
|
|
||||||
player.h
|
player.h
|
||||||
/usr/bin/moc-qt4 $(DEFINES) $(INCPATH) player.h -o moc_player.cpp
|
/usr/bin/moc-qt4 $(DEFINES) $(INCPATH) player.h -o moc_player.cpp
|
||||||
|
|
||||||
moc_loader.cpp: game_data.h \
|
moc_loader.cpp: game_data.h \
|
||||||
player.h \
|
player.h \
|
||||||
map.h \
|
|
||||||
base_types.h \
|
base_types.h \
|
||||||
settreader.h \
|
|
||||||
loader.h
|
loader.h
|
||||||
/usr/bin/moc-qt4 $(DEFINES) $(INCPATH) loader.h -o moc_loader.cpp
|
/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
|
####### Compile
|
||||||
|
|
||||||
map.o: map.cpp map.h \
|
map.o: map.cpp map.h \
|
||||||
base_types.h \
|
base_types.h
|
||||||
settreader.h
|
|
||||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o map.o map.cpp
|
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o map.o map.cpp
|
||||||
|
|
||||||
game_data.o: game_data.cpp game_data.h \
|
game_data.o: game_data.cpp game_data.h \
|
||||||
player.h \
|
player.h \
|
||||||
map.h \
|
base_types.h
|
||||||
base_types.h \
|
|
||||||
settreader.h
|
|
||||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o game_data.o game_data.cpp
|
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o game_data.o game_data.cpp
|
||||||
|
|
||||||
aliens.o: aliens.cpp aliens.h \
|
aliens.o: aliens.cpp aliens.h \
|
||||||
game_data.h \
|
game_data.h \
|
||||||
player.h \
|
player.h \
|
||||||
map.h \
|
base_types.h
|
||||||
base_types.h \
|
|
||||||
settreader.h
|
|
||||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o aliens.o aliens.cpp
|
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o aliens.o aliens.cpp
|
||||||
|
|
||||||
towers.o: towers.cpp towers.h \
|
towers.o: towers.cpp towers.h \
|
||||||
game_data.h \
|
game_data.h \
|
||||||
player.h \
|
player.h \
|
||||||
map.h \
|
base_types.h
|
||||||
base_types.h \
|
|
||||||
settreader.h
|
|
||||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o towers.o towers.cpp
|
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o towers.o towers.cpp
|
||||||
|
|
||||||
main.o: main.cpp adcore.h \
|
main.o: main.cpp adcore.h \
|
||||||
aliens.h \
|
aliens.h \
|
||||||
game_data.h \
|
game_data.h \
|
||||||
player.h \
|
player.h \
|
||||||
map.h \
|
|
||||||
base_types.h \
|
base_types.h \
|
||||||
settreader.h \
|
|
||||||
towers.h \
|
towers.h \
|
||||||
splashes.h \
|
splashes.h \
|
||||||
loader.h
|
loader.h
|
||||||
@@ -360,38 +334,27 @@ main.o: main.cpp adcore.h \
|
|||||||
splashes.o: splashes.cpp splashes.h \
|
splashes.o: splashes.cpp splashes.h \
|
||||||
game_data.h \
|
game_data.h \
|
||||||
player.h \
|
player.h \
|
||||||
map.h \
|
base_types.h
|
||||||
base_types.h \
|
|
||||||
settreader.h
|
|
||||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o splashes.o splashes.cpp
|
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o splashes.o splashes.cpp
|
||||||
|
|
||||||
adcore.o: adcore.cpp adcore.h \
|
adcore.o: adcore.cpp adcore.h \
|
||||||
aliens.h \
|
aliens.h \
|
||||||
game_data.h \
|
game_data.h \
|
||||||
player.h \
|
player.h \
|
||||||
map.h \
|
|
||||||
base_types.h \
|
base_types.h \
|
||||||
settreader.h \
|
|
||||||
towers.h \
|
towers.h \
|
||||||
splashes.h \
|
splashes.h \
|
||||||
loader.h
|
loader.h
|
||||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o adcore.o adcore.cpp
|
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o adcore.o adcore.cpp
|
||||||
|
|
||||||
player.o: player.cpp player.h \
|
player.o: player.cpp player.h \
|
||||||
map.h \
|
base_types.h
|
||||||
base_types.h \
|
|
||||||
settreader.h
|
|
||||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o player.o player.cpp
|
$(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 \
|
loader.o: loader.cpp loader.h \
|
||||||
game_data.h \
|
game_data.h \
|
||||||
player.h \
|
player.h \
|
||||||
map.h \
|
base_types.h
|
||||||
base_types.h \
|
|
||||||
settreader.h
|
|
||||||
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o loader.o loader.cpp
|
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o loader.o loader.cpp
|
||||||
|
|
||||||
moc_map.o: moc_map.cpp
|
moc_map.o: moc_map.cpp
|
||||||
|
|||||||
7
adcore.h
7
adcore.h
@@ -2,7 +2,6 @@
|
|||||||
#define ADCORE_H
|
#define ADCORE_H
|
||||||
|
|
||||||
#include <QThread>
|
#include <QThread>
|
||||||
#include <QObject>
|
|
||||||
|
|
||||||
#include "aliens.h"
|
#include "aliens.h"
|
||||||
#include "towers.h"
|
#include "towers.h"
|
||||||
@@ -14,14 +13,12 @@ class adCore : public QThread
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit adCore(QObject *parent = 0);
|
explicit adCore(QObject *parent = 0);
|
||||||
|
|
||||||
Map *admap;
|
|
||||||
Game_Data * addata;
|
Game_Data * addata;
|
||||||
Aliens * adaliens;
|
Aliens * adaliens;
|
||||||
Towers * adtowers;
|
Towers * adtowers;
|
||||||
Splashes * adsplashes;
|
Splashes * adsplashes;
|
||||||
Loader * adload;
|
Loader * adloader;
|
||||||
int step;
|
unsigned int step;
|
||||||
signals:
|
signals:
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ HEADERS += base_types.h \
|
|||||||
splashes.h \
|
splashes.h \
|
||||||
adcore.h \
|
adcore.h \
|
||||||
player.h \
|
player.h \
|
||||||
settreader.h \
|
|
||||||
loader.h
|
loader.h
|
||||||
SOURCES += map.cpp \
|
SOURCES += map.cpp \
|
||||||
game_data.cpp \
|
game_data.cpp \
|
||||||
@@ -16,7 +15,6 @@ SOURCES += map.cpp \
|
|||||||
splashes.cpp \
|
splashes.cpp \
|
||||||
adcore.cpp \
|
adcore.cpp \
|
||||||
player.cpp \
|
player.cpp \
|
||||||
settreader.cpp \
|
|
||||||
loader.cpp
|
loader.cpp
|
||||||
RESOURCES += images.qrc
|
RESOURCES += images.qrc
|
||||||
OTHER_FILES += map.conf \
|
OTHER_FILES += map.conf \
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
#include "aliens.h"
|
#include "aliens.h"
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
||||||
Aliens::Aliens(Game_Data *gd, QObject *parent) :
|
Aliens::Aliens(Game_Data *gd, QObject *parent) :
|
||||||
QObject(parent)
|
QObject(parent)
|
||||||
{
|
{
|
||||||
gameData = gd;
|
gameData = gd;
|
||||||
nextId = 0;
|
nextId = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -63,7 +62,6 @@ void Aliens::update()
|
|||||||
//qDebug() << i;
|
//qDebug() << i;
|
||||||
//if (al.health < 0) emit AlienKill();
|
//if (al.health < 0) emit AlienKill();
|
||||||
float tmpdx,tmpdy,angl,arctg = 0;
|
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();
|
tmpdx = al.pos.x() - al.path.at(al.pathIndex).x();
|
||||||
tmpdy = al.pos.y() - al.path.at(al.pathIndex).y();
|
tmpdy = al.pos.y() - al.path.at(al.pathIndex).y();
|
||||||
while (std::sqrt(tmpdx*tmpdx +tmpdy*tmpdy) < 2*al.speed)
|
while (std::sqrt(tmpdx*tmpdx +tmpdy*tmpdy) < 2*al.speed)
|
||||||
@@ -104,6 +102,7 @@ void Aliens::update()
|
|||||||
-al.speed*std::cos(arctg));
|
-al.speed*std::cos(arctg));
|
||||||
//return true;
|
//return true;
|
||||||
gameData->curAliens.insert(al.Id,al);
|
gameData->curAliens.insert(al.Id,al);
|
||||||
|
qDebug() <<"alien"<< i << " path index" << al.pathIndex << " pos" << al.pos;
|
||||||
}
|
}
|
||||||
for (int j=0; j<missIndex.size(); j++)
|
for (int j=0; j<missIndex.size(); j++)
|
||||||
{
|
{
|
||||||
|
|||||||
3
aliens.h
3
aliens.h
@@ -1,8 +1,6 @@
|
|||||||
#ifndef ALIENS_H
|
#ifndef ALIENS_H
|
||||||
#define ALIENS_H
|
#define ALIENS_H
|
||||||
|
|
||||||
#include <QObject>
|
|
||||||
|
|
||||||
#include "game_data.h"
|
#include "game_data.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -14,7 +12,6 @@ public:
|
|||||||
void AddAlien(int srcId);
|
void AddAlien(int srcId);
|
||||||
void nextWave();
|
void nextWave();
|
||||||
void update();
|
void update();
|
||||||
int size() const {return gameData->curAliens.size();}
|
|
||||||
signals:
|
signals:
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
|||||||
23
base_types.h
23
base_types.h
@@ -2,8 +2,17 @@
|
|||||||
#define BASE_TYPES_H
|
#define BASE_TYPES_H
|
||||||
|
|
||||||
#include <QPointF>
|
#include <QPointF>
|
||||||
|
#include <QPoint>
|
||||||
#include <QList>
|
#include <QList>
|
||||||
#include <QVector>
|
#include <QVector>
|
||||||
|
#include <QHash>
|
||||||
|
#include <QMultiHash>
|
||||||
|
#include <QDebug>
|
||||||
|
#include <QString>
|
||||||
|
#include <QObject>
|
||||||
|
#include <QSize>
|
||||||
|
#include <QRect>
|
||||||
|
#include <QRectF>
|
||||||
|
|
||||||
struct AlienType
|
struct AlienType
|
||||||
{
|
{
|
||||||
@@ -48,6 +57,13 @@ struct TowerType
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
struct TriggerType
|
||||||
|
{
|
||||||
|
int src;
|
||||||
|
unsigned int timer;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
struct srcTriggerType
|
struct srcTriggerType
|
||||||
{
|
{
|
||||||
enum triggerType
|
enum triggerType
|
||||||
@@ -106,6 +122,7 @@ struct SplashType
|
|||||||
int life; // in ticks
|
int life; // in ticks
|
||||||
float angle; // -180 .. 180
|
float angle; // -180 .. 180
|
||||||
QPointF pos;
|
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
|
#endif // BASE_TYPES_H
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#ifndef GAME_DATA_H
|
#ifndef GAME_DATA_H
|
||||||
#define GAME_DATA_H
|
#define GAME_DATA_H
|
||||||
|
|
||||||
#include <QObject>
|
|
||||||
#include <QHash>
|
|
||||||
|
|
||||||
#include "player.h"
|
#include "player.h"
|
||||||
|
#include "base_types.h"
|
||||||
|
#include "map.h"
|
||||||
|
|
||||||
class Game_Data : public QObject
|
class Game_Data : public QObject
|
||||||
{
|
{
|
||||||
@@ -13,8 +12,10 @@ public:
|
|||||||
explicit Game_Data(Map * map, QObject *parent = 0);
|
explicit Game_Data(Map * map, QObject *parent = 0);
|
||||||
QList <srcAlienType> srcAliens;
|
QList <srcAlienType> srcAliens;
|
||||||
QHash <int,AlienType> curAliens;
|
QHash <int,AlienType> curAliens;
|
||||||
QHash <QPoint,TowerType> curTowers;
|
QList <srcSplashType> srcSplashes;
|
||||||
|
QList <srcTriggerType> srTriggers;
|
||||||
QHash <int,SplashType> curSplashes;
|
QHash <int,SplashType> curSplashes;
|
||||||
|
QHash <QPoint,TowerType> curTowers;
|
||||||
QList <WaveType> waves;
|
QList <WaveType> waves;
|
||||||
QList <Player *> players;
|
QList <Player *> players;
|
||||||
Map * map;
|
Map * map;
|
||||||
|
|||||||
2
loader.h
2
loader.h
@@ -1,11 +1,9 @@
|
|||||||
#ifndef LOADER_H
|
#ifndef LOADER_H
|
||||||
#define LOADER_H
|
#define LOADER_H
|
||||||
|
|
||||||
#include <QObject>
|
|
||||||
#include <QDomDocument>
|
#include <QDomDocument>
|
||||||
#include <QFile>
|
#include <QFile>
|
||||||
#include <QTextStream>
|
#include <QTextStream>
|
||||||
#include <QDebug>
|
|
||||||
#include <QXmlSchema>
|
#include <QXmlSchema>
|
||||||
#include <QXmlSchemaValidator>
|
#include <QXmlSchemaValidator>
|
||||||
#include "game_data.h"
|
#include "game_data.h"
|
||||||
|
|||||||
2
main.cpp
2
main.cpp
@@ -1,9 +1,9 @@
|
|||||||
#include <QDebug>
|
|
||||||
#include <QtGui/QApplication>
|
#include <QtGui/QApplication>
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
|
|
||||||
#include "adcore.h"
|
#include "adcore.h"
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
adCore core;
|
adCore core;
|
||||||
|
|||||||
10
map.h
10
map.h
@@ -1,15 +1,7 @@
|
|||||||
#ifndef MAP_H
|
#ifndef MAP_H
|
||||||
#define MAP_H
|
#define MAP_H
|
||||||
|
|
||||||
#include <QObject>
|
|
||||||
#include <QSize>
|
|
||||||
#include <QList>
|
|
||||||
#include <QPointF>
|
|
||||||
#include <QRect>
|
|
||||||
#include <QFile>
|
|
||||||
|
|
||||||
#include "base_types.h"
|
#include "base_types.h"
|
||||||
#include "settreader.h"
|
|
||||||
|
|
||||||
// Maximum map is 65530 x 65530 because qHash may be repeat and towers has same Id
|
// 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 delTowerOnMap(QPoint pos);
|
||||||
void removeAliensPath();
|
void removeAliensPath();
|
||||||
QVector <QPointF> CreatePath(QPoint start, QPoint finish);
|
QVector <QPointF> CreatePath(QPoint start, QPoint finish);
|
||||||
// QSize size() const {return mapsize;}
|
QRect Rect() const {return QRect(QPoint(),mapSize);}
|
||||||
// QString name() const {return mapName;}
|
// QString name() const {return mapName;}
|
||||||
QList <QPoint> Starts() const {return starts;}
|
QList <QPoint> Starts() const {return starts;}
|
||||||
QList <QPoint> Finishs() const {return finishs;}
|
QList <QPoint> Finishs() const {return finishs;}
|
||||||
|
|||||||
4
player.h
4
player.h
@@ -1,9 +1,7 @@
|
|||||||
#ifndef PLAYER_H
|
#ifndef PLAYER_H
|
||||||
#define PLAYER_H
|
#define PLAYER_H
|
||||||
|
|
||||||
#include <QObject>
|
#include "base_types.h"
|
||||||
|
|
||||||
#include "map.h"
|
|
||||||
|
|
||||||
class Player : public QObject
|
class Player : public QObject
|
||||||
{
|
{
|
||||||
|
|||||||
91
splashes.cpp
91
splashes.cpp
@@ -1,13 +1,102 @@
|
|||||||
#include "splashes.h"
|
#include "splashes.h"
|
||||||
|
#include <cmath>
|
||||||
|
|
||||||
Splashes::Splashes(Game_Data *gd, QObject *parent) :
|
Splashes::Splashes(Game_Data *gd, QObject *parent) :
|
||||||
QObject(parent)
|
QObject(parent)
|
||||||
{
|
{
|
||||||
gameData = gd;
|
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()
|
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
|
#ifndef SPLASHES_H
|
||||||
#define SPLASHES_H
|
#define SPLASHES_H
|
||||||
|
|
||||||
#include <QObject>
|
|
||||||
|
|
||||||
#include "game_data.h"
|
#include "game_data.h"
|
||||||
|
|
||||||
class Splashes : public QObject
|
class Splashes : public QObject
|
||||||
@@ -10,19 +8,17 @@ class Splashes : public QObject
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit Splashes(Game_Data * gd, QObject *parent = 0);
|
explicit Splashes(Game_Data * gd, QObject *parent = 0);
|
||||||
void AddSplash(int srcId);
|
bool AddSplash(int srcId, QPointF pos);
|
||||||
void AddSplash(srcSplashType src,TowerType tw);
|
void DelSplash(int Id);
|
||||||
void DelSplashById(int Id);
|
|
||||||
void DelSplash(int index);
|
|
||||||
void update();
|
void update();
|
||||||
int size() const {return gameData->curSplashes.size();}
|
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
void AddSplash(srcSplashType src, int index, TowerType tw);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Game_Data *gameData;
|
Game_Data *gameData;
|
||||||
|
int nextId;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // SPLASHES_H
|
#endif // SPLASHES_H
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ void Towers::update()
|
|||||||
{
|
{
|
||||||
tw.reload++;
|
tw.reload++;
|
||||||
} else {
|
} 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
|
#ifndef TOWERS_H
|
||||||
#define TOWERS_H
|
#define TOWERS_H
|
||||||
|
|
||||||
#include <QObject>
|
|
||||||
|
|
||||||
#include "game_data.h"
|
#include "game_data.h"
|
||||||
|
|
||||||
class Towers : public QObject
|
class Towers : public QObject
|
||||||
@@ -13,18 +11,12 @@ public:
|
|||||||
bool AddTower(int playerId, int srcId, QPoint pos);
|
bool AddTower(int playerId, int srcId, QPoint pos);
|
||||||
void DelTower(QPoint pos);
|
void DelTower(QPoint pos);
|
||||||
void update();
|
void update();
|
||||||
int size() const {return gameData->curTowers.size();}
|
|
||||||
signals:
|
signals:
|
||||||
void shot(srcSplashType src, TowerType tw);
|
void shot(srcSplashType src, int index, TowerType tw);
|
||||||
public slots:
|
public slots:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Game_Data * gameData;
|
Game_Data * gameData;
|
||||||
};
|
};
|
||||||
|
|
||||||
inline uint qHash(const QPoint &pos)
|
|
||||||
{
|
|
||||||
return qHash(pos.x()) + (qHash(pos.y()) << 16);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // TOWERS_H
|
#endif // TOWERS_H
|
||||||
|
|||||||
Reference in New Issue
Block a user