From 8d6a58922411aa4e65a8658d834f20db10c73728 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 25 Aug 2010 21:55:42 +0400 Subject: [PATCH] before ADeditor correct --- ADeditor/ADeditor.pro | 8 +- ADeditor/ADeditor.pro.user | 358 +++++++++----------------------- ADeditor/alienmodel.h | 6 +- ADeditor/mainwindow.cpp | 202 ++++++++++-------- ADeditor/mainwindow.h | 37 ++-- ADeditor/mainwindow.ui | 406 ++++++++++++++++++++++++++++++++++--- ADeditor/splashmodel.cpp | 6 + ADeditor/splashmodel.h | 23 +++ ADeditor/towermodel.cpp | 34 ++++ ADeditor/towermodel.h | 22 ++ aliendefender.pro.user | 332 +++++++++--------------------- aliendefender.pro.user.1.3 | 104 ++++++---- loader.cpp | 2 +- loader.h | 30 ++- 14 files changed, 868 insertions(+), 702 deletions(-) create mode 100644 ADeditor/splashmodel.cpp create mode 100644 ADeditor/splashmodel.h create mode 100644 ADeditor/towermodel.cpp create mode 100644 ADeditor/towermodel.h diff --git a/ADeditor/ADeditor.pro b/ADeditor/ADeditor.pro index 5f9c048..60e532a 100644 --- a/ADeditor/ADeditor.pro +++ b/ADeditor/ADeditor.pro @@ -8,8 +8,12 @@ TEMPLATE = app SOURCES += main.cpp \ mainwindow.cpp \ ../loader.cpp \ - alienmodel.cpp + alienmodel.cpp \ + towermodel.cpp \ + splashmodel.cpp HEADERS += mainwindow.h \ ../loader.h \ - alienmodel.h + alienmodel.h \ + towermodel.h \ + splashmodel.h FORMS += mainwindow.ui diff --git a/ADeditor/ADeditor.pro.user b/ADeditor/ADeditor.pro.user index 833beb4..423e8b5 100644 --- a/ADeditor/ADeditor.pro.user +++ b/ADeditor/ADeditor.pro.user @@ -1,283 +1,111 @@ - RunConfiguration0-BaseEnvironmentBase - 2 - - - RunConfiguration0-CommandLineArguments - - - - RunConfiguration0-ProFile - ADeditor.pro - - - RunConfiguration0-RunConfiguration.name - ADeditor - - - RunConfiguration0-UseDyldImageSuffix - false - - - RunConfiguration0-UseTerminal - false - - - RunConfiguration0-UserEnvironmentChanges - - - - RunConfiguration0-UserSetName - false - - - RunConfiguration0-UserSetWorkingDirectory - false - - - RunConfiguration0-UserWorkingDirectory - - - - RunConfiguration0-type - Qt4ProjectManager.Qt4RunConfiguration - - - activeRunConfiguration + ProjectExplorer.Project.ActiveTarget 0 - activebuildconfiguration - Debug - - - buildConfiguration-Debug + ProjectExplorer.Project.EditorSettings - Debug - 0 - 0 - - 2 + UTF-8 - buildConfiguration-Release + ProjectExplorer.Project.Target.0 - Release - 0 - - 0 + Настольный компьютер + Qt4ProjectManager.Target.DesktopTarget + 0 + 0 + + + + QtProjectManager.QMakeBuildStep + + + + + Qt4ProjectManager.MakeStep + false + + + + 2 + + + Qt4ProjectManager.MakeStep + true + + clean + + + + 1 + false + + Debug + Qt4ProjectManager.Qt4BuildConfiguration + 2 + C:/Users/Andrey/Desktop/aliendefender/build + 5 + 2 + true + + + + + QtProjectManager.QMakeBuildStep + + + + + Qt4ProjectManager.MakeStep + false + + + + 2 + + + Qt4ProjectManager.MakeStep + true + + + + 1 + false + + Release + Qt4ProjectManager.Qt4BuildConfiguration + 0 + C:/Users/Andrey/Desktop/aliendefender/ADeditor-build-desktop + 5 + 2 + true + + 2 + + ADeditor + Qt4ProjectManager.Qt4RunConfiguration + 2 + + ADeditor.pro + false + false + + false + true + C:\Users\Andrey\Desktop\ADeditor-build + + 1 - buildconfiguration-Debug-buildstep0 - - Debug - - DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-5i8Go7nPio,guid=870ffe971971ceac89206f0e4c5facbd - DEFAULTS_PATH=/usr/share/gconf/gnome.default.path - DESKTOP_SESSION=gnome - DISPLAY=:0.0 - GDMSESSION=gnome - GDM_KEYBOARD_LAYOUT=us - GDM_LANG=ru_RU.UTF-8 - GNOME_DESKTOP_SESSION_ID=this-is-deprecated - GNOME_KEYRING_CONTROL=/tmp/keyring-7vXnOW - GTK_MODULES=canberra-gtk-module - HOME=/home/andrey - LANG=ru_RU.UTF-8 - LD_LIBRARY_PATH=/usr/lib/qtcreator: - LOGNAME=andrey - MANDATORY_PATH=/usr/share/gconf/gnome.mandatory.path - ORBIT_SOCKETDIR=/tmp/orbit-andrey - PATH=/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games - PWD=/home/andrey - QTDIR=/usr/share/qt4 - SESSION_MANAGER=local/buull-eeePC:@/tmp/.ICE-unix/1124,unix/buull-eeePC:/tmp/.ICE-unix/1124 - SHELL=/bin/bash - SPEECHD_PORT=6561 - SSH_AGENT_PID=1158 - SSH_AUTH_SOCK=/tmp/keyring-7vXnOW/ssh - USER=andrey - USERNAME=andrey - XAUTHORITY=/var/run/gdm/auth-for-andrey-HWCXAG/database - XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome:/etc/xdg - XDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/ - XDG_SESSION_COOKIE=f0649decca52f2beb55c9ea74ad1d028-1281338556.676663-803309736 - - - /home/andrey/AD/aliendefender/ADeditor/ADeditor.pro - -spec - linux-g++ - -r - CONFIG+=debug - - /usr/bin/qmake-qt4 - false - /home/andrey/AD/aliendefender/ADeditor - + ProjectExplorer.Project.TargetCount + 1 - buildconfiguration-Debug-buildstep1 - - Debug - - DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-5i8Go7nPio,guid=870ffe971971ceac89206f0e4c5facbd - DEFAULTS_PATH=/usr/share/gconf/gnome.default.path - DESKTOP_SESSION=gnome - DISPLAY=:0.0 - GDMSESSION=gnome - GDM_KEYBOARD_LAYOUT=us - GDM_LANG=ru_RU.UTF-8 - GNOME_DESKTOP_SESSION_ID=this-is-deprecated - GNOME_KEYRING_CONTROL=/tmp/keyring-7vXnOW - GTK_MODULES=canberra-gtk-module - HOME=/home/andrey - LANG=ru_RU.UTF-8 - LD_LIBRARY_PATH=/usr/lib/qtcreator: - LOGNAME=andrey - MANDATORY_PATH=/usr/share/gconf/gnome.mandatory.path - ORBIT_SOCKETDIR=/tmp/orbit-andrey - PATH=/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games - PWD=/home/andrey - QTDIR=/usr/share/qt4 - SESSION_MANAGER=local/buull-eeePC:@/tmp/.ICE-unix/1124,unix/buull-eeePC:/tmp/.ICE-unix/1124 - SHELL=/bin/bash - SPEECHD_PORT=6561 - SSH_AGENT_PID=1158 - SSH_AUTH_SOCK=/tmp/keyring-7vXnOW/ssh - USER=andrey - USERNAME=andrey - XAUTHORITY=/var/run/gdm/auth-for-andrey-HWCXAG/database - XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome:/etc/xdg - XDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/ - XDG_SESSION_COOKIE=f0649decca52f2beb55c9ea74ad1d028-1281338556.676663-803309736 - - false - - -w - - /usr/bin/make - true - /home/andrey/AD/aliendefender/ADeditor - - - - buildconfiguration-Debug-cleanstep0 - - Debug - - DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-5i8Go7nPio,guid=870ffe971971ceac89206f0e4c5facbd - DEFAULTS_PATH=/usr/share/gconf/gnome.default.path - DESKTOP_SESSION=gnome - DISPLAY=:0.0 - GDMSESSION=gnome - GDM_KEYBOARD_LAYOUT=us - GDM_LANG=ru_RU.UTF-8 - GNOME_DESKTOP_SESSION_ID=this-is-deprecated - GNOME_KEYRING_CONTROL=/tmp/keyring-7vXnOW - GTK_MODULES=canberra-gtk-module - HOME=/home/andrey - LANG=ru_RU.UTF-8 - LD_LIBRARY_PATH=/usr/lib/qtcreator: - LOGNAME=andrey - MANDATORY_PATH=/usr/share/gconf/gnome.mandatory.path - ORBIT_SOCKETDIR=/tmp/orbit-andrey - PATH=/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games - PWD=/home/andrey - QTDIR=/usr/share/qt4 - SESSION_MANAGER=local/buull-eeePC:@/tmp/.ICE-unix/1124,unix/buull-eeePC:/tmp/.ICE-unix/1124 - SHELL=/bin/bash - SPEECHD_PORT=6561 - SSH_AGENT_PID=1158 - SSH_AUTH_SOCK=/tmp/keyring-7vXnOW/ssh - USER=andrey - USERNAME=andrey - XAUTHORITY=/var/run/gdm/auth-for-andrey-HWCXAG/database - XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome:/etc/xdg - XDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/ - XDG_SESSION_COOKIE=f0649decca52f2beb55c9ea74ad1d028-1281338556.676663-803309736 - - true - - clean - -w - - /usr/bin/make - true - /home/andrey/AD/aliendefender/ADeditor - true - - clean - - - - - buildconfiguration-Release-buildstep0 - - Release - - - - buildconfiguration-Release-buildstep1 - - Release - - - - buildconfiguration-Release-cleanstep0 - - Release - - - - buildconfigurations - - Debug - Release - - - - buildstep0 - - - - - - - buildstep1 - - - - - - buildsteps - - trolltech.qt4projectmanager.qmake - trolltech.qt4projectmanager.make - - - - cleanstep0 - - - true - - - - cleansteps - - trolltech.qt4projectmanager.make - - - - defaultFileEncoding - System - - - project - + ProjectExplorer.Project.Updater.FileVersion + 4 diff --git a/ADeditor/alienmodel.h b/ADeditor/alienmodel.h index 72797c3..c41890d 100644 --- a/ADeditor/alienmodel.h +++ b/ADeditor/alienmodel.h @@ -8,16 +8,16 @@ class AlienModel : public QAbstractListModel { Q_OBJECT public: - explicit AlienModel(QList aliens, QObject *parent = 0); + explicit AlienModel(QList *data, QObject *parent = 0); int rowCount(const QModelIndex &parent = QModelIndex()) const; QVariant data(const QModelIndex &index, int role) const; - void refresh(QList aliens); + void refresh(QList aliens); signals: public slots: private: - QList aliens; + QList *data; }; #endif // ALIENMODEL_H diff --git a/ADeditor/mainwindow.cpp b/ADeditor/mainwindow.cpp index 977a34f..7aa7072 100644 --- a/ADeditor/mainwindow.cpp +++ b/ADeditor/mainwindow.cpp @@ -5,160 +5,192 @@ MainWindow::MainWindow(QWidget *parent) : - QMainWindow(parent), - ui(new Ui::MainWindow) + QMainWindow(parent), + ui(new Ui::MainWindow) { - ui->setupUi(this); - adloader = new Loader(this); - adloader->load("data2.xml"); - alModel = new AlienModel(adloader->aliens.values()); - ui->lvAliens->setModel((QAbstractItemModel * )alModel); - connect(ui->lvAliens->selectionModel(),SIGNAL(currentChanged(QModelIndex, QModelIndex)),this,SLOT(lvAliens_select(QModelIndex, QModelIndex))); - ui->lvAliens->selectionModel()->setCurrentIndex(ui->lvAliens->model()->index(0,0),QItemSelectionModel::Select); + ui->setupUi(this); + adloader = new Loader(this); + adloader->load("data2.xml"); + alModel = new AlienModel(adloader->aliens.values()); + ui->lvAliens->setModel((QAbstractItemModel * )alModel); + connect(ui->lvAliens->selectionModel(),SIGNAL(currentChanged(QModelIndex, QModelIndex)),this,SLOT(lvAliens_select(QModelIndex, QModelIndex))); + ui->lvAliens->selectionModel()->setCurrentIndex(ui->lvAliens->model()->index(0,0),QItemSelectionModel::Select); + twModel = new TowerModel(adloader->towers.values()); + ui->lvTowers->setModel((QAbstractItemModel * )twModel); + connect(ui->lvTowers->selectionModel(),SIGNAL(currentChanged(QModelIndex, QModelIndex)),this,SLOT(lvTowers_select(QModelIndex, QModelIndex))); + ui->lvTowers->selectionModel()->setCurrentIndex(ui->lvTowers->model()->index(0,0),QItemSelectionModel::Select); + } MainWindow::~MainWindow() { - delete ui; + delete ui; } void MainWindow::changeEvent(QEvent *e) { - QMainWindow::changeEvent(e); - switch (e->type()) { - case QEvent::LanguageChange: - ui->retranslateUi(this); - break; - default: - break; - } + QMainWindow::changeEvent(e); + switch (e->type()) { + case QEvent::LanguageChange: + ui->retranslateUi(this); + break; + default: + break; + } } void MainWindow::on_cbAlArmor_toggled(bool checked) { - int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id; - ui->sbAlArmor->setEnabled(checked); - if (checked) adloader->aliens[id].armor = ui->sbAlArmor->value(); - else adloader->aliens[id].armor = 0; + int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id; + ui->sbAlArmor->setEnabled(checked); + if (checked) adloader->aliens[id].armor = ui->sbAlArmor->value(); + else adloader->aliens[id].armor = 0; } void MainWindow::on_cbAlRegeneration_toggled(bool checked) { - int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id; - ui->sbAlregeneration->setEnabled(checked); - if (checked) adloader->aliens[id].regeneration = ui->sbAlregeneration->value(); - else adloader->aliens[id].regeneration = 0; + int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id; + ui->sbAlregeneration->setEnabled(checked); + if (checked) adloader->aliens[id].regeneration = ui->sbAlregeneration->value(); + else adloader->aliens[id].regeneration = 0; } void MainWindow::lvAliens_select(QModelIndex index, QModelIndex) { - tbAlien al = adloader->aliens.values().at(index.row()); - ui->leAlName->setText(al.name); - ui->sbAlHealth->setValue(al.health); - ui->sbAlArmor->setValue(al.armor); - if (al.armor > 0) ui->cbAlArmor->setChecked(true); - else ui->cbAlArmor->setChecked(false); - ui->sbAlSpeed->setValue(al.speed); - ui->sbAlPrise->setValue(al.prise); - ui->sbAlregeneration->setValue(al.regeneration); - if (al.regeneration > 0) ui->cbAlRegeneration->setChecked(true); - else ui->cbAlRegeneration->setChecked(false); - ui->sbAlScore->setValue(al.score); - ui->cbAlIsFly->setChecked(al.isFlying); + tbAlien al = adloader->aliens.values().at(index.row()); + ui->leAlName->setText(al.name); + ui->sbAlHealth->setValue(al.health); + ui->sbAlArmor->setValue(al.armor); + if (al.armor > 0) ui->cbAlArmor->setChecked(true); + else ui->cbAlArmor->setChecked(false); + ui->sbAlSpeed->setValue(al.speed); + ui->sbAlPrise->setValue(al.prise); + ui->sbAlregeneration->setValue(al.regeneration); + if (al.regeneration > 0) ui->cbAlRegeneration->setChecked(true); + else ui->cbAlRegeneration->setChecked(false); + ui->sbAlScore->setValue(al.score); + ui->cbAlIsFly->setChecked(al.isFlying); +} + + +void MainWindow::lvTowers_select(QModelIndex index, QModelIndex) +{ + tbTower tw = adloader->towers.values().at(index.row()); + ui->sbTwBuildTime->setValue(tw.buildTime); + ui->sbTwCost->setValue(tw.cost); + ui->sbTwExpByDam->setValue(tw.expByDamage); + ui->sbTwExpByKill->setValue(tw.expByKill); + ui->sbTwExpByShot->setValue(tw.expByShot); + ui->leTwName->setText(tw.name); + ui->sbTwRadius->setValue(tw.radius); + ui->sbTwReload->setValue(tw.reload); } void MainWindow::on_pbSave_clicked() { - adloader->save("data2.xml"); - adloader->load("data2.xml"); - alModel->refresh(adloader->aliens.values()); + adloader->save("data2.xml"); + adloader->load("data2.xml"); + alModel->refresh(adloader->aliens.values()); } void MainWindow::on_sbAlHealth_valueChanged(double value) { - int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id; - adloader->aliens[id].health = value; + int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id; + adloader->aliens[id].health = value; } void MainWindow::on_sbAlArmor_valueChanged(double value) { - int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id; - adloader->aliens[id].armor = value; + int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id; + adloader->aliens[id].armor = value; } void MainWindow::on_sbAlregeneration_valueChanged(double value) { - int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id; - adloader->aliens[id].regeneration = value; + int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id; + adloader->aliens[id].regeneration = value; } void MainWindow::on_sbAlSpeed_valueChanged(double value) { - int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id; - adloader->aliens[id].speed = value; + int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id; + adloader->aliens[id].speed = value; } void MainWindow::on_sbAlPrise_valueChanged(int val) { - int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id; - adloader->aliens[id].prise = val; + int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id; + adloader->aliens[id].prise = val; } void MainWindow::on_sbAlScore_valueChanged(int val) { - int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id; - adloader->aliens[id].score = val; + int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id; + adloader->aliens[id].score = val; } void MainWindow::on_cbAlIsFly_clicked(bool checked) { - int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id; - adloader->aliens[id].isFlying = checked; + int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id; + adloader->aliens[id].isFlying = checked; } void MainWindow::on_leAlName_editingFinished() { - int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id; - adloader->aliens[id].name = ui->leAlName->text(); - alModel->refresh(adloader->aliens.values()); - ui->lvAliens->setModel((QAbstractItemModel * )alModel); + int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id; + adloader->aliens[id].name = ui->leAlName->text(); + alModel->refresh(adloader->aliens.values()); + ui->lvAliens->setModel((QAbstractItemModel * )alModel); } void MainWindow::on_pbAlAdd_clicked() { - int i = 1; - while (adloader->aliens.contains(i)) i++; - tbAlien al; - al.id = i; - adloader->aliens.insert(al.id,al); - int index = adloader->aliens.keys().indexOf(i); - alModel->refresh(adloader->aliens.values()); - ui->lvAliens->setModel((QAbstractItemModel * )alModel); - ui->lvAliens->reset(); - ui->lvAliens->selectionModel()->setCurrentIndex(ui->lvAliens->model()->index(index,0),QItemSelectionModel::Select); + int i = 1; + while (adloader->aliens.contains(i)) i++; + tbAlien al; + al.id = i; + adloader->aliens.insert(al.id,al); + int index = adloader->aliens.keys().indexOf(i); + alModel->refresh(adloader->aliens.values()); + ui->lvAliens->setModel((QAbstractItemModel * )alModel); + ui->lvAliens->reset(); + ui->lvAliens->selectionModel()->setCurrentIndex(ui->lvAliens->model()->index(index,0),QItemSelectionModel::Select); } void MainWindow::on_pbAlDel_clicked() { - QMessageBox msgBox; - int id = adloader->aliens.keys().at(ui->lvAliens->currentIndex().row()); - msgBox.setText(tr("Delete alien %1 id=%2").arg(adloader->aliens.value(id).name).arg(id)); - msgBox.setInformativeText(tr("Are you sure?")); - msgBox.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel); - msgBox.setDefaultButton(QMessageBox::Ok); - int ret = msgBox.exec(); - if (ret == QMessageBox::Ok) - { - adloader->aliens.remove(id); - alModel->refresh(adloader->aliens.values()); - ui->lvAliens->setModel((QAbstractItemModel * )alModel); - ui->lvAliens->reset(); - ui->lvAliens->selectionModel()->setCurrentIndex(ui->lvAliens->model()->index(0,0),QItemSelectionModel::Select); - } + QMessageBox msgBox; + int id = adloader->aliens.keys().at(ui->lvAliens->currentIndex().row()); + msgBox.setText(tr("Delete alien %1 id=%2").arg(adloader->aliens.value(id).name).arg(id)); + msgBox.setInformativeText(tr("Are you sure?")); + msgBox.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel); + msgBox.setDefaultButton(QMessageBox::Ok); + int ret = msgBox.exec(); + if (ret == QMessageBox::Ok) + { + adloader->aliens.remove(id); + alModel->refresh(adloader->aliens.values()); + ui->lvAliens->setModel((QAbstractItemModel * )alModel); + ui->lvAliens->reset(); + ui->lvAliens->selectionModel()->setCurrentIndex(ui->lvAliens->model()->index(0,0),QItemSelectionModel::Select); + } +} + +void MainWindow::on_leTwName_editingFinished() +{ + int id = adloader->towers.values().at(ui->lvTowers->currentIndex().row()).id; + adloader->towers[id].name = ui->leTwName->text(); + twModel->refresh(adloader->towers.values()); + ui->lvTowers->setModel((QAbstractItemModel * )twModel); +} + +void MainWindow::on_pbTwAdd_clicked() +{ + } diff --git a/ADeditor/mainwindow.h b/ADeditor/mainwindow.h index ac5d0e3..dee6adf 100644 --- a/ADeditor/mainwindow.h +++ b/ADeditor/mainwindow.h @@ -6,6 +6,7 @@ #include #include "alienmodel.h" +#include "towermodel.h" namespace Ui { @@ -23,24 +24,28 @@ protected: private: Ui::MainWindow *ui; - Loader * adloader; - AlienModel * alModel; + Loader * adloader; + AlienModel * alModel; + TowerModel * twModel; private slots: - void on_pbAlDel_clicked(); - void on_pbAlAdd_clicked(); - void on_leAlName_editingFinished(); - void on_cbAlIsFly_clicked(bool checked); - void on_sbAlScore_valueChanged(int ); - void on_sbAlPrise_valueChanged(int ); - void on_sbAlSpeed_valueChanged(double ); - void on_sbAlregeneration_valueChanged(double ); - void on_sbAlArmor_valueChanged(double ); - void on_sbAlHealth_valueChanged(double ); - void on_pbSave_clicked(); - void lvAliens_select(QModelIndex, QModelIndex); - void on_cbAlRegeneration_toggled(bool checked); - void on_cbAlArmor_toggled(bool checked); + void on_pbTwAdd_clicked(); + void on_leTwName_editingFinished(); + void on_pbAlDel_clicked(); + void on_pbAlAdd_clicked(); + void on_leAlName_editingFinished(); + void on_cbAlIsFly_clicked(bool checked); + void on_sbAlScore_valueChanged(int ); + void on_sbAlPrise_valueChanged(int ); + void on_sbAlSpeed_valueChanged(double ); + void on_sbAlregeneration_valueChanged(double ); + void on_sbAlArmor_valueChanged(double ); + void on_sbAlHealth_valueChanged(double ); + void on_pbSave_clicked(); + void lvAliens_select(QModelIndex, QModelIndex); + void lvTowers_select(QModelIndex, QModelIndex); + void on_cbAlRegeneration_toggled(bool checked); + void on_cbAlArmor_toggled(bool checked); }; #endif // MAINWINDOW_H diff --git a/ADeditor/mainwindow.ui b/ADeditor/mainwindow.ui index 34f7bf1..1c29f3f 100644 --- a/ADeditor/mainwindow.ui +++ b/ADeditor/mainwindow.ui @@ -6,25 +6,38 @@ 0 0 - 516 - 468 + 598 + 489 + + PointingHandCursor + MainWindow + + QMainWindow::AllowNestedDocks|QMainWindow::AllowTabbedDocks|QMainWindow::AnimatedDocks|QMainWindow::ForceTabbedDocks + - - - + + + - 0 + 2 - + Aliens - + + + + + QAbstractItemView::AllEditTriggers + + + @@ -366,6 +379,9 @@ 0 + + PointingHandCursor + Add @@ -386,25 +402,21 @@ - - - - QAbstractItemView::AllEditTriggers - - - - + Towers - + - + - + + + ArrowCursor + QFrame::StyledPanel @@ -431,7 +443,7 @@ - + @@ -454,7 +466,7 @@ - + @@ -477,7 +489,7 @@ - + @@ -500,7 +512,7 @@ - + @@ -523,7 +535,7 @@ - + @@ -546,7 +558,7 @@ - + @@ -569,7 +581,7 @@ - + @@ -592,7 +604,7 @@ - + @@ -615,7 +627,7 @@ - + @@ -638,7 +650,7 @@ - + 0 @@ -683,6 +695,9 @@ 32 + + PointingHandCursor + ... @@ -693,12 +708,343 @@ + + + + 20 + + + + + + 0 + 0 + + + + PointingHandCursor + + + Add + + + + + + + + 0 + 0 + + + + PointingHandCursor + + + Delete + + + + + + + + Splashes + + + + + + QAbstractItemView::AllEditTriggers + + + + + + + true + + + + 0 + 0 + + + + IBeamCursor + + + QFrame::StyledPanel + + + QFrame::Raised + + + + QLayout::SetDefaultConstraint + + + 5 + + + 5 + + + 2 + + + + + + + + 0 + 0 + + + + Name + + + Qt::AlignCenter + + + + + + + + + + + + + + + 0 + 0 + + + + Speed + + + Qt::AlignCenter + + + + + + + + + + 5 + + + 99.000000000000000 + + + 0.010000000000000 + + + 0.010000000000000 + + + + + + + + + + + + 0 + 0 + + + + ArrowCursor + + + Qt::LeftToRight + + + AutoControl + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + 0 + 0 + + + + LifeTime + + + Qt::AlignCenter + + + + + + + + + + + + + + + 0 + 0 + + + + Image + + + Qt::AlignCenter + + + + + + + + 0 + 0 + + + + + 40 + 40 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + true + + + + 0 + 0 + + + + + 48 + 32 + + + + PointingHandCursor + + + ... + + + + + + + + + + + + 20 + + + + + + 0 + 0 + + + + PointingHandCursor + + + Add + + + + + + + + 0 + 0 + + + + PointingHandCursor + + + Delete + + + + + + + + + + Tab 2 + + - + + + PointingHandCursor + Save diff --git a/ADeditor/splashmodel.cpp b/ADeditor/splashmodel.cpp new file mode 100644 index 0000000..b30de91 --- /dev/null +++ b/ADeditor/splashmodel.cpp @@ -0,0 +1,6 @@ +#include "splashmodel.h" + +SplashModel::SplashModel(QList splashes, QObject *parent) : + QAbstractListModel(parent) +{ +} diff --git a/ADeditor/splashmodel.h b/ADeditor/splashmodel.h new file mode 100644 index 0000000..2c8c168 --- /dev/null +++ b/ADeditor/splashmodel.h @@ -0,0 +1,23 @@ +#ifndef SPLASHMODEL_H +#define SPLASHMODEL_H + +#include +#include "../loader.h" + +class SplashModel : public QAbstractListModel +{ + Q_OBJECT +public: + explicit SplashModel(QList splashes, QObject *parent = 0); + //int rowCount(const QModelIndex &parent = QModelIndex()) const; + //QVariant data(const QModelIndex &index, int role) const; + void refresh(QList splashes); + +signals: + +public slots: +private: + QList splashes; +}; + +#endif // SPLASHMODEL_H diff --git a/ADeditor/towermodel.cpp b/ADeditor/towermodel.cpp new file mode 100644 index 0000000..9c0ab79 --- /dev/null +++ b/ADeditor/towermodel.cpp @@ -0,0 +1,34 @@ +#include "towermodel.h" + +TowerModel::TowerModel(QList mtowers, QObject *parent) : + QAbstractListModel(parent) +{ + towers = mtowers; +} + +void TowerModel::refresh(QList mtowers) +{ + towers = mtowers; +} + + +int TowerModel::rowCount(const QModelIndex &) const +{ + return towers.count(); +} + + +QVariant TowerModel::data(const QModelIndex &index, int role) const +{ + if (!index.isValid()) + return QVariant(); + + if (index.row() >= towers.size()) + return QVariant(); + + if (role == Qt::DisplayRole) + { + return towers.at(index.row()).name; + } + return QVariant(); +} diff --git a/ADeditor/towermodel.h b/ADeditor/towermodel.h new file mode 100644 index 0000000..7ec45cc --- /dev/null +++ b/ADeditor/towermodel.h @@ -0,0 +1,22 @@ +#ifndef TOWERMODEL_H +#define TOWERMODEL_H + +#include +#include "../loader.h" + +class TowerModel : public QAbstractListModel +{ + Q_OBJECT +public: + explicit TowerModel(QList towers, QObject *parent = 0); + int rowCount(const QModelIndex &parent = QModelIndex()) const; + QVariant data(const QModelIndex &index, int role) const; + void refresh(QList towers); +signals: + +public slots: +private: + QList towers; +}; + +#endif // TOWERMODEL_H diff --git a/aliendefender.pro.user b/aliendefender.pro.user index d841b83..70767dc 100644 --- a/aliendefender.pro.user +++ b/aliendefender.pro.user @@ -1,255 +1,113 @@ - RunConfiguration0-BaseEnvironmentBase - 2 - - - RunConfiguration0-CommandLineArguments - - - - RunConfiguration0-ProFile - aliendefender.pro - - - RunConfiguration0-RunConfiguration.name - aliendefender - - - RunConfiguration0-UseDyldImageSuffix - false - - - RunConfiguration0-UseTerminal - false - - - RunConfiguration0-UserEnvironmentChanges - - - - RunConfiguration0-UserSetName - false - - - RunConfiguration0-UserSetWorkingDirectory - false - - - RunConfiguration0-UserWorkingDirectory - - - - RunConfiguration0-type - Qt4ProjectManager.Qt4RunConfiguration - - - activeRunConfiguration + ProjectExplorer.Project.ActiveTarget 0 - activebuildconfiguration - Debug - - - buildConfiguration-Debug + ProjectExplorer.Project.EditorSettings - Debug - 2 - 0 - - 2 + System - buildconfiguration-Debug-buildstep0 + ProjectExplorer.Project.Target.0 - Debug - - DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-5i8Go7nPio,guid=870ffe971971ceac89206f0e4c5facbd - DEFAULTS_PATH=/usr/share/gconf/gnome.default.path - DESKTOP_SESSION=gnome - DISPLAY=:0.0 - GDMSESSION=gnome - GDM_KEYBOARD_LAYOUT=us - GDM_LANG=ru_RU.UTF-8 - GNOME_DESKTOP_SESSION_ID=this-is-deprecated - GNOME_KEYRING_CONTROL=/tmp/keyring-7vXnOW - GTK_MODULES=canberra-gtk-module - HOME=/home/andrey - LANG=ru_RU.UTF-8 - LD_LIBRARY_PATH=/usr/lib/qtcreator: - LOGNAME=andrey - MANDATORY_PATH=/usr/share/gconf/gnome.mandatory.path - ORBIT_SOCKETDIR=/tmp/orbit-andrey - PATH=/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games - PWD=/home/andrey - QTDIR=/usr/share/qt4 - SESSION_MANAGER=local/buull-eeePC:@/tmp/.ICE-unix/1124,unix/buull-eeePC:/tmp/.ICE-unix/1124 - SHELL=/bin/bash - SPEECHD_PORT=6561 - SSH_AGENT_PID=1158 - SSH_AUTH_SOCK=/tmp/keyring-7vXnOW/ssh - USER=andrey - USERNAME=andrey - XAUTHORITY=/var/run/gdm/auth-for-andrey-HWCXAG/database - XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome:/etc/xdg - XDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/ - XDG_SESSION_COOKIE=f0649decca52f2beb55c9ea74ad1d028-1281338556.676663-803309736 - - - /home/andrey/AD/aliendefender/aliendefender.pro - -spec - linux-g++ - -r - CONFIG+=debug - - /usr/bin/qmake-qt4 - false - /home/andrey/AD/aliendefender + Настольный компьютер + Qt4ProjectManager.Target.DesktopTarget + 0 + 0 + + + qmake + QtProjectManager.QMakeBuildStep + + + + Сборка + Qt4ProjectManager.MakeStep + false + + + + 2 + + Сборка + Qt4ProjectManager.MakeStep + true + + clean + + + + 1 + false + + Отладка + Qt4ProjectManager.Qt4BuildConfiguration + 2 + C:/Users/Andrey/Desktop/aliendefender-build-desktop + 5 + 2 + true + + + + qmake + QtProjectManager.QMakeBuildStep + + + + Сборка + Qt4ProjectManager.MakeStep + false + + + + 2 + + Сборка + Qt4ProjectManager.MakeStep + true + + clean + + + + 1 + false + + Релиз + Qt4ProjectManager.Qt4BuildConfiguration + 0 + C:/Users/Andrey/Desktop/aliendefender-build-desktop + 5 + 2 + true + + 2 + + aliendefender + Qt4ProjectManager.Qt4RunConfiguration + 2 + + aliendefender.pro + false + false + + false + false + + + 1 - buildconfiguration-Debug-buildstep1 - - Debug - - DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-5i8Go7nPio,guid=870ffe971971ceac89206f0e4c5facbd - DEFAULTS_PATH=/usr/share/gconf/gnome.default.path - DESKTOP_SESSION=gnome - DISPLAY=:0.0 - GDMSESSION=gnome - GDM_KEYBOARD_LAYOUT=us - GDM_LANG=ru_RU.UTF-8 - GNOME_DESKTOP_SESSION_ID=this-is-deprecated - GNOME_KEYRING_CONTROL=/tmp/keyring-7vXnOW - GTK_MODULES=canberra-gtk-module - HOME=/home/andrey - LANG=ru_RU.UTF-8 - LD_LIBRARY_PATH=/usr/lib/qtcreator: - LOGNAME=andrey - MANDATORY_PATH=/usr/share/gconf/gnome.mandatory.path - ORBIT_SOCKETDIR=/tmp/orbit-andrey - PATH=/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games - PWD=/home/andrey - QTDIR=/usr/share/qt4 - SESSION_MANAGER=local/buull-eeePC:@/tmp/.ICE-unix/1124,unix/buull-eeePC:/tmp/.ICE-unix/1124 - SHELL=/bin/bash - SPEECHD_PORT=6561 - SSH_AGENT_PID=1158 - SSH_AUTH_SOCK=/tmp/keyring-7vXnOW/ssh - USER=andrey - USERNAME=andrey - XAUTHORITY=/var/run/gdm/auth-for-andrey-HWCXAG/database - XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome:/etc/xdg - XDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/ - XDG_SESSION_COOKIE=f0649decca52f2beb55c9ea74ad1d028-1281338556.676663-803309736 - - false - - -w - - /usr/bin/make - true - /home/andrey/AD/aliendefender - + ProjectExplorer.Project.TargetCount + 1 - buildconfiguration-Debug-cleanstep0 - - Debug - - DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-5i8Go7nPio,guid=870ffe971971ceac89206f0e4c5facbd - DEFAULTS_PATH=/usr/share/gconf/gnome.default.path - DESKTOP_SESSION=gnome - DISPLAY=:0.0 - GDMSESSION=gnome - GDM_KEYBOARD_LAYOUT=us - GDM_LANG=ru_RU.UTF-8 - GNOME_DESKTOP_SESSION_ID=this-is-deprecated - GNOME_KEYRING_CONTROL=/tmp/keyring-7vXnOW - GTK_MODULES=canberra-gtk-module - HOME=/home/andrey - LANG=ru_RU.UTF-8 - LD_LIBRARY_PATH=/usr/lib/qtcreator: - LOGNAME=andrey - MANDATORY_PATH=/usr/share/gconf/gnome.mandatory.path - ORBIT_SOCKETDIR=/tmp/orbit-andrey - PATH=/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games - PWD=/home/andrey - QTDIR=/usr/share/qt4 - SESSION_MANAGER=local/buull-eeePC:@/tmp/.ICE-unix/1124,unix/buull-eeePC:/tmp/.ICE-unix/1124 - SHELL=/bin/bash - SPEECHD_PORT=6561 - SSH_AGENT_PID=1158 - SSH_AUTH_SOCK=/tmp/keyring-7vXnOW/ssh - USER=andrey - USERNAME=andrey - XAUTHORITY=/var/run/gdm/auth-for-andrey-HWCXAG/database - XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome:/etc/xdg - XDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/ - XDG_SESSION_COOKIE=f0649decca52f2beb55c9ea74ad1d028-1281338556.676663-803309736 - - true - - clean - -w - - /usr/bin/make - true - /home/andrey/AD/aliendefender - true - - clean - - - - - buildconfigurations - - Debug - - - - buildstep0 - - - - - - - buildstep1 - - - - - - buildsteps - - trolltech.qt4projectmanager.qmake - trolltech.qt4projectmanager.make - - - - cleanstep0 - - - true - - - - cleansteps - - trolltech.qt4projectmanager.make - - - - defaultFileEncoding - System - - - project - + ProjectExplorer.Project.Updater.FileVersion + 4 diff --git a/aliendefender.pro.user.1.3 b/aliendefender.pro.user.1.3 index f344427..d841b83 100644 --- a/aliendefender.pro.user.1.3 +++ b/aliendefender.pro.user.1.3 @@ -56,25 +56,18 @@ buildConfiguration-Debug Debug - 0 + 2 0 + 2 - - buildConfiguration-Release - - Release - 0 - 0 - - buildconfiguration-Debug-buildstep0 Debug - DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-p5HnkClUWv,guid=600e78a10ff64ffb1ced7c414c4c6498 + DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-5i8Go7nPio,guid=870ffe971971ceac89206f0e4c5facbd DEFAULTS_PATH=/usr/share/gconf/gnome.default.path DESKTOP_SESSION=gnome DISPLAY=:0.0 @@ -82,7 +75,7 @@ GDM_KEYBOARD_LAYOUT=us GDM_LANG=ru_RU.UTF-8 GNOME_DESKTOP_SESSION_ID=this-is-deprecated - GNOME_KEYRING_CONTROL=/tmp/keyring-wgH6gj + GNOME_KEYRING_CONTROL=/tmp/keyring-7vXnOW GTK_MODULES=canberra-gtk-module HOME=/home/andrey LANG=ru_RU.UTF-8 @@ -93,20 +86,20 @@ PATH=/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games PWD=/home/andrey QTDIR=/usr/share/qt4 - SESSION_MANAGER=local/buull-eeePC:@/tmp/.ICE-unix/1203,unix/buull-eeePC:/tmp/.ICE-unix/1203 + SESSION_MANAGER=local/buull-eeePC:@/tmp/.ICE-unix/1124,unix/buull-eeePC:/tmp/.ICE-unix/1124 SHELL=/bin/bash SPEECHD_PORT=6561 - SSH_AGENT_PID=1245 - SSH_AUTH_SOCK=/tmp/keyring-wgH6gj/ssh + SSH_AGENT_PID=1158 + SSH_AUTH_SOCK=/tmp/keyring-7vXnOW/ssh USER=andrey USERNAME=andrey - XAUTHORITY=/var/run/gdm/auth-for-andrey-MPPKxH/database + XAUTHORITY=/var/run/gdm/auth-for-andrey-HWCXAG/database XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome:/etc/xdg XDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/ - XDG_SESSION_COOKIE=f0649decca52f2beb55c9ea74ad1d028-1280074903.597291-1238668786 + XDG_SESSION_COOKIE=f0649decca52f2beb55c9ea74ad1d028-1281338556.676663-803309736 - /home/andrey/aliendefender/aliendefender.pro + /home/andrey/AD/aliendefender/aliendefender.pro -spec linux-g++ -r @@ -114,7 +107,7 @@ /usr/bin/qmake-qt4 false - /home/andrey/aliendefender + /home/andrey/AD/aliendefender @@ -122,7 +115,7 @@ Debug - DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-p5HnkClUWv,guid=600e78a10ff64ffb1ced7c414c4c6498 + DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-5i8Go7nPio,guid=870ffe971971ceac89206f0e4c5facbd DEFAULTS_PATH=/usr/share/gconf/gnome.default.path DESKTOP_SESSION=gnome DISPLAY=:0.0 @@ -130,7 +123,7 @@ GDM_KEYBOARD_LAYOUT=us GDM_LANG=ru_RU.UTF-8 GNOME_DESKTOP_SESSION_ID=this-is-deprecated - GNOME_KEYRING_CONTROL=/tmp/keyring-wgH6gj + GNOME_KEYRING_CONTROL=/tmp/keyring-7vXnOW GTK_MODULES=canberra-gtk-module HOME=/home/andrey LANG=ru_RU.UTF-8 @@ -141,17 +134,17 @@ PATH=/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games PWD=/home/andrey QTDIR=/usr/share/qt4 - SESSION_MANAGER=local/buull-eeePC:@/tmp/.ICE-unix/1203,unix/buull-eeePC:/tmp/.ICE-unix/1203 + SESSION_MANAGER=local/buull-eeePC:@/tmp/.ICE-unix/1124,unix/buull-eeePC:/tmp/.ICE-unix/1124 SHELL=/bin/bash SPEECHD_PORT=6561 - SSH_AGENT_PID=1245 - SSH_AUTH_SOCK=/tmp/keyring-wgH6gj/ssh + SSH_AGENT_PID=1158 + SSH_AUTH_SOCK=/tmp/keyring-7vXnOW/ssh USER=andrey USERNAME=andrey - XAUTHORITY=/var/run/gdm/auth-for-andrey-MPPKxH/database + XAUTHORITY=/var/run/gdm/auth-for-andrey-HWCXAG/database XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome:/etc/xdg XDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/ - XDG_SESSION_COOKIE=f0649decca52f2beb55c9ea74ad1d028-1280074903.597291-1238668786 + XDG_SESSION_COOKIE=f0649decca52f2beb55c9ea74ad1d028-1281338556.676663-803309736 false @@ -159,42 +152,63 @@ /usr/bin/make true - /home/andrey/aliendefender + /home/andrey/AD/aliendefender buildconfiguration-Debug-cleanstep0 Debug + + DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-5i8Go7nPio,guid=870ffe971971ceac89206f0e4c5facbd + DEFAULTS_PATH=/usr/share/gconf/gnome.default.path + DESKTOP_SESSION=gnome + DISPLAY=:0.0 + GDMSESSION=gnome + GDM_KEYBOARD_LAYOUT=us + GDM_LANG=ru_RU.UTF-8 + GNOME_DESKTOP_SESSION_ID=this-is-deprecated + GNOME_KEYRING_CONTROL=/tmp/keyring-7vXnOW + GTK_MODULES=canberra-gtk-module + HOME=/home/andrey + LANG=ru_RU.UTF-8 + LD_LIBRARY_PATH=/usr/lib/qtcreator: + LOGNAME=andrey + MANDATORY_PATH=/usr/share/gconf/gnome.mandatory.path + ORBIT_SOCKETDIR=/tmp/orbit-andrey + PATH=/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games + PWD=/home/andrey + QTDIR=/usr/share/qt4 + SESSION_MANAGER=local/buull-eeePC:@/tmp/.ICE-unix/1124,unix/buull-eeePC:/tmp/.ICE-unix/1124 + SHELL=/bin/bash + SPEECHD_PORT=6561 + SSH_AGENT_PID=1158 + SSH_AUTH_SOCK=/tmp/keyring-7vXnOW/ssh + USER=andrey + USERNAME=andrey + XAUTHORITY=/var/run/gdm/auth-for-andrey-HWCXAG/database + XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome:/etc/xdg + XDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/ + XDG_SESSION_COOKIE=f0649decca52f2beb55c9ea74ad1d028-1281338556.676663-803309736 + + true + + clean + -w + + /usr/bin/make + true + /home/andrey/AD/aliendefender true clean - - buildconfiguration-Release-buildstep0 - - Release - - - - buildconfiguration-Release-buildstep1 - - Release - - - - buildconfiguration-Release-cleanstep0 - - Release - - buildconfigurations Debug - Release diff --git a/loader.cpp b/loader.cpp index a43598e..8fcd349 100644 --- a/loader.cpp +++ b/loader.cpp @@ -726,7 +726,7 @@ void Loader::readMaps() void Loader::validate(QString filename) { - QFile sfile("schema.xml"); + QFile sfile("schema.xml"); if (!sfile.open(QIODevice::ReadOnly)) qFatal("No file schema.xml found!"); QXmlSchema schema; diff --git a/loader.h b/loader.h index 33abf36..d4fa9cb 100644 --- a/loader.h +++ b/loader.h @@ -8,10 +8,14 @@ #include #include "game_data.h" -struct tbAlien +struct tbHeader +{ + int id; + QString name; +}; + +struct tbAlien : tbHeader { - int id; - QString name; float speed; float health; float armor; @@ -22,17 +26,15 @@ struct tbAlien unsigned int prise; }; -struct tbSplash +struct tbSplash : tbHeader { - int id; - QString name; float speed; unsigned int lifetime; bool autoControl; int imgType; }; -struct tbTrigger +struct tbTrigger : tbHeader { enum triggerType { @@ -48,8 +50,6 @@ struct tbTrigger allSide, nearlestAlien }; - int id; - QString name; float damage; float radius; int chance; @@ -61,10 +61,8 @@ struct tbTrigger float randomPosRadius; }; -struct tbTower +struct tbTower : tbHeader { - int id; - QString name; float radius; unsigned int cost; unsigned int reload; @@ -124,10 +122,8 @@ struct tbWaveOnLevel int waveId; }; -struct tbMap +struct tbMap : tbHeader { - int id; - QString name; unsigned int maxPlayers; //QVector < QVector > cells; QByteArray data; @@ -142,10 +138,8 @@ struct tbTowerOnLevel //int enableWaveId; }; -struct tbLevel +struct tbLevel : tbHeader { - int id; - QString name; int mapId; unsigned int score; };