diff options
| author | XaviDCR92 <xavi.dcr@gmail.com> | 2018-02-25 05:25:33 +0100 |
|---|---|---|
| committer | XaviDCR92 <xavi.dcr@gmail.com> | 2018-02-25 05:25:33 +0100 |
| commit | baa647ad7caf95ea2619d8456bcfd0f04a08a719 (patch) | |
| tree | 7a7f5408a8ae0cc18a70d7795a2a47af30cf59f5 /Source/MapEditor | |
| parent | 81d9242514b4e8e3fe97cf7063a15680f610bf2f (diff) | |
| download | airport-baa647ad7caf95ea2619d8456bcfd0f04a08a719.tar.gz | |
+ 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.
Diffstat (limited to 'Source/MapEditor')
| -rw-r--r-- | Source/MapEditor/MapEditor.pro.user | 2 | ||||
| -rw-r--r-- | Source/MapEditor/mainwindow.cpp | 43 | ||||
| -rw-r--r-- | Source/MapEditor/mainwindow.h | 8 | ||||
| -rw-r--r-- | Source/MapEditor/mainwindow.ui | 44 | ||||
| -rw-r--r-- | Source/MapEditor/settings.ini | 2 |
5 files changed, 76 insertions, 23 deletions
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 @@ <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
-<!-- Written by QtCreator 4.0.3, 2018-01-01T07:36:40. -->
+<!-- Written by QtCreator 4.0.3, 2018-02-23T20:22:49. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
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 <QGraphicsPixmapItem>
#include <QInputDialog>
+#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<int, QString> 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 @@ <bool>true</bool>
</property>
<layout class="QGridLayout" name="gridLayout">
- <item row="1" column="0">
+ <item row="2" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QCheckBox" name="showNumbers_Checkbox">
@@ -45,17 +45,7 @@ </item>
</layout>
</item>
- <item row="0" column="2">
- <widget class="QGraphicsView" name="graphicsView">
- <property name="minimumSize">
- <size>
- <width>640</width>
- <height>480</height>
- </size>
- </property>
- </widget>
- </item>
- <item row="4" column="0">
+ <item row="5" column="0">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QPushButton" name="CreateMap_Btn">
@@ -80,7 +70,17 @@ </item>
</layout>
</item>
- <item row="0" column="0">
+ <item row="1" column="2">
+ <widget class="QGraphicsView" name="graphicsView">
+ <property name="minimumSize">
+ <size>
+ <width>640</width>
+ <height>480</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
<widget class="QListWidget" name="listWidget">
<property name="maximumSize">
<size>
@@ -90,6 +90,24 @@ </property>
</widget>
</item>
+ <item row="0" column="0">
+ <layout class="QHBoxLayout" name="horizontalLayout_3">
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Airport name:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="airportName_Label">
+ <property name="maxLength">
+ <number>18</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
</layout>
</widget>
<widget class="QMenuBar" name="menuBar">
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
|
