diff --git a/ADeditor/ADeditor.pro b/ADeditor/ADeditor.pro
index c4aae1a..d2730e5 100644
--- a/ADeditor/ADeditor.pro
+++ b/ADeditor/ADeditor.pro
@@ -2,28 +2,29 @@
# Project created by QtCreator 2010-08-22T13:42:02
# -------------------------------------------------
QT += xml \
- xmlpatterns
+ xmlpatterns
TARGET = ADeditor
TEMPLATE = app
SOURCES += main.cpp \
- mainwindow.cpp \
- ../loader.cpp \
- alienmodel.cpp \
- towermodel.cpp \
- splashmodel.cpp \
- ../map.cpp \
- ../game_data.cpp \
+ mainwindow.cpp \
+ ../loader.cpp \
+ alienmodel.cpp \
+ towermodel.cpp \
+ splashmodel.cpp \
+ ../map.cpp \
+ ../game_data.cpp \
triggermodel.cpp
HEADERS += mainwindow.h \
- ../loader.h \
- alienmodel.h \
- towermodel.h \
- splashmodel.h \
- ../base_types.h \
- ../map.h \
- ../game_data.h \
+ ../loader.h \
+ alienmodel.h \
+ towermodel.h \
+ splashmodel.h \
+ ../base_types.h \
+ ../map.h \
+ ../game_data.h \
triggermodel.h
FORMS += mainwindow.ui
TRANSLATIONS += adeditor_ru.ts
-
RESOURCES += ADeditor.qrc
+OTHER_FILES += ../schema.xml \
+ ../data2.xml
diff --git a/ADeditor/ADeditor.pro.user b/ADeditor/ADeditor.pro.user
index ed2d659..86b2921 100644
--- a/ADeditor/ADeditor.pro.user
+++ b/ADeditor/ADeditor.pro.user
@@ -1,113 +1,283 @@
- ProjectExplorer.Project.ActiveTarget
+ 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
0
- ProjectExplorer.Project.EditorSettings
+ activebuildconfiguration
+ Debug
+
+
+ buildConfiguration-Debug
- System
+ Debug
+ 0
+ 0
+
+ 2
- ProjectExplorer.Project.Target.0
+ buildConfiguration-Release
- Настольный компьютер
- 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/build-ADeditor
- 9
- 2
- true
-
-
-
- qmake
- QtProjectManager.QMakeBuildStep
-
-
-
- Сборка
- Qt4ProjectManager.MakeStep
- false
-
-
-
- 2
-
- Сборка
- Qt4ProjectManager.MakeStep
- true
-
- clean
-
-
-
- 1
- false
-
- Релиз
- Qt4ProjectManager.Qt4BuildConfiguration
- 0
- C:/Users/Andrey/Desktop/aliendefender/ADeditor-build-desktop
- 9
- 2
- true
-
- 2
-
- ADeditor
- Qt4ProjectManager.Qt4RunConfiguration
- 2
-
- ADeditor.pro
- false
- false
-
- false
- true
- C:\Users\Andrey\Desktop\aliendefender
-
- 1
+ Release
+ 0
+
+ 0
- ProjectExplorer.Project.TargetCount
- 1
+ buildconfiguration-Debug-buildstep0
+
+ Debug
+
+ DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-7vJZaf9AwI,guid=f26a2301f932cefdec6dd3bc4c79669f
+ 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-U899U4
+ 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/1236,unix/buull-eeePC:/tmp/.ICE-unix/1236
+ SHELL=/bin/bash
+ SPEECHD_PORT=6561
+ SSH_AGENT_PID=1270
+ SSH_AUTH_SOCK=/tmp/keyring-U899U4/ssh
+ USER=andrey
+ USERNAME=andrey
+ XAUTHORITY=/var/run/gdm/auth-for-andrey-6T6AjI/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-1283024543.354844-1194058895
+
+
+ /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.Updater.FileVersion
- 4
+ buildconfiguration-Debug-buildstep1
+
+ Debug
+
+ DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-7vJZaf9AwI,guid=f26a2301f932cefdec6dd3bc4c79669f
+ 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-U899U4
+ 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/1236,unix/buull-eeePC:/tmp/.ICE-unix/1236
+ SHELL=/bin/bash
+ SPEECHD_PORT=6561
+ SSH_AGENT_PID=1270
+ SSH_AUTH_SOCK=/tmp/keyring-U899U4/ssh
+ USER=andrey
+ USERNAME=andrey
+ XAUTHORITY=/var/run/gdm/auth-for-andrey-6T6AjI/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-1283024543.354844-1194058895
+
+ false
+
+ -w
+
+ /usr/bin/make
+ true
+ /home/andrey/AD/aliendefender/ADeditor
+
+
+
+ buildconfiguration-Debug-cleanstep0
+
+ Debug
+
+ DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-7vJZaf9AwI,guid=f26a2301f932cefdec6dd3bc4c79669f
+ 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-U899U4
+ 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/1236,unix/buull-eeePC:/tmp/.ICE-unix/1236
+ SHELL=/bin/bash
+ SPEECHD_PORT=6561
+ SSH_AGENT_PID=1270
+ SSH_AUTH_SOCK=/tmp/keyring-U899U4/ssh
+ USER=andrey
+ USERNAME=andrey
+ XAUTHORITY=/var/run/gdm/auth-for-andrey-6T6AjI/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-1283024543.354844-1194058895
+
+ 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
+
diff --git a/ADeditor/data2.xml b/ADeditor/data2.xml
deleted file mode 100644
index 038e3a3..0000000
--- a/ADeditor/data2.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ADeditor/mainwindow.cpp b/ADeditor/mainwindow.cpp
index 716fdc7..ae3ce67 100644
--- a/ADeditor/mainwindow.cpp
+++ b/ADeditor/mainwindow.cpp
@@ -24,14 +24,22 @@ MainWindow::MainWindow(QWidget *parent) :
twModel = new TowerModel(adloader->towers.values());
ui->lvTowers->setModel((QAbstractItemModel * )twModel);
+ ui->cbTwSplash->setModel((QAbstractItemModel * )splModel);
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::ClearAndSelect);
- ui->cbTwSplash->setModel((QAbstractItemModel * )splModel);
trigModel = new TriggerModel(adloader->triggers.values());
ui->lvTriggers->setModel((QAbstractItemModel * )trigModel);
connect(ui->lvTriggers->selectionModel(),SIGNAL(currentChanged(QModelIndex, QModelIndex)),this,SLOT(lvTriggers_select(QModelIndex,QModelIndex)));
ui->lvTriggers->selectionModel()->setCurrentIndex(ui->lvTriggers->model()->index(0,0),QItemSelectionModel::ClearAndSelect);
+ ui->cbTrigChildAim->addItem(tr("no aim"),QVariant(srcTriggerType::noAim));
+ ui->cbTrigChildAim->addItem(tr("random side"),QVariant(srcTriggerType::allSide));
+ ui->cbTrigChildAim->addItem(tr("parent aim"),QVariant(srcTriggerType::parentAim));
+ ui->cbTrigChildAim->addItem(tr("nearlest alien"),QVariant(srcTriggerType::nearlestAlien));
+ ui->cbTrigType->addItem(tr("on destination"),QVariant(srcTriggerType::onDestination));
+ ui->cbTrigType->addItem(tr("on alien in radius"),QVariant(srcTriggerType::onAlienInRadius));
+ ui->cbTrigType->addItem(tr("on timer"),QVariant(srcTriggerType::onTimer));
+ isSaved = true;
}
@@ -60,6 +68,7 @@ void MainWindow::on_cbAlArmor_toggled(bool checked)
ui->sbAlArmor->setEnabled(checked);
if (checked) adloader->aliens[id].armor = ui->sbAlArmor->value();
else adloader->aliens[id].armor = 0;
+ isSaved = false;
}
@@ -69,6 +78,7 @@ void MainWindow::on_cbAlRegeneration_toggled(bool checked)
ui->sbAlregeneration->setEnabled(checked);
if (checked) adloader->aliens[id].regeneration = ui->sbAlregeneration->value();
else adloader->aliens[id].regeneration = 0;
+ isSaved = false;
}
@@ -96,8 +106,20 @@ void MainWindow::lvTowers_select(QModelIndex index, QModelIndex)
ui->sbTwBuildTime->setValue(tw.buildTime);
ui->sbTwCost->setValue(tw.cost);
ui->sbTwExpByDam->setValue(tw.expByDamage);
+ if (tw.expByDamage > 0)
+ ui->cbTwExpByDam->setChecked(true);
+ else
+ ui->cbTwExpByDam->setChecked(false);
ui->sbTwExpByKill->setValue(tw.expByKill);
+ if (tw.expByKill > 0)
+ ui->cbTwExpByKill->setChecked(true);
+ else
+ ui->cbTwExpByKill->setChecked(false);
ui->sbTwExpByShot->setValue(tw.expByShot);
+ if (tw.expByShot > 0)
+ ui->cbTwExpByShot->setChecked(true);
+ else
+ ui->cbTwExpByShot->setChecked(false);
ui->leTwName->setText(tw.name);
ui->sbTwRadius->setValue(tw.radius);
ui->sbTwReload->setValue(tw.reload);
@@ -119,36 +141,91 @@ void MainWindow::lvTriggers_select(QModelIndex index, QModelIndex)
{
tbTrigger trig = adloader->triggers.values().at(index.row());
ui->sbTrigCount->setValue(trig.count);
+ if (trig.count > 0)
+ ui->cbTrigCount->setChecked(true);
+ else
+ ui->cbTrigCount->setChecked(false);
ui->sbTrigDamage->setValue(trig.damage);
+ if (trig.damage > 0)
+ ui->cbTrigDamage->setChecked(true);
+ else
+ ui->cbTrigDamage->setChecked(false);
ui->sbTrigDamRadius->setValue(trig.radius);
+ if (trig.radius > 0)
+ ui->cbTrigDamRad->setChecked(true);
+ else
+ ui->cbTrigDamRad->setChecked(false);
ui->sbTrigChance->setValue(trig.chance);
if (trig.chance == 100)
ui->cbTrigChance->setChecked(false);
else
ui->cbTrigChance->setChecked(true);
ui->sbTrigRandomRadius->setValue(trig.randomPosRadius);
+ if (trig.randomPosRadius > 0)
+ ui->cbTrigRandRadius->setChecked(true);
+ else
+ ui->cbTrigRandRadius->setChecked(false);
ui->sbTrigTimer->setValue(trig.timer);
+ switch (trig.type)
+ {
+ case srcTriggerType::onDestination :
+ ui->cbTrigType->setCurrentIndex(0);
+ break;
+ case srcTriggerType::onAlienInRadius :
+ ui->cbTrigType->setCurrentIndex(1);
+ break;
+ case srcTriggerType::onTimer :
+ ui->cbTrigType->setCurrentIndex(2);
+ break;
+ }
+ if (trig.type != srcTriggerType::onTimer)
+ {
+ ui->lbTrigTimer->setVisible(false);
+ ui->sbTrigTimer->setVisible(false);
+ } else {
+ ui->lbTrigTimer->setVisible(true);
+ ui->sbTrigTimer->setVisible(true);
+ }
+ switch (trig.childAim)
+ {
+ case srcTriggerType::noAim :
+ ui->cbTrigChildAim->setCurrentIndex(0);
+ break;
+ case srcTriggerType::allSide :
+ ui->cbTrigChildAim->setCurrentIndex(1);
+ break;
+ case srcTriggerType::parentAim :
+ ui->cbTrigChildAim->setCurrentIndex(2);
+ break;
+ case srcTriggerType::nearlestAlien :
+ ui->cbTrigChildAim->setCurrentIndex(3);
+ break;
+ }
ui->leTrigName->setText(trig.name);
}
void MainWindow::closeEvent(QCloseEvent *event)
{
- QMessageBox msgBox;
- msgBox.setText(tr("Save changes?"));
- msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel);
- msgBox.setDefaultButton(QMessageBox::Save);
- int ret = msgBox.exec();
- switch (ret)
+ if (!isSaved)
{
- case QMessageBox::Save :
- adloader->save("data2.xml");
- event->accept();
- break;
- case QMessageBox::Cancel :
- event->ignore();
- break;
- default:
+ QMessageBox msgBox;
+ msgBox.setText(tr("Save changes?"));
+ msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel);
+ msgBox.setDefaultButton(QMessageBox::Save);
+ msgBox.setEscapeButton(QMessageBox::Discard);
+ int ret = msgBox.exec();
+ switch (ret)
+ {
+ case QMessageBox::Save :
+ adloader->save("data2.xml");
+ event->accept();
+ break;
+ case QMessageBox::Cancel :
+ event->ignore();
+ break;
+ }
+ } else {
event->accept();
}
}
@@ -158,6 +235,7 @@ void MainWindow::on_pbSave_clicked()
adloader->save("data2.xml");
adloader->load("data2.xml");
adloader->save("data2.xml");
+ isSaved = true;
}
@@ -175,12 +253,21 @@ void MainWindow::on_pbReload_clicked()
alModel->refresh(adloader->aliens.values());
twModel->refresh(adloader->towers.values());
splModel->refresh(adloader->splashes.values());
+ trigModel->refresh(adloader->triggers.values());
+ ui->lvAliens->setModel(alModel);
ui->lvAliens->reset();
ui->lvAliens->selectionModel()->setCurrentIndex(ui->lvAliens->model()->index(0,0),QItemSelectionModel::ClearAndSelect);
- ui->lvTowers->reset();
- ui->lvTowers->selectionModel()->setCurrentIndex(ui->lvTowers->model()->index(0,0),QItemSelectionModel::ClearAndSelect);
+ ui->lvSplashes->setModel(splModel);
ui->lvSplashes->reset();
ui->lvSplashes->selectionModel()->setCurrentIndex(ui->lvSplashes->model()->index(0,0),QItemSelectionModel::ClearAndSelect);
+ ui->lvTowers->setModel(twModel);
+ ui->cbTwSplash->setModel(splModel);
+ ui->lvTowers->reset();
+ ui->lvTowers->selectionModel()->setCurrentIndex(ui->lvTowers->model()->index(0,0),QItemSelectionModel::ClearAndSelect);
+ ui->lvTriggers->setModel(trigModel);
+ ui->lvTriggers->reset();
+ ui->lvTriggers->selectionModel()->setCurrentIndex(ui->lvTriggers->model()->index(0,0),QItemSelectionModel::ClearAndSelect);
+ isSaved = true;
}
}
@@ -189,6 +276,7 @@ void MainWindow::on_sbAlHealth_valueChanged(double value)
{
int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id;
adloader->aliens[id].health = value;
+ isSaved = false;
}
@@ -196,6 +284,7 @@ void MainWindow::on_sbAlArmor_valueChanged(double value)
{
int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id;
adloader->aliens[id].armor = value;
+ isSaved = false;
}
@@ -203,6 +292,7 @@ void MainWindow::on_sbAlregeneration_valueChanged(double value)
{
int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id;
adloader->aliens[id].regeneration = value;
+ isSaved = false;
}
@@ -210,6 +300,7 @@ void MainWindow::on_sbAlSpeed_valueChanged(double value)
{
int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id;
adloader->aliens[id].speed = value;
+ isSaved = false;
}
@@ -217,6 +308,7 @@ void MainWindow::on_sbAlPrise_valueChanged(int val)
{
int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id;
adloader->aliens[id].prise = val;
+ isSaved = false;
}
@@ -224,13 +316,15 @@ void MainWindow::on_sbAlScore_valueChanged(int val)
{
int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id;
adloader->aliens[id].score = val;
+ isSaved = false;
}
-void MainWindow::on_cbAlIsFly_clicked(bool checked)
+void MainWindow::on_cbAlIsFly_toggled(bool checked)
{
int id = adloader->aliens.values().at(ui->lvAliens->currentIndex().row()).id;
adloader->aliens[id].isFlying = checked;
+ isSaved = false;
}
@@ -240,7 +334,7 @@ void MainWindow::on_leAlName_editingFinished()
adloader->aliens[id].name = ui->leAlName->text();
alModel->refresh(adloader->aliens.values());
ui->lvAliens->setModel((QAbstractItemModel * )alModel);
- ui->lvAliens->repaint();
+ isSaved = false;
}
@@ -261,6 +355,7 @@ void MainWindow::on_pbAlAdd_clicked()
ui->lvAliens->setModel((QAbstractItemModel * )alModel);
ui->lvAliens->reset();
ui->lvAliens->selectionModel()->setCurrentIndex(ui->lvAliens->model()->index(index,0),QItemSelectionModel::ClearAndSelect);
+ isSaved = false;
}
@@ -281,6 +376,7 @@ void MainWindow::on_pbAlDel_clicked()
ui->lvAliens->setModel((QAbstractItemModel * )alModel);
ui->lvAliens->reset();
ui->lvAliens->selectionModel()->setCurrentIndex(ui->lvAliens->model()->index(0,0),QItemSelectionModel::ClearAndSelect);
+ isSaved = false;
}
}
@@ -291,6 +387,7 @@ void MainWindow::on_leTwName_editingFinished()
adloader->towers[id].name = ui->leTwName->text();
twModel->refresh(adloader->towers.values());
ui->lvTowers->setModel((QAbstractItemModel * )twModel);
+ isSaved = false;
}
@@ -298,6 +395,7 @@ void MainWindow::on_sbTwBuildTime_valueChanged(int val)
{
int id = adloader->towers.values().at(ui->lvTowers->currentIndex().row()).id;
adloader->towers[id].buildTime = val;
+ isSaved = false;
}
@@ -305,19 +403,25 @@ void MainWindow::on_sbTwCost_valueChanged(int val)
{
int id = adloader->towers.values().at(ui->lvTowers->currentIndex().row()).id;
adloader->towers[id].cost = val;
+ isSaved = false;
}
void MainWindow::on_cbTwSplash_currentIndexChanged(int index)
{
- int id = adloader->towers.values().at(ui->lvTowers->currentIndex().row()).id;
- adloader->towers[id].splashId = adloader->splashes.values().at(index).id;
+ if (index > 0)
+ {
+ int id = adloader->towers.values().at(ui->lvTowers->currentIndex().row()).id;
+ adloader->towers[id].splashId = adloader->splashes.values().at(index).id;
+ isSaved = false;
+ }
}
void MainWindow::on_sbTwReload_valueChanged(int val)
{
int id = adloader->towers.values().at(ui->lvTowers->currentIndex().row()).id;
adloader->towers[id].reload = val;
+ isSaved = false;
}
@@ -325,6 +429,7 @@ void MainWindow::on_sbTwRadius_valueChanged(double val)
{
int id = adloader->towers.values().at(ui->lvTowers->currentIndex().row()).id;
adloader->towers[id].radius = val;
+ isSaved = false;
}
@@ -332,6 +437,17 @@ void MainWindow::on_sbTwExpByShot_valueChanged(double val)
{
int id = adloader->towers.values().at(ui->lvTowers->currentIndex().row()).id;
adloader->towers[id].expByShot = val;
+ isSaved = false;
+}
+
+
+void MainWindow::on_cbTwExpByShot_toggled(bool checked)
+{
+ int id = adloader->towers.values().at(ui->lvTowers->currentIndex().row()).id;
+ ui->sbTwExpByShot->setEnabled(checked);
+ if (checked) adloader->towers[id].expByShot = ui->sbTwExpByShot->value();
+ else adloader->towers[id].expByShot = 0;
+ isSaved = false;
}
@@ -339,6 +455,17 @@ void MainWindow::on_sbTwExpByDam_valueChanged(double val)
{
int id = adloader->towers.values().at(ui->lvTowers->currentIndex().row()).id;
adloader->towers[id].expByDamage = val;
+ isSaved = false;
+}
+
+
+void MainWindow::on_cbTwExpByDam_toggled(bool checked)
+{
+ int id = adloader->towers.values().at(ui->lvTowers->currentIndex().row()).id;
+ ui->sbTwExpByDam->setEnabled(checked);
+ if (checked) adloader->towers[id].expByDamage = ui->sbTwExpByDam->value();
+ else adloader->towers[id].expByDamage = 0;
+ isSaved = false;
}
@@ -346,6 +473,17 @@ void MainWindow::on_sbTwExpByKill_valueChanged(double val)
{
int id = adloader->towers.values().at(ui->lvTowers->currentIndex().row()).id;
adloader->towers[id].expByKill = val;
+ isSaved = false;
+}
+
+
+void MainWindow::on_cbTwExpByKill_toggled(bool checked)
+{
+ int id = adloader->towers.values().at(ui->lvTowers->currentIndex().row()).id;
+ ui->sbTwExpByKill->setEnabled(checked);
+ if (checked) adloader->towers[id].expByKill = ui->sbTwExpByKill->value();
+ else adloader->towers[id].expByKill = 0;
+ isSaved = false;
}
@@ -367,6 +505,7 @@ void MainWindow::on_pbTwAdd_clicked()
ui->lvTowers->setModel((QAbstractItemModel * )twModel);
ui->lvTowers->reset();
ui->lvTowers->selectionModel()->setCurrentIndex(ui->lvTowers->model()->index(index,0),QItemSelectionModel::ClearAndSelect);
+ isSaved = false;
}
@@ -387,6 +526,7 @@ void MainWindow::on_pbTwDel_clicked()
ui->lvTowers->setModel((QAbstractItemModel * )twModel);
ui->lvTowers->reset();
ui->lvTowers->selectionModel()->setCurrentIndex(ui->lvTowers->model()->index(0,0),QItemSelectionModel::ClearAndSelect);
+ isSaved = false;
}
}
@@ -397,6 +537,7 @@ void MainWindow::on_leSplName_editingFinished()
splModel->refresh(adloader->splashes.values());
ui->lvSplashes->setModel((QAbstractItemModel * )splModel);
ui->cbTwSplash->setModel((QAbstractItemModel * )splModel);
+ isSaved = false;
}
@@ -404,6 +545,7 @@ void MainWindow::on_sbSplSpeed_valueChanged(double val)
{
int id = adloader->splashes.values().at(ui->lvSplashes->currentIndex().row()).id;
adloader->splashes[id].speed = val;
+ isSaved = false;
}
@@ -411,6 +553,7 @@ void MainWindow::on_cbSplAutoControl_toggled(bool checked)
{
int id = adloader->splashes.values().at(ui->lvSplashes->currentIndex().row()).id;
adloader->splashes[id].autoControl = checked;
+ isSaved = false;
}
@@ -418,6 +561,7 @@ void MainWindow::on_sbSplLifeTime_valueChanged(int val)
{
int id = adloader->splashes.values().at(ui->lvSplashes->currentIndex().row()).id;
adloader->splashes[id].lifetime = val;
+ isSaved = false;
}
@@ -437,6 +581,7 @@ void MainWindow::on_pbSplAdd_clicked()
ui->lvSplashes->reset();
ui->lvSplashes->selectionModel()->setCurrentIndex(ui->lvSplashes->model()->index(index,0),QItemSelectionModel::ClearAndSelect);
ui->cbTwSplash->setModel((QAbstractItemModel * )splModel);
+ isSaved = false;
}
@@ -469,11 +614,12 @@ void MainWindow::on_pbSlpDel_clicked()
ui->lvSplashes->reset();
ui->lvSplashes->selectionModel()->setCurrentIndex(ui->lvSplashes->model()->index(0,0),QItemSelectionModel::ClearAndSelect);
ui->cbTwSplash->setModel((QAbstractItemModel * )splModel);
+ isSaved = false;
}
}
-void MainWindow::on_pushButton_clicked()
+void MainWindow::on_pbTwSplashEdit_clicked()
{
int splIndex = adloader->splashes.keys().indexOf(adloader->towers.values().at(ui->lvTowers->currentIndex().row()).splashId);
ui->lvSplashes->selectionModel()->setCurrentIndex(ui->lvSplashes->model()->index(splIndex,0),QItemSelectionModel::ClearAndSelect);
@@ -481,10 +627,189 @@ void MainWindow::on_pushButton_clicked()
}
-void MainWindow::on_cbTrigChance_clicked(bool checked)
+void MainWindow::on_cbTrigChance_toggled(bool checked)
{
int id = adloader->triggers.values().at(ui->lvTriggers->currentIndex().row()).id;
ui->sbTrigChance->setEnabled(checked);
if (checked) adloader->triggers[id].chance = ui->sbTrigChance->value();
else adloader->triggers[id].chance = 100;
+ isSaved = false;
+}
+
+
+void MainWindow::on_sbTrigChance_valueChanged(int val)
+{
+ int id = adloader->triggers.values().at(ui->lvTriggers->currentIndex().row()).id;
+ adloader->triggers[id].chance = val;
+ isSaved = false;
+}
+
+
+void MainWindow::on_leTrigName_editingFinished()
+{
+ int id = adloader->triggers.values().at(ui->lvTriggers->currentIndex().row()).id;
+ adloader->triggers[id].name = ui->leTrigName->text();
+ trigModel->refresh(adloader->triggers.values());
+ ui->lvTriggers->setModel((QAbstractItemModel * )trigModel);
+ isSaved = false;
+}
+
+
+void MainWindow::on_sbTrigCount_valueChanged(int val)
+{
+ int id = adloader->triggers.values().at(ui->lvTriggers->currentIndex().row()).id;
+ adloader->triggers[id].count = val;
+ isSaved = false;
+}
+
+
+void MainWindow::on_sbTrigRandomRadius_valueChanged(double value)
+{
+ int id = adloader->triggers.values().at(ui->lvTriggers->currentIndex().row()).id;
+ adloader->triggers[id].randomPosRadius = value;
+ isSaved = false;
+}
+
+
+void MainWindow::on_cbTrigDelPar_toggled(bool checked)
+{
+ int id = adloader->triggers.values().at(ui->lvTriggers->currentIndex().row()).id;
+ adloader->triggers[id].delParent = checked;
+ isSaved = false;
+}
+
+
+void MainWindow::on_sbTrigTimer_valueChanged(int val)
+{
+ int id = adloader->triggers.values().at(ui->lvTriggers->currentIndex().row()).id;
+ adloader->triggers[id].timer = val;
+ isSaved = false;
+}
+
+
+void MainWindow::on_sbTrigDamage_valueChanged(double value)
+{
+ int id = adloader->triggers.values().at(ui->lvTriggers->currentIndex().row()).id;
+ adloader->triggers[id].damage = value;
+ isSaved = false;
+}
+
+
+void MainWindow::on_sbTrigDamRadius_valueChanged(double value)
+{
+ int id = adloader->triggers.values().at(ui->lvTriggers->currentIndex().row()).id;
+ adloader->triggers[id].radius = value;
+ isSaved = false;
+}
+
+
+void MainWindow::on_cbTrigDamRad_toggled(bool checked)
+{
+ int id = adloader->triggers.values().at(ui->lvTriggers->currentIndex().row()).id;
+ ui->sbTrigDamRadius->setEnabled(checked);
+ if (checked) adloader->triggers[id].radius = ui->sbTrigDamRadius->value();
+ else adloader->triggers[id].radius = 0;
+ isSaved = false;
+}
+
+
+void MainWindow::on_cbTrigDamage_toggled(bool checked)
+{
+ int id = adloader->triggers.values().at(ui->lvTriggers->currentIndex().row()).id;
+ ui->sbTrigDamage->setEnabled(checked);
+ if (checked) adloader->triggers[id].damage = ui->sbTrigDamage->value();
+ else adloader->triggers[id].damage = 0;
+ isSaved = false;
+}
+
+
+void MainWindow::on_cbTrigRandRadius_toggled(bool checked)
+{
+ int id = adloader->triggers.values().at(ui->lvTriggers->currentIndex().row()).id;
+ ui->sbTrigRandomRadius->setEnabled(checked);
+ if (checked) adloader->triggers[id].randomPosRadius = ui->sbTrigRandomRadius->value();
+ else adloader->triggers[id].randomPosRadius = 0;
+ isSaved = false;
+}
+
+
+void MainWindow::on_cbTrigCount_toggled(bool checked)
+{
+ int id = adloader->triggers.values().at(ui->lvTriggers->currentIndex().row()).id;
+ ui->sbTrigCount->setEnabled(checked);
+ if (checked) adloader->triggers[id].count = ui->sbTrigCount->value();
+ else adloader->triggers[id].count = 0;
+ isSaved = false;
+}
+
+
+void MainWindow::on_pbTrigAdd_clicked()
+{
+ int i = 1;
+ while (adloader->triggers.contains(i)) i++;
+ tbTrigger trig;
+ trig.id = i;
+ trig.name = tr("Trigger");
+ trig.count = 0;
+ trig.damage = 0;
+ trig.radius = 0;
+ trig.timer = 10;
+ trig.chance = 100;
+ trig.delParent =true ;
+ trig.childAim = srcTriggerType::noAim;
+ trig.randomPosRadius = 0;
+ trig.type = srcTriggerType::onDestination;
+ adloader->triggers.insert(trig.id,trig);
+ int index = adloader->triggers.keys().indexOf(i);
+ trigModel->refresh(adloader->triggers.values());
+ ui->lvTriggers->setModel((QAbstractItemModel * )trigModel);
+ ui->lvTriggers->reset();
+ ui->lvTriggers->selectionModel()->setCurrentIndex(ui->lvTriggers->model()->index(index,0),QItemSelectionModel::ClearAndSelect);
+ isSaved = false;
+}
+
+
+void MainWindow::on_pbTrigDel_clicked()
+{
+ if (adloader->triggers.size() < 2) return;
+ QMessageBox msgBox;
+ int id = adloader->triggers.keys().at(ui->lvTriggers->currentIndex().row());
+ msgBox.setText(tr("Delete trigger %1 id=%2").arg(adloader->triggers.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->triggers.remove(id);
+ trigModel->refresh(adloader->triggers.values());
+ ui->lvTriggers->setModel((QAbstractItemModel * )trigModel);
+ ui->lvTriggers->reset();
+ ui->lvTriggers->selectionModel()->setCurrentIndex(ui->lvTriggers->model()->index(0,0),QItemSelectionModel::ClearAndSelect);
+ isSaved = false;
+ }
+}
+
+
+void MainWindow::on_cbTrigType_currentIndexChanged(int index)
+{
+ int id = adloader->triggers.values().at(ui->lvTriggers->currentIndex().row()).id;
+ adloader->triggers[id].type = (srcTriggerType::triggerType)ui->cbTrigType->itemData(index).toInt();
+ if (adloader->triggers[id].type != srcTriggerType::onTimer)
+ {
+ ui->lbTrigTimer->setVisible(false);
+ ui->sbTrigTimer->setVisible(false);
+ } else {
+ ui->lbTrigTimer->setVisible(true);
+ ui->sbTrigTimer->setVisible(true);
+ }
+ isSaved = false;
+}
+
+
+void MainWindow::on_cbTrigChildAim_currentIndexChanged(int index)
+{
+ int id = adloader->triggers.values().at(ui->lvTriggers->currentIndex().row()).id;
+ adloader->triggers[id].childAim = (srcTriggerType::aimType)ui->cbTrigChildAim->itemData(index).toInt();
+ isSaved = false;
}
diff --git a/ADeditor/mainwindow.h b/ADeditor/mainwindow.h
index f1644bb..e069d73 100644
--- a/ADeditor/mainwindow.h
+++ b/ADeditor/mainwindow.h
@@ -32,11 +32,33 @@ private:
SplashModel * splModel;
TriggerModel* trigModel;
+ bool isSaved;
+
void closeEvent(QCloseEvent *);
private slots:
- void on_cbTrigChance_clicked(bool checked);
- void on_pbReload_clicked();
- void on_pushButton_clicked();
+ void on_cbTrigChildAim_currentIndexChanged(int index);
+ void on_cbTrigType_currentIndexChanged(int index);
+ void on_cbTrigCount_toggled(bool checked);
+ void on_leTrigName_editingFinished();
+ void on_pbTwSplashEdit_clicked();
+ void on_cbTrigDamRad_toggled(bool checked);
+ void on_cbTrigDamage_toggled(bool checked);
+ void on_cbTrigDelPar_toggled(bool checked);
+ void on_cbTrigChance_toggled(bool checked);
+ void on_cbTrigRandRadius_toggled(bool checked);
+ void on_cbTwExpByKill_toggled(bool checked);
+ void on_cbTwExpByDam_toggled(bool checked);
+ void on_cbTwExpByShot_toggled(bool checked);
+ void on_cbAlIsFly_toggled(bool checked);
+ void on_pbTrigDel_clicked();
+ void on_pbTrigAdd_clicked();
+ void on_sbTrigChance_valueChanged(int );
+ void on_sbTrigDamRadius_valueChanged(double );
+ void on_sbTrigDamage_valueChanged(double );
+ void on_sbTrigTimer_valueChanged(int );
+ void on_sbTrigRandomRadius_valueChanged(double );
+ void on_sbTrigCount_valueChanged(int );
+ void on_pbReload_clicked();
void on_pbSlpDel_clicked();
void on_pbSplAdd_clicked();
void on_sbSplLifeTime_valueChanged(int );
@@ -57,7 +79,6 @@ 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 );
diff --git a/ADeditor/mainwindow.ui b/ADeditor/mainwindow.ui
index 8dffcaf..635189e 100644
--- a/ADeditor/mainwindow.ui
+++ b/ADeditor/mainwindow.ui
@@ -1,1458 +1,1491 @@
-
-
- MainWindow
-
-
-
- 0
- 0
- 598
- 489
-
-
-
- MainWindow
-
-
- QMainWindow::AllowNestedDocks|QMainWindow::AllowTabbedDocks|QMainWindow::AnimatedDocks|QMainWindow::ForceTabbedDocks
-
-
-
-
- 2
-
-
- 2
-
- -
-
-
- 3
-
-
-
- Aliens
-
-
-
-
-
-
- QAbstractItemView::AllEditTriggers
-
-
-
- -
-
-
- QFrame::StyledPanel
-
-
- QFrame::Raised
-
-
-
-
-
-
-
-
-
-
- 0
- 0
-
-
-
- Name
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
- Health
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
- 1
-
-
- 0.000000000000000
-
-
- 999999999.000000000000000
-
-
- 10.000000000000000
-
-
- 99.000000000000000
-
-
-
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
- Armor
-
-
-
- -
-
-
- false
-
-
- 999999999.000000000000000
-
-
-
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
- Regeneration
-
-
-
- -
-
-
- false
-
-
- 1
-
-
- 999999999.000000000000000
-
-
- 5.000000000000000
-
-
-
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
- Speed
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
-
-
-
- 5
-
-
- 0.000010000000000
-
-
- 99.000000000000000
-
-
- 0.010000000000000
-
-
- 0.010000000000000
-
-
-
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
- Prize
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
- 0
-
-
- 999999999
-
-
-
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
- Score
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
- 1
-
-
- 999999999
-
-
-
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
- Qt::LeftToRight
-
-
- Is Flying
-
-
-
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
- Image
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
- true
-
-
-
- 0
- 0
-
-
-
-
- 48
- 32
-
-
-
- ...
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
-
-
- -
-
-
- Qt::Vertical
-
-
-
- 20
- 40
-
-
-
-
-
-
-
- -
-
-
- 20
-
-
-
-
-
-
- 0
- 0
-
-
-
- Add
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
- Delete
-
-
-
-
-
-
-
-
-
- Towers
-
-
- -
-
-
- -
-
-
- QFrame::StyledPanel
-
-
- QFrame::Raised
-
-
-
-
-
-
-
-
-
-
- 0
- 0
-
-
-
- Name
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
- Build time
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
- 1
-
-
- 999999999
-
-
- 50
-
-
- 50
-
-
-
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
- Cost
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
- 1
-
-
- 999999999
-
-
-
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
- Splash
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
- true
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
- Edit
-
-
-
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
- Reload
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
- 1
-
-
- 999999999
-
-
-
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
- Radius
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
- 3
-
-
- 1.000000000000000
-
-
- 0.100000000000000
-
-
-
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
- ExpByShot
-
-
-
- -
-
-
- 3
-
-
- 999999999.000000000000000
-
-
-
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
- ExpByDam
-
-
-
- -
-
-
- 3
-
-
- 999999999.000000000000000
-
-
-
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
- ExpByKill
-
-
-
- -
-
-
- 3
-
-
- 999999999.000000000000000
-
-
-
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
- Image
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 40
- 40
-
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
- -
-
-
- true
-
-
-
- 0
- 0
-
-
-
-
- 48
- 32
-
-
-
- ...
-
-
-
-
-
- -
-
-
- Qt::Vertical
-
-
-
- 20
- 40
-
-
-
-
-
-
-
- -
-
-
- 20
-
-
-
-
-
-
- 0
- 0
-
-
-
- Add
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
- Delete
-
-
-
-
-
-
-
-
-
- Splashes
-
-
- -
-
-
- QAbstractItemView::AllEditTriggers
-
-
-
- -
-
-
- true
-
-
-
- 0
- 0
-
-
-
- QFrame::StyledPanel
-
-
- QFrame::Raised
-
-
-
- QLayout::SetDefaultConstraint
-
-
- 5
-
-
- 5
-
-
- 2
-
-
-
-
-
-
-
-
-
- 0
- 0
-
-
-
- Name
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
- Speed
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
-
-
-
- 5
-
-
- 9999.000000000000000
-
-
- 0.001000000000000
-
-
- 0.010000000000000
-
-
-
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
- LifeTime
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
- 1
-
-
- 999999999
-
-
- 1
-
-
-
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
- Qt::LeftToRight
-
-
- AutoControl
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
- Image
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 40
- 40
-
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
- -
-
-
- true
-
-
-
- 0
- 0
-
-
-
-
- 48
- 32
-
-
-
- ...
-
-
-
-
-
- -
-
-
- Qt::Vertical
-
-
-
- 20
- 40
-
-
-
-
-
-
-
- -
-
-
- 20
-
-
-
-
-
-
- 0
- 0
-
-
-
- Add
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
- Delete
-
-
-
-
-
-
-
-
-
- Triggers
-
-
- -
-
-
- -
-
-
- QFrame::StyledPanel
-
-
- QFrame::Raised
-
-
-
-
-
-
-
-
-
-
- 0
- 0
-
-
-
- Name
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
- Count
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
- 1
-
-
- 999999999
-
-
-
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
- Random radius
-
-
-
- -
-
-
- 3
-
-
- 999999999.000000000000000
-
-
-
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
- Chance
-
-
-
- -
-
-
- 1
-
-
- 100
-
-
- 100
-
-
-
-
-
- -
-
-
- Delete parent
-
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
- Child aim
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
- true
-
-
-
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
- Type
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
- true
-
-
-
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
- Timer
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
- 1
-
-
- 999999999
-
-
- 50
-
-
- 50
-
-
-
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
- Damage
-
-
-
- -
-
-
- 3
-
-
- 999999999.000000000000000
-
-
-
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
- Damage radius
-
-
-
- -
-
-
- 3
-
-
- 999999999.000000000000000
-
-
-
-
-
- -
-
-
- Qt::Vertical
-
-
-
- 20
- 40
-
-
-
-
-
-
-
- -
-
-
- 20
-
-
-
-
-
-
- 0
- 0
-
-
-
- Add
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
- Delete
-
-
-
-
-
-
-
-
-
- -
-
-
- Save
-
-
-
- -
-
-
- Cancel
-
-
-
-
-
-
-
-
-
-
+
+
+ MainWindow
+
+
+
+ 0
+ 0
+ 598
+ 497
+
+
+
+ MainWindow
+
+
+ QMainWindow::AllowNestedDocks|QMainWindow::AllowTabbedDocks|QMainWindow::AnimatedDocks|QMainWindow::ForceTabbedDocks
+
+
+
+
+ 2
+
+
+ 2
+
+ -
+
+
+ 3
+
+
+
+ Aliens
+
+
+
-
+
+
+ QAbstractItemView::AllEditTriggers
+
+
+
+ -
+
+
+ QFrame::StyledPanel
+
+
+ QFrame::Raised
+
+
+
-
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Name
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Health
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+ 1
+
+
+ 0.000000000000000
+
+
+ 999999999.000000000000000
+
+
+ 10.000000000000000
+
+
+ 99.000000000000000
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Armor
+
+
+
+ -
+
+
+ false
+
+
+ 999999999.000000000000000
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Regeneration
+
+
+
+ -
+
+
+ false
+
+
+ 1
+
+
+ 999999999.000000000000000
+
+
+ 5.000000000000000
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Speed
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+
+
+
+ 5
+
+
+ 0.000010000000000
+
+
+ 99.000000000000000
+
+
+ 0.010000000000000
+
+
+ 0.010000000000000
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Prize
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+ 0
+
+
+ 999999999
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Score
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+ 1
+
+
+ 999999999
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Qt::LeftToRight
+
+
+ Is Flying
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Image
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+ true
+
+
+
+ 0
+ 0
+
+
+
+
+ 48
+ 32
+
+
+
+ ...
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+
+
+
+ -
+
+
+ 20
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Add
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Delete
+
+
+
+
+
+
+
+
+
+ Towers
+
+
+ -
+
+
+ -
+
+
+ QFrame::StyledPanel
+
+
+ QFrame::Raised
+
+
+
-
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Name
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Build time
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+ 1
+
+
+ 999999999
+
+
+ 50
+
+
+ 50
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Cost
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+ 1
+
+
+ 999999999
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Splash
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+ true
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Edit
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Reload
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+ 1
+
+
+ 999999999
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Radius
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+ 3
+
+
+ 1.000000000000000
+
+
+ 0.100000000000000
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ ExpByShot
+
+
+
+ -
+
+
+ false
+
+
+ 3
+
+
+ 999999999.000000000000000
+
+
+ 0.100000000000000
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ ExpByDam
+
+
+
+ -
+
+
+ false
+
+
+ 3
+
+
+ 999999999.000000000000000
+
+
+ 0.100000000000000
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ ExpByKill
+
+
+
+ -
+
+
+ false
+
+
+ 3
+
+
+ 999999999.000000000000000
+
+
+ 0.100000000000000
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Image
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 40
+ 40
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+ true
+
+
+
+ 0
+ 0
+
+
+
+
+ 48
+ 32
+
+
+
+ ...
+
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+
+
+
+ -
+
+
+ 20
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Add
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Delete
+
+
+
+
+
+
+
+
+
+ Splashes
+
+
+ -
+
+
+ QAbstractItemView::AllEditTriggers
+
+
+
+ -
+
+
+ true
+
+
+
+ 0
+ 0
+
+
+
+ QFrame::StyledPanel
+
+
+ QFrame::Raised
+
+
+
+ QLayout::SetDefaultConstraint
+
+
+ 5
+
+
+ 5
+
+
+ 2
+
+
-
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Name
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Speed
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+
+
+
+ 5
+
+
+ 9999.000000000000000
+
+
+ 0.001000000000000
+
+
+ 0.010000000000000
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ LifeTime
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+ 1
+
+
+ 999999999
+
+
+ 1
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Qt::LeftToRight
+
+
+ AutoControl
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Image
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 40
+ 40
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+ true
+
+
+
+ 0
+ 0
+
+
+
+
+ 48
+ 32
+
+
+
+ ...
+
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+
+
+
+ -
+
+
+ 20
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Add
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Delete
+
+
+
+
+
+
+
+
+
+ Triggers
+
+
+ -
+
+
+ -
+
+
+ QFrame::StyledPanel
+
+
+ QFrame::Raised
+
+
+
-
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Name
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Count
+
+
+
+ -
+
+
+ false
+
+
+ 0
+
+
+ 999999999
+
+
+ 0
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Random radius
+
+
+
+ -
+
+
+ false
+
+
+ 3
+
+
+ 999999999.000000000000000
+
+
+ 0.100000000000000
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Chance
+
+
+
+ -
+
+
+ false
+
+
+ 1
+
+
+ 100
+
+
+ 100
+
+
+
+
+
+ -
+
+
+ Delete parent
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Child aim
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+ true
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Type
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+ true
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Timer
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+ 1
+
+
+ 999999999
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Damage
+
+
+
+ -
+
+
+ false
+
+
+ 3
+
+
+ 999999999.000000000000000
+
+
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Damage radius
+
+
+
+ -
+
+
+ false
+
+
+ 3
+
+
+ 999999999.000000000000000
+
+
+ 0.100000000000000
+
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+
+
+
+ -
+
+
+ 20
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Add
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Delete
+
+
+
+
+
+
+
+
+
+ -
+
+
+ Save
+
+
+
+ -
+
+
+ Cancel
+
+
+
+
+
+
+
+
+
+