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/MapEditor.pro.user | 2 +- Source/MapEditor/mainwindow.cpp | 43 +++++++++++++++++++++++++++++++----- Source/MapEditor/mainwindow.h | 8 +++++-- Source/MapEditor/mainwindow.ui | 44 ++++++++++++++++++++++++++----------- Source/MapEditor/settings.ini | 2 +- 5 files changed, 76 insertions(+), 23 deletions(-) (limited to 'Source/MapEditor') diff --git a/Source/MapEditor/MapEditor.pro.user b/Source/MapEditor/MapEditor.pro.user index aaf3a0c..48e1dbc 100644 --- a/Source/MapEditor/MapEditor.pro.user +++ b/Source/MapEditor/MapEditor.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId 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'; + } + } +} diff --git a/Source/MapEditor/mainwindow.h b/Source/MapEditor/mainwindow.h index 4926772..705404f 100644 --- a/Source/MapEditor/mainwindow.h +++ b/Source/MapEditor/mainwindow.h @@ -9,6 +9,9 @@ #include "mygraphicsscene.h" #include "ui_mainwindow.h" +#define APP_NAME QString("Airport Map Editor") +#define APP_VERSION_STRING QString("0.2") + #define TILE_SIZE 64 #define DATA_HEADER_SIZE 0x3F #define TILE_MIRROR_FLAG ((char) 0x80) @@ -38,15 +41,16 @@ private: int selected_item; QHash tilesetData; -protected slots: +private slots: void onLoadMap(void); void onCreateMap(void); - void onProcessMapFile(QByteArray data); + void onProcessMapFile(QByteArray); void onMapItemClicked(QPointF); void onNoItemSelected(void); void onListItemSelected(void); void onSaveMap(void); void onShowNumbers(int); + void onAirportNameModified(QString); }; #endif // MAINWINDOW_H diff --git a/Source/MapEditor/mainwindow.ui b/Source/MapEditor/mainwindow.ui index 098a9f8..f5f3514 100644 --- a/Source/MapEditor/mainwindow.ui +++ b/Source/MapEditor/mainwindow.ui @@ -24,7 +24,7 @@ true - + @@ -45,17 +45,7 @@ - - - - - 640 - 480 - - - - - + @@ -80,7 +70,17 @@ - + + + + + 640 + 480 + + + + + @@ -90,6 +90,24 @@ + + + + + + Airport name: + + + + + + + 18 + + + + + diff --git a/Source/MapEditor/settings.ini b/Source/MapEditor/settings.ini index af1583e..83bee36 100644 --- a/Source/MapEditor/settings.ini +++ b/Source/MapEditor/settings.ini @@ -1,2 +1,2 @@ [app_settings] -last_dir=C:/cygwin/home/Xavier/Airport/Levels/LEVEL2.LVL +last_dir=C:/cygwin/home/Xavier/Airport/Levels/TEST_LEVEL2.LVL -- cgit v1.2.3