tools/MissionsEditor/editor.cpp
changeset 2596 41b46f83d088
parent 2594 0047e16dbacb
equal deleted inserted replaced
2595:d57af3defd56 2596:41b46f83d088
     5 
     5 
     6 editor::editor(QWidget *parent)
     6 editor::editor(QWidget *parent)
     7     : QMainWindow(parent), ui(new Ui::editor)
     7     : QMainWindow(parent), ui(new Ui::editor)
     8 {
     8 {
     9     ui->setupUi(this);
     9     ui->setupUi(this);
       
    10 
       
    11     reset();
    10 
    12 
    11     cbFlags
    13     cbFlags
    12         << ui->cbForts
    14         << ui->cbForts
    13         << ui->cbMultiWeapon
    15         << ui->cbMultiWeapon
    14         << ui->cbSolidLand
    16         << ui->cbSolidLand
    26 }
    28 }
    27 
    29 
    28 editor::~editor()
    30 editor::~editor()
    29 {
    31 {
    30     delete ui;
    32     delete ui;
       
    33 }
       
    34 
       
    35 void editor::reset()
       
    36 {
       
    37     for(int i = 0; i < 6; ++i)
       
    38     {
       
    39         ui->twTeams->setTabEnabled(i, false);
       
    40         ui->twTeams->widget(i)->setEnabled(false);
       
    41     }
    31 }
    42 }
    32 
    43 
    33 void editor::on_actionLoad_triggered()
    44 void editor::on_actionLoad_triggered()
    34 {
    45 {
    35     QString fileName = QFileDialog::getOpenFileName(this, QString(), QString(), "Missions (*.txt)");
    46     QString fileName = QFileDialog::getOpenFileName(this, QString(), QString(), "Missions (*.txt)");
    84         }
    95         }
    85         else
    96         else
    86         if (line.startsWith("addteam") && (currTeam < 5))
    97         if (line.startsWith("addteam") && (currTeam < 5))
    87         {
    98         {
    88             ++currTeam;
    99             ++currTeam;
       
   100             ui->twTeams->setTabEnabled(currTeam, true);
       
   101             ui->twTeams->widget(currTeam)->setEnabled(true);
       
   102 
    89             line = line.mid(8);
   103             line = line.mid(8);
    90             int spacePos = line.indexOf('\x20');
   104             int spacePos = line.indexOf('\x20');
    91             quint32 teamColor = line.left(spacePos).toUInt();
   105             quint32 teamColor = line.left(spacePos).toUInt();
    92             QString teamName = line.mid(spacePos + 1);
   106             QString teamName = line.mid(spacePos + 1);
    93 
   107 
    94             TeamEdit * te = qobject_cast<TeamEdit *>(ui->twTeams->widget(currTeam));
   108             TeamEdit * te = qobject_cast<TeamEdit *>(ui->twTeams->widget(currTeam));
    95             te->addTeam(teamName, teamColor);
   109             te->setTeam(teamName, teamColor);
       
   110         }
       
   111         else
       
   112         if (line.startsWith("addhh") && (currTeam >= 0))
       
   113         {
       
   114             line = line.mid(6);
       
   115             quint32 level = line.left(1).toUInt();
       
   116             line = line.mid(2);
       
   117             int spacePos = line.indexOf('\x20');
       
   118             quint32 health = line.left(spacePos).toUInt();
       
   119             QString hhName = line.mid(spacePos + 1);
       
   120 
       
   121             TeamEdit * te = qobject_cast<TeamEdit *>(ui->twTeams->widget(currTeam));
       
   122             te->addHedgehog(level, health, hhName);
    96         }
   123         }
    97         else
   124         else
    98         if (line.startsWith("fort") && (currTeam >= 0))
   125         if (line.startsWith("fort") && (currTeam >= 0))
    99         {
   126         {
   100             TeamEdit * te = qobject_cast<TeamEdit *>(ui->twTeams->widget(currTeam));
   127             TeamEdit * te = qobject_cast<TeamEdit *>(ui->twTeams->widget(currTeam));
   101             te->setFort(line.mid(5));
   128             te->setFort(line.mid(5));
       
   129         }
       
   130         else
       
   131         if (line.startsWith("hat") && (currTeam >= 0))
       
   132         {
       
   133             TeamEdit * te = qobject_cast<TeamEdit *>(ui->twTeams->widget(currTeam));
       
   134             te->setLastHHHat(line.mid(4));
       
   135         }
       
   136         else
       
   137         if (line.startsWith("hhcoords") && (currTeam >= 0))
       
   138         {
       
   139             line = line.mid(9);
       
   140             int spacePos = line.indexOf('\x20');
       
   141             int x = line.left(spacePos).toUInt();
       
   142             int y = line.mid(spacePos + 1).toInt();
       
   143 
       
   144             TeamEdit * te = qobject_cast<TeamEdit *>(ui->twTeams->widget(currTeam));
       
   145             te->setLastHHCoords(x, y);
   102         }
   146         }
   103         else
   147         else
   104         if (line.startsWith("grave") && (currTeam >= 0))
   148         if (line.startsWith("grave") && (currTeam >= 0))
   105         {
   149         {
   106             TeamEdit * te = qobject_cast<TeamEdit *>(ui->twTeams->widget(currTeam));
   150             TeamEdit * te = qobject_cast<TeamEdit *>(ui->twTeams->widget(currTeam));