finished ADeditor for triggers
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user