Rename Connection to MapConnection and move to core
This commit is contained in:
parent
24e79eb94e
commit
d61d33f47f
7 changed files with 52 additions and 44 deletions
14
core/mapconnection.h
Normal file
14
core/mapconnection.h
Normal file
|
@ -0,0 +1,14 @@
|
|||
#ifndef MAPCONNECTION_H
|
||||
#define MAPCONNECTION_H
|
||||
|
||||
#include <QString>
|
||||
#include <QDebug>
|
||||
|
||||
class MapConnection {
|
||||
public:
|
||||
QString direction;
|
||||
QString offset;
|
||||
QString map_name;
|
||||
};
|
||||
|
||||
#endif // MAPCONNECTION_H
|
37
editor.cpp
37
editor.cpp
|
@ -1,5 +1,6 @@
|
|||
#include "editor.h"
|
||||
#include "event.h"
|
||||
#include "core/mapconnection.h"
|
||||
#include <QCheckBox>
|
||||
#include <QPainter>
|
||||
#include <QMouseEvent>
|
||||
|
@ -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<QString, int> directionCounts = QMap<QString, int>({{"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;
|
||||
|
|
23
editor.h
23
editor.h
|
@ -9,6 +9,7 @@
|
|||
#include <QCheckBox>
|
||||
#include <QCursor>
|
||||
|
||||
#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 {
|
||||
|
|
2
map.cpp
2
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") {
|
||||
|
|
15
map.h
15
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 <QGraphicsPixmapItem>
|
||||
#include <math.h>
|
||||
|
||||
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<QString, QList<Event*>> events;
|
||||
|
||||
QList<Connection*> connections;
|
||||
QPixmap renderConnection(Connection);
|
||||
QList<MapConnection*> connections;
|
||||
QPixmap renderConnection(MapConnection);
|
||||
void setNewDimensionsBlockdata(int newWidth, int newHeight);
|
||||
void setDimensions(int newWidth, int newHeight, bool setNewBlockData = true);
|
||||
|
||||
|
|
|
@ -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 \
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue