From baa647ad7caf95ea2619d8456bcfd0f04a08a719 Mon Sep 17 00:00:00 2001 From: XaviDCR92 Date: Sun, 25 Feb 2018 05:25:33 +0100 Subject: + Added Message module, used for tutorials. + Added first tutorial level. * Font now inserts line feed automatically if the next word is too long to fit. * Gfx.c: added primitive list double buffering in order to gain some performance. * MapEditor: now airport can be defined inside the tool. --- Source/MapEditor/mainwindow.cpp | 43 +++++++++++++++++++++++++++++++++++------ 1 file changed, 37 insertions(+), 6 deletions(-) (limited to 'Source/MapEditor/mainwindow.cpp') diff --git a/Source/MapEditor/mainwindow.cpp b/Source/MapEditor/mainwindow.cpp index ed0bdc9..2da1d1b 100644 --- a/Source/MapEditor/mainwindow.cpp +++ b/Source/MapEditor/mainwindow.cpp @@ -4,6 +4,8 @@ #include #include +#define DEFAULT_AIRPORT_NAME QByteArray("Default Airport\0") + MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow), @@ -11,13 +13,13 @@ MainWindow::MainWindow(QWidget *parent) : selected_item(-1) { ui->setupUi(this); - - ui->centralWidget->setWindowTitle("Airport Map Editor"); + this->setWindowTitle(APP_NAME + " " + APP_VERSION_STRING); connect(ui->LoadMap_Btn, SIGNAL(released()), this, SLOT(onLoadMap())); connect(ui->CreateMap_Btn, SIGNAL(released()), this, SLOT(onCreateMap())); connect(ui->saveMap_Btn, SIGNAL(released()), this, SLOT(onSaveMap(void))); connect(ui->showNumbers_Checkbox, SIGNAL(stateChanged(int)), this, SLOT(onShowNumbers(int))); + connect(ui->airportName_Label, SIGNAL(textChanged(QString)), this, SLOT(onAirportNameModified(QString))); connect(gscene, SIGNAL(positionClicked(QPointF)), this, SLOT(onMapItemClicked(QPointF))); connect(gscene, SIGNAL(noItemSelected(void)), this, SLOT(onNoItemSelected(void))); @@ -161,15 +163,18 @@ void MainWindow::onCreateMap(void) data.append((char)0x18); } - data.append("Default airport"); + data.append(DEFAULT_AIRPORT_NAME); + + for (int i = 0x04 + DEFAULT_AIRPORT_NAME.count(); i < 0x1C; i++) + { + data.append('\0'); + } for (int i = (data.count() - 1); i < DATA_HEADER_SIZE; i++) { data.append(0xFF); } - qDebug() << data.count(); - int size_int = size.toInt(&ok, 10); if (ok == false) @@ -243,7 +248,13 @@ void MainWindow::onProcessMapFile(QByteArray data) return; } - ds.skipRawData(0x3B); + char airportName[0x1A]; + + ds.readRawData(airportName, sizeof(airportName) / sizeof(airportName[0])); + + ui->airportName_Label->setText(QString(airportName)); + + ds.skipRawData(0x3B - 0x1A); gscene->clear(); gscene->clearFocus(); @@ -417,3 +428,23 @@ void MainWindow::loadTilesetData(void) } } } + +void MainWindow::onAirportNameModified(QString name) +{ + if (map_buffer.isEmpty() == true) + { + return; + } + + for (int i = 0x04, j = 0; i < 0x1C; i++) + { + if (j < name.count() ) + { + map_buffer[i] = name.at(j++).toLatin1(); + } + else + { + map_buffer[i] = '\0'; + } + } +} -- cgit v1.2.3