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 "editor.h"
|
||||||
#include "event.h"
|
#include "event.h"
|
||||||
|
#include "core/mapconnection.h"
|
||||||
#include <QCheckBox>
|
#include <QCheckBox>
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
#include <QMouseEvent>
|
#include <QMouseEvent>
|
||||||
|
@ -130,7 +131,7 @@ void Editor::setDiveEmergeControls() {
|
||||||
ui->comboBox_EmergeMap->blockSignals(true);
|
ui->comboBox_EmergeMap->blockSignals(true);
|
||||||
ui->comboBox_DiveMap->setCurrentText("");
|
ui->comboBox_DiveMap->setCurrentText("");
|
||||||
ui->comboBox_EmergeMap->setCurrentText("");
|
ui->comboBox_EmergeMap->setCurrentText("");
|
||||||
for (Connection* connection : map->connections) {
|
for (MapConnection* connection : map->connections) {
|
||||||
if (connection->direction == "dive") {
|
if (connection->direction == "dive") {
|
||||||
ui->comboBox_DiveMap->setCurrentText(connection->map_name);
|
ui->comboBox_DiveMap->setCurrentText(connection->map_name);
|
||||||
} else if (connection->direction == "emerge") {
|
} else if (connection->direction == "emerge") {
|
||||||
|
@ -223,7 +224,7 @@ void Editor::updateCurrentConnectionDirection(QString curDirection) {
|
||||||
updateMirroredConnectionDirection(selected_connection_item->connection, originalDirection);
|
updateMirroredConnectionDirection(selected_connection_item->connection, originalDirection);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Editor::onConnectionMoved(Connection* connection) {
|
void Editor::onConnectionMoved(MapConnection* connection) {
|
||||||
updateMirroredConnectionOffset(connection);
|
updateMirroredConnectionOffset(connection);
|
||||||
onConnectionOffsetChanged(connection->offset.toInt());
|
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 mapName = connection ? connection->map_name : "";
|
||||||
QString direction = connection ? connection->direction : "";
|
QString direction = connection ? connection->direction : "";
|
||||||
int offset = connection ? connection->offset.toInt() : 0;
|
int offset = connection ? connection->offset.toInt() : 0;
|
||||||
|
@ -589,7 +590,7 @@ void Editor::displayMapConnections() {
|
||||||
selected_connection_item = nullptr;
|
selected_connection_item = nullptr;
|
||||||
connection_edit_items.clear();
|
connection_edit_items.clear();
|
||||||
|
|
||||||
for (Connection *connection : map->connections) {
|
for (MapConnection *connection : map->connections) {
|
||||||
if (connection->direction == "dive" || connection->direction == "emerge") {
|
if (connection->direction == "dive" || connection->direction == "emerge") {
|
||||||
continue;
|
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);
|
Map *connected_map = project->getMap(connection->map_name);
|
||||||
QPixmap pixmap = connected_map->renderConnection(*connection);
|
QPixmap pixmap = connected_map->renderConnection(*connection);
|
||||||
int offset = connection->offset.toInt(nullptr, 0);
|
int offset = connection->offset.toInt(nullptr, 0);
|
||||||
|
@ -728,7 +729,7 @@ void Editor::setConnectionMap(QString mapName) {
|
||||||
void Editor::addNewConnection() {
|
void Editor::addNewConnection() {
|
||||||
// Find direction with least number of connections.
|
// Find direction with least number of connections.
|
||||||
QMap<QString, int> directionCounts = QMap<QString, int>({{"up", 0}, {"right", 0}, {"down", 0}, {"left", 0}});
|
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]++;
|
directionCounts[connection->direction]++;
|
||||||
}
|
}
|
||||||
QString minDirection = "up";
|
QString minDirection = "up";
|
||||||
|
@ -746,7 +747,7 @@ void Editor::addNewConnection() {
|
||||||
defaultMapName = project->mapNames->value(1);
|
defaultMapName = project->mapNames->value(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
Connection* newConnection = new Connection;
|
MapConnection* newConnection = new MapConnection;
|
||||||
newConnection->direction = minDirection;
|
newConnection->direction = minDirection;
|
||||||
newConnection->offset = "0";
|
newConnection->offset = "0";
|
||||||
newConnection->map_name = defaultMapName;
|
newConnection->map_name = defaultMapName;
|
||||||
|
@ -758,19 +759,19 @@ void Editor::addNewConnection() {
|
||||||
updateMirroredConnection(newConnection, newConnection->direction, newConnection->map_name);
|
updateMirroredConnection(newConnection, newConnection->direction, newConnection->map_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Editor::updateMirroredConnectionOffset(Connection* connection) {
|
void Editor::updateMirroredConnectionOffset(MapConnection* connection) {
|
||||||
updateMirroredConnection(connection, connection->direction, connection->map_name);
|
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);
|
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);
|
updateMirroredConnection(connection, connection->direction, originalMapName);
|
||||||
}
|
}
|
||||||
void Editor::removeMirroredConnection(Connection* connection) {
|
void Editor::removeMirroredConnection(MapConnection* connection) {
|
||||||
updateMirroredConnection(connection, connection->direction, connection->map_name, true);
|
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())
|
if (!ui->checkBox_MirrorConnections->isChecked())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -781,9 +782,9 @@ void Editor::updateMirroredConnection(Connection* connection, QString originalDi
|
||||||
QString oppositeDirection = oppositeDirections.value(originalDirection);
|
QString oppositeDirection = oppositeDirections.value(originalDirection);
|
||||||
|
|
||||||
// Find the matching connection in the connected map.
|
// Find the matching connection in the connected map.
|
||||||
Connection* mirrorConnection = nullptr;
|
MapConnection* mirrorConnection = nullptr;
|
||||||
Map* otherMap = project->getMap(originalMapName);
|
Map* otherMap = project->getMap(originalMapName);
|
||||||
for (Connection* conn : otherMap->connections) {
|
for (MapConnection* conn : otherMap->connections) {
|
||||||
if (conn->direction == oppositeDirection && conn->map_name == map->name) {
|
if (conn->direction == oppositeDirection && conn->map_name == map->name) {
|
||||||
mirrorConnection = conn;
|
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.
|
// Create a new mirrored connection, if a matching one doesn't already exist.
|
||||||
if (!mirrorConnection) {
|
if (!mirrorConnection) {
|
||||||
mirrorConnection = new Connection;
|
mirrorConnection = new MapConnection;
|
||||||
mirrorConnection->direction = oppositeDirections.value(connection->direction);
|
mirrorConnection->direction = oppositeDirections.value(connection->direction);
|
||||||
mirrorConnection->map_name = map->name;
|
mirrorConnection->map_name = map->name;
|
||||||
otherMap->connections.append(mirrorConnection);
|
otherMap->connections.append(mirrorConnection);
|
||||||
|
@ -854,8 +855,8 @@ void Editor::updateDiveEmergeMap(QString mapName, QString direction) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Connection* connection = nullptr;
|
MapConnection* connection = nullptr;
|
||||||
for (Connection* conn : map->connections) {
|
for (MapConnection* conn : map->connections) {
|
||||||
if (conn->direction == direction) {
|
if (conn->direction == direction) {
|
||||||
connection = conn;
|
connection = conn;
|
||||||
break;
|
break;
|
||||||
|
@ -870,7 +871,7 @@ void Editor::updateDiveEmergeMap(QString mapName, QString direction) {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!connection) {
|
if (!connection) {
|
||||||
connection = new Connection;
|
connection = new MapConnection;
|
||||||
connection->direction = direction;
|
connection->direction = direction;
|
||||||
connection->offset = "0";
|
connection->offset = "0";
|
||||||
connection->map_name = mapName;
|
connection->map_name = mapName;
|
||||||
|
|
23
editor.h
23
editor.h
|
@ -9,6 +9,7 @@
|
||||||
#include <QCheckBox>
|
#include <QCheckBox>
|
||||||
#include <QCursor>
|
#include <QCursor>
|
||||||
|
|
||||||
|
#include "core/mapconnection.h"
|
||||||
#include "ui/metatileselector.h"
|
#include "ui/metatileselector.h"
|
||||||
#include "ui/movementpermissionsselector.h"
|
#include "ui/movementpermissionsselector.h"
|
||||||
#include "project.h"
|
#include "project.h"
|
||||||
|
@ -115,18 +116,18 @@ public:
|
||||||
private:
|
private:
|
||||||
void setConnectionItemsVisible(bool);
|
void setConnectionItemsVisible(bool);
|
||||||
void setBorderItemsVisible(bool, qreal = 1);
|
void setBorderItemsVisible(bool, qreal = 1);
|
||||||
void setConnectionEditControlValues(Connection*);
|
void setConnectionEditControlValues(MapConnection*);
|
||||||
void setConnectionEditControlsEnabled(bool);
|
void setConnectionEditControlsEnabled(bool);
|
||||||
void createConnectionItem(Connection* connection, bool hide);
|
void createConnectionItem(MapConnection* connection, bool hide);
|
||||||
void populateConnectionMapPickers();
|
void populateConnectionMapPickers();
|
||||||
void setDiveEmergeControls();
|
void setDiveEmergeControls();
|
||||||
void updateDiveEmergeMap(QString mapName, QString direction);
|
void updateDiveEmergeMap(QString mapName, QString direction);
|
||||||
void onConnectionOffsetChanged(int newOffset);
|
void onConnectionOffsetChanged(int newOffset);
|
||||||
void removeMirroredConnection(Connection*);
|
void removeMirroredConnection(MapConnection*);
|
||||||
void updateMirroredConnectionOffset(Connection*);
|
void updateMirroredConnectionOffset(MapConnection*);
|
||||||
void updateMirroredConnectionDirection(Connection*, QString);
|
void updateMirroredConnectionDirection(MapConnection*, QString);
|
||||||
void updateMirroredConnectionMap(Connection*, QString);
|
void updateMirroredConnectionMap(MapConnection*, QString);
|
||||||
void updateMirroredConnection(Connection*, QString, QString, bool isDelete = false);
|
void updateMirroredConnection(MapConnection*, QString, QString, bool isDelete = false);
|
||||||
Event* createNewObjectEvent();
|
Event* createNewObjectEvent();
|
||||||
Event* createNewWarpEvent();
|
Event* createNewWarpEvent();
|
||||||
Event* createNewHealLocationEvent();
|
Event* createNewHealLocationEvent();
|
||||||
|
@ -139,7 +140,7 @@ private:
|
||||||
private slots:
|
private slots:
|
||||||
void mouseEvent_map(QGraphicsSceneMouseEvent *event, MapPixmapItem *item);
|
void mouseEvent_map(QGraphicsSceneMouseEvent *event, MapPixmapItem *item);
|
||||||
void mouseEvent_collision(QGraphicsSceneMouseEvent *event, CollisionPixmapItem *item);
|
void mouseEvent_collision(QGraphicsSceneMouseEvent *event, CollisionPixmapItem *item);
|
||||||
void onConnectionMoved(Connection*);
|
void onConnectionMoved(MapConnection*);
|
||||||
void onConnectionItemSelected(ConnectionPixmapItem* connectionItem);
|
void onConnectionItemSelected(ConnectionPixmapItem* connectionItem);
|
||||||
void onConnectionItemDoubleClicked(ConnectionPixmapItem* connectionItem);
|
void onConnectionItemDoubleClicked(ConnectionPixmapItem* connectionItem);
|
||||||
void onConnectionDirectionChanged(QString newDirection);
|
void onConnectionDirectionChanged(QString newDirection);
|
||||||
|
@ -320,7 +321,7 @@ protected:
|
||||||
class ConnectionPixmapItem : public QObject, public QGraphicsPixmapItem {
|
class ConnectionPixmapItem : public QObject, public QGraphicsPixmapItem {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
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->basePixmap = pixmap;
|
||||||
this->connection = connection;
|
this->connection = connection;
|
||||||
setFlag(ItemIsMovable);
|
setFlag(ItemIsMovable);
|
||||||
|
@ -344,7 +345,7 @@ public:
|
||||||
int getMinOffset();
|
int getMinOffset();
|
||||||
int getMaxOffset();
|
int getMaxOffset();
|
||||||
QPixmap basePixmap;
|
QPixmap basePixmap;
|
||||||
Connection* connection;
|
MapConnection* connection;
|
||||||
int initialX;
|
int initialX;
|
||||||
int initialY;
|
int initialY;
|
||||||
int initialOffset;
|
int initialOffset;
|
||||||
|
@ -357,7 +358,7 @@ protected:
|
||||||
signals:
|
signals:
|
||||||
void connectionItemSelected(ConnectionPixmapItem* connectionItem);
|
void connectionItemSelected(ConnectionPixmapItem* connectionItem);
|
||||||
void connectionItemDoubleClicked(ConnectionPixmapItem* connectionItem);
|
void connectionItemDoubleClicked(ConnectionPixmapItem* connectionItem);
|
||||||
void connectionMoved(Connection*);
|
void connectionMoved(MapConnection*);
|
||||||
};
|
};
|
||||||
|
|
||||||
class BorderMetatilesPixmapItem : public QObject, public QGraphicsPixmapItem {
|
class BorderMetatilesPixmapItem : public QObject, public QGraphicsPixmapItem {
|
||||||
|
|
2
map.cpp
2
map.cpp
|
@ -251,7 +251,7 @@ QPixmap Map::renderBorder() {
|
||||||
return layout->border_pixmap;
|
return layout->border_pixmap;
|
||||||
}
|
}
|
||||||
|
|
||||||
QPixmap Map::renderConnection(Connection connection) {
|
QPixmap Map::renderConnection(MapConnection connection) {
|
||||||
render();
|
render();
|
||||||
int x, y, w, h;
|
int x, y, w, h;
|
||||||
if (connection.direction == "up") {
|
if (connection.direction == "up") {
|
||||||
|
|
15
map.h
15
map.h
|
@ -4,6 +4,7 @@
|
||||||
#include "core/blockdata.h"
|
#include "core/blockdata.h"
|
||||||
#include "core/history.h"
|
#include "core/history.h"
|
||||||
#include "core/historyitem.h"
|
#include "core/historyitem.h"
|
||||||
|
#include "core/mapconnection.h"
|
||||||
#include "core/maplayout.h"
|
#include "core/maplayout.h"
|
||||||
#include "core/tileset.h"
|
#include "core/tileset.h"
|
||||||
#include "event.h"
|
#include "event.h"
|
||||||
|
@ -14,16 +15,6 @@
|
||||||
#include <QGraphicsPixmapItem>
|
#include <QGraphicsPixmapItem>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
class Connection {
|
|
||||||
public:
|
|
||||||
Connection() {
|
|
||||||
}
|
|
||||||
public:
|
|
||||||
QString direction;
|
|
||||||
QString offset;
|
|
||||||
QString map_name;
|
|
||||||
};
|
|
||||||
|
|
||||||
class Map : public QObject
|
class Map : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
@ -102,8 +93,8 @@ public:
|
||||||
void addEvent(Event *event);
|
void addEvent(Event *event);
|
||||||
QMap<QString, QList<Event*>> events;
|
QMap<QString, QList<Event*>> events;
|
||||||
|
|
||||||
QList<Connection*> connections;
|
QList<MapConnection*> connections;
|
||||||
QPixmap renderConnection(Connection);
|
QPixmap renderConnection(MapConnection);
|
||||||
void setNewDimensionsBlockdata(int newWidth, int newHeight);
|
void setNewDimensionsBlockdata(int newWidth, int newHeight);
|
||||||
void setDimensions(int newWidth, int newHeight, bool setNewBlockData = true);
|
void setDimensions(int newWidth, int newHeight, bool setNewBlockData = true);
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,7 @@ HEADERS += core/block.h \
|
||||||
core/heallocation.h \
|
core/heallocation.h \
|
||||||
core/history.h \
|
core/history.h \
|
||||||
core/historyitem.h \
|
core/historyitem.h \
|
||||||
|
core/mapconnection.h \
|
||||||
core/maplayout.h \
|
core/maplayout.h \
|
||||||
core/metatile.h \
|
core/metatile.h \
|
||||||
core/tile.h \
|
core/tile.h \
|
||||||
|
|
|
@ -96,7 +96,7 @@ void Project::loadMapConnections(Map *map) {
|
||||||
for (QStringList command : *connections) {
|
for (QStringList command : *connections) {
|
||||||
QString macro = command.value(0);
|
QString macro = command.value(0);
|
||||||
if (macro == "connection") {
|
if (macro == "connection") {
|
||||||
Connection *connection = new Connection;
|
MapConnection *connection = new MapConnection;
|
||||||
connection->direction = command.value(1);
|
connection->direction = command.value(1);
|
||||||
connection->offset = command.value(2);
|
connection->offset = command.value(2);
|
||||||
QString mapConstant = command.value(3);
|
QString mapConstant = command.value(3);
|
||||||
|
@ -240,7 +240,7 @@ void Project::saveMapConnections(Map *map) {
|
||||||
QString connectionsListLabel = QString("%1_MapConnectionsList").arg(map->name);
|
QString connectionsListLabel = QString("%1_MapConnectionsList").arg(map->name);
|
||||||
int numValidConnections = 0;
|
int numValidConnections = 0;
|
||||||
text += QString("%1::\n").arg(connectionsListLabel);
|
text += QString("%1::\n").arg(connectionsListLabel);
|
||||||
for (Connection* connection : map->connections) {
|
for (MapConnection* connection : map->connections) {
|
||||||
if (mapNamesToMapConstants->contains(connection->map_name)) {
|
if (mapNamesToMapConstants->contains(connection->map_name)) {
|
||||||
text += QString("\tconnection %1, %2, %3\n")
|
text += QString("\tconnection %1, %2, %3\n")
|
||||||
.arg(connection->direction)
|
.arg(connection->direction)
|
||||||
|
|
Loading…
Reference in a new issue