From d61d33f47f51a70ec639b59026ed3a8574aa4697 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Mon, 24 Sep 2018 11:02:50 -0500 Subject: [PATCH] Rename Connection to MapConnection and move to core --- core/mapconnection.h | 14 ++++++++++++++ editor.cpp | 37 +++++++++++++++++++------------------ editor.h | 23 ++++++++++++----------- map.cpp | 2 +- map.h | 15 +++------------ porymap.pro | 1 + project.cpp | 4 ++-- 7 files changed, 52 insertions(+), 44 deletions(-) create mode 100644 core/mapconnection.h diff --git a/core/mapconnection.h b/core/mapconnection.h new file mode 100644 index 00000000..020d2905 --- /dev/null +++ b/core/mapconnection.h @@ -0,0 +1,14 @@ +#ifndef MAPCONNECTION_H +#define MAPCONNECTION_H + +#include +#include + +class MapConnection { +public: + QString direction; + QString offset; + QString map_name; +}; + +#endif // MAPCONNECTION_H diff --git a/editor.cpp b/editor.cpp index afbbd9d0..141339d2 100755 --- a/editor.cpp +++ b/editor.cpp @@ -1,5 +1,6 @@ #include "editor.h" #include "event.h" +#include "core/mapconnection.h" #include #include #include @@ -130,7 +131,7 @@ void Editor::setDiveEmergeControls() { ui->comboBox_EmergeMap->blockSignals(true); ui->comboBox_DiveMap->setCurrentText(""); ui->comboBox_EmergeMap->setCurrentText(""); - for (Connection* connection : map->connections) { + for (MapConnection* connection : map->connections) { if (connection->direction == "dive") { ui->comboBox_DiveMap->setCurrentText(connection->map_name); } else if (connection->direction == "emerge") { @@ -223,7 +224,7 @@ void Editor::updateCurrentConnectionDirection(QString curDirection) { updateMirroredConnectionDirection(selected_connection_item->connection, originalDirection); } -void Editor::onConnectionMoved(Connection* connection) { +void Editor::onConnectionMoved(MapConnection* connection) { updateMirroredConnectionOffset(connection); onConnectionOffsetChanged(connection->offset.toInt()); } @@ -235,7 +236,7 @@ void Editor::onConnectionOffsetChanged(int newOffset) { } -void Editor::setConnectionEditControlValues(Connection* connection) { +void Editor::setConnectionEditControlValues(MapConnection* connection) { QString mapName = connection ? connection->map_name : ""; QString direction = connection ? connection->direction : ""; int offset = connection ? connection->offset.toInt() : 0; @@ -589,7 +590,7 @@ void Editor::displayMapConnections() { selected_connection_item = nullptr; connection_edit_items.clear(); - for (Connection *connection : map->connections) { + for (MapConnection *connection : map->connections) { if (connection->direction == "dive" || connection->direction == "emerge") { continue; } @@ -601,7 +602,7 @@ void Editor::displayMapConnections() { } } -void Editor::createConnectionItem(Connection* connection, bool hide) { +void Editor::createConnectionItem(MapConnection* connection, bool hide) { Map *connected_map = project->getMap(connection->map_name); QPixmap pixmap = connected_map->renderConnection(*connection); int offset = connection->offset.toInt(nullptr, 0); @@ -728,7 +729,7 @@ void Editor::setConnectionMap(QString mapName) { void Editor::addNewConnection() { // Find direction with least number of connections. QMap directionCounts = QMap({{"up", 0}, {"right", 0}, {"down", 0}, {"left", 0}}); - for (Connection* connection : map->connections) { + for (MapConnection* connection : map->connections) { directionCounts[connection->direction]++; } QString minDirection = "up"; @@ -746,7 +747,7 @@ void Editor::addNewConnection() { defaultMapName = project->mapNames->value(1); } - Connection* newConnection = new Connection; + MapConnection* newConnection = new MapConnection; newConnection->direction = minDirection; newConnection->offset = "0"; newConnection->map_name = defaultMapName; @@ -758,19 +759,19 @@ void Editor::addNewConnection() { updateMirroredConnection(newConnection, newConnection->direction, newConnection->map_name); } -void Editor::updateMirroredConnectionOffset(Connection* connection) { +void Editor::updateMirroredConnectionOffset(MapConnection* connection) { updateMirroredConnection(connection, connection->direction, connection->map_name); } -void Editor::updateMirroredConnectionDirection(Connection* connection, QString originalDirection) { +void Editor::updateMirroredConnectionDirection(MapConnection* connection, QString originalDirection) { updateMirroredConnection(connection, originalDirection, connection->map_name); } -void Editor::updateMirroredConnectionMap(Connection* connection, QString originalMapName) { +void Editor::updateMirroredConnectionMap(MapConnection* connection, QString originalMapName) { updateMirroredConnection(connection, connection->direction, originalMapName); } -void Editor::removeMirroredConnection(Connection* connection) { +void Editor::removeMirroredConnection(MapConnection* connection) { updateMirroredConnection(connection, connection->direction, connection->map_name, true); } -void Editor::updateMirroredConnection(Connection* connection, QString originalDirection, QString originalMapName, bool isDelete) { +void Editor::updateMirroredConnection(MapConnection* connection, QString originalDirection, QString originalMapName, bool isDelete) { if (!ui->checkBox_MirrorConnections->isChecked()) return; @@ -781,9 +782,9 @@ void Editor::updateMirroredConnection(Connection* connection, QString originalDi QString oppositeDirection = oppositeDirections.value(originalDirection); // Find the matching connection in the connected map. - Connection* mirrorConnection = nullptr; + MapConnection* mirrorConnection = nullptr; Map* otherMap = project->getMap(originalMapName); - for (Connection* conn : otherMap->connections) { + for (MapConnection* conn : otherMap->connections) { if (conn->direction == oppositeDirection && conn->map_name == map->name) { mirrorConnection = conn; } @@ -808,7 +809,7 @@ void Editor::updateMirroredConnection(Connection* connection, QString originalDi // Create a new mirrored connection, if a matching one doesn't already exist. if (!mirrorConnection) { - mirrorConnection = new Connection; + mirrorConnection = new MapConnection; mirrorConnection->direction = oppositeDirections.value(connection->direction); mirrorConnection->map_name = map->name; otherMap->connections.append(mirrorConnection); @@ -854,8 +855,8 @@ void Editor::updateDiveEmergeMap(QString mapName, QString direction) { return; } - Connection* connection = nullptr; - for (Connection* conn : map->connections) { + MapConnection* connection = nullptr; + for (MapConnection* conn : map->connections) { if (conn->direction == direction) { connection = conn; break; @@ -870,7 +871,7 @@ void Editor::updateDiveEmergeMap(QString mapName, QString direction) { } } else { if (!connection) { - connection = new Connection; + connection = new MapConnection; connection->direction = direction; connection->offset = "0"; connection->map_name = mapName; diff --git a/editor.h b/editor.h index 32a3e3d1..d48a297c 100755 --- a/editor.h +++ b/editor.h @@ -9,6 +9,7 @@ #include #include +#include "core/mapconnection.h" #include "ui/metatileselector.h" #include "ui/movementpermissionsselector.h" #include "project.h" @@ -115,18 +116,18 @@ public: private: void setConnectionItemsVisible(bool); void setBorderItemsVisible(bool, qreal = 1); - void setConnectionEditControlValues(Connection*); + void setConnectionEditControlValues(MapConnection*); void setConnectionEditControlsEnabled(bool); - void createConnectionItem(Connection* connection, bool hide); + void createConnectionItem(MapConnection* connection, bool hide); void populateConnectionMapPickers(); void setDiveEmergeControls(); void updateDiveEmergeMap(QString mapName, QString direction); void onConnectionOffsetChanged(int newOffset); - void removeMirroredConnection(Connection*); - void updateMirroredConnectionOffset(Connection*); - void updateMirroredConnectionDirection(Connection*, QString); - void updateMirroredConnectionMap(Connection*, QString); - void updateMirroredConnection(Connection*, QString, QString, bool isDelete = false); + void removeMirroredConnection(MapConnection*); + void updateMirroredConnectionOffset(MapConnection*); + void updateMirroredConnectionDirection(MapConnection*, QString); + void updateMirroredConnectionMap(MapConnection*, QString); + void updateMirroredConnection(MapConnection*, QString, QString, bool isDelete = false); Event* createNewObjectEvent(); Event* createNewWarpEvent(); Event* createNewHealLocationEvent(); @@ -139,7 +140,7 @@ private: private slots: void mouseEvent_map(QGraphicsSceneMouseEvent *event, MapPixmapItem *item); void mouseEvent_collision(QGraphicsSceneMouseEvent *event, CollisionPixmapItem *item); - void onConnectionMoved(Connection*); + void onConnectionMoved(MapConnection*); void onConnectionItemSelected(ConnectionPixmapItem* connectionItem); void onConnectionItemDoubleClicked(ConnectionPixmapItem* connectionItem); void onConnectionDirectionChanged(QString newDirection); @@ -320,7 +321,7 @@ protected: class ConnectionPixmapItem : public QObject, public QGraphicsPixmapItem { Q_OBJECT public: - ConnectionPixmapItem(QPixmap pixmap, Connection* connection, int x, int y, int baseMapWidth, int baseMapHeight): QGraphicsPixmapItem(pixmap) { + ConnectionPixmapItem(QPixmap pixmap, MapConnection* connection, int x, int y, int baseMapWidth, int baseMapHeight): QGraphicsPixmapItem(pixmap) { this->basePixmap = pixmap; this->connection = connection; setFlag(ItemIsMovable); @@ -344,7 +345,7 @@ public: int getMinOffset(); int getMaxOffset(); QPixmap basePixmap; - Connection* connection; + MapConnection* connection; int initialX; int initialY; int initialOffset; @@ -357,7 +358,7 @@ protected: signals: void connectionItemSelected(ConnectionPixmapItem* connectionItem); void connectionItemDoubleClicked(ConnectionPixmapItem* connectionItem); - void connectionMoved(Connection*); + void connectionMoved(MapConnection*); }; class BorderMetatilesPixmapItem : public QObject, public QGraphicsPixmapItem { diff --git a/map.cpp b/map.cpp index 6b4be6ae..abc5c1f5 100755 --- a/map.cpp +++ b/map.cpp @@ -251,7 +251,7 @@ QPixmap Map::renderBorder() { return layout->border_pixmap; } -QPixmap Map::renderConnection(Connection connection) { +QPixmap Map::renderConnection(MapConnection connection) { render(); int x, y, w, h; if (connection.direction == "up") { diff --git a/map.h b/map.h index 0363c0c3..79a6a0e5 100755 --- a/map.h +++ b/map.h @@ -4,6 +4,7 @@ #include "core/blockdata.h" #include "core/history.h" #include "core/historyitem.h" +#include "core/mapconnection.h" #include "core/maplayout.h" #include "core/tileset.h" #include "event.h" @@ -14,16 +15,6 @@ #include #include -class Connection { -public: - Connection() { - } -public: - QString direction; - QString offset; - QString map_name; -}; - class Map : public QObject { Q_OBJECT @@ -102,8 +93,8 @@ public: void addEvent(Event *event); QMap> events; - QList connections; - QPixmap renderConnection(Connection); + QList connections; + QPixmap renderConnection(MapConnection); void setNewDimensionsBlockdata(int newWidth, int newHeight); void setDimensions(int newWidth, int newHeight, bool setNewBlockData = true); diff --git a/porymap.pro b/porymap.pro index a213ab6c..73c80cbe 100755 --- a/porymap.pro +++ b/porymap.pro @@ -43,6 +43,7 @@ HEADERS += core/block.h \ core/heallocation.h \ core/history.h \ core/historyitem.h \ + core/mapconnection.h \ core/maplayout.h \ core/metatile.h \ core/tile.h \ diff --git a/project.cpp b/project.cpp index 6564e76d..fa77030e 100755 --- a/project.cpp +++ b/project.cpp @@ -96,7 +96,7 @@ void Project::loadMapConnections(Map *map) { for (QStringList command : *connections) { QString macro = command.value(0); if (macro == "connection") { - Connection *connection = new Connection; + MapConnection *connection = new MapConnection; connection->direction = command.value(1); connection->offset = command.value(2); QString mapConstant = command.value(3); @@ -240,7 +240,7 @@ void Project::saveMapConnections(Map *map) { QString connectionsListLabel = QString("%1_MapConnectionsList").arg(map->name); int numValidConnections = 0; text += QString("%1::\n").arg(connectionsListLabel); - for (Connection* connection : map->connections) { + for (MapConnection* connection : map->connections) { if (mapNamesToMapConstants->contains(connection->map_name)) { text += QString("\tconnection %1, %2, %3\n") .arg(connection->direction)