draw map connections with current map tilesets
This commit is contained in:
parent
631896a708
commit
2f21f83217
3 changed files with 12 additions and 8 deletions
|
@ -57,7 +57,7 @@ public:
|
||||||
static QString bgEventsLabelFromName(QString mapName);
|
static QString bgEventsLabelFromName(QString mapName);
|
||||||
int getWidth();
|
int getWidth();
|
||||||
int getHeight();
|
int getHeight();
|
||||||
QPixmap render(bool ignoreCache);
|
QPixmap render(bool ignoreCache, MapLayout * fromLayout = nullptr);
|
||||||
QPixmap renderCollision(qreal opacity, bool ignoreCache);
|
QPixmap renderCollision(qreal opacity, bool ignoreCache);
|
||||||
bool blockChanged(int, Blockdata*);
|
bool blockChanged(int, Blockdata*);
|
||||||
void cacheBlockdata();
|
void cacheBlockdata();
|
||||||
|
@ -74,7 +74,7 @@ public:
|
||||||
QList<Event*> getAllEvents();
|
QList<Event*> getAllEvents();
|
||||||
void removeEvent(Event*);
|
void removeEvent(Event*);
|
||||||
void addEvent(Event*);
|
void addEvent(Event*);
|
||||||
QPixmap renderConnection(MapConnection);
|
QPixmap renderConnection(MapConnection, MapLayout *);
|
||||||
QPixmap renderBorder();
|
QPixmap renderBorder();
|
||||||
void setDimensions(int newWidth, int newHeight, bool setNewBlockData = true);
|
void setDimensions(int newWidth, int newHeight, bool setNewBlockData = true);
|
||||||
void cacheBorder();
|
void cacheBorder();
|
||||||
|
|
|
@ -152,7 +152,7 @@ QPixmap Map::renderCollision(qreal opacity, bool ignoreCache) {
|
||||||
return collision_pixmap;
|
return collision_pixmap;
|
||||||
}
|
}
|
||||||
|
|
||||||
QPixmap Map::render(bool ignoreCache = false) {
|
QPixmap Map::render(bool ignoreCache = false, MapLayout * fromLayout) {
|
||||||
bool changed_any = false;
|
bool changed_any = false;
|
||||||
int width_ = getWidth();
|
int width_ = getWidth();
|
||||||
int height_ = getHeight();
|
int height_ = getHeight();
|
||||||
|
@ -176,7 +176,11 @@ QPixmap Map::render(bool ignoreCache = false) {
|
||||||
}
|
}
|
||||||
changed_any = true;
|
changed_any = true;
|
||||||
Block block = layout->blockdata->blocks->value(i);
|
Block block = layout->blockdata->blocks->value(i);
|
||||||
QImage metatile_image = getMetatileImage(block.tile, layout->tileset_primary, layout->tileset_secondary);
|
QImage metatile_image = getMetatileImage(
|
||||||
|
block.tile,
|
||||||
|
fromLayout ? fromLayout->tileset_primary : layout->tileset_primary,
|
||||||
|
fromLayout ? fromLayout->tileset_secondary : layout->tileset_secondary
|
||||||
|
);
|
||||||
int map_y = width_ ? i / width_ : 0;
|
int map_y = width_ ? i / width_ : 0;
|
||||||
int map_x = width_ ? i % width_ : 0;
|
int map_x = width_ ? i % width_ : 0;
|
||||||
QPoint metatile_origin = QPoint(map_x * 16, map_y * 16);
|
QPoint metatile_origin = QPoint(map_x * 16, map_y * 16);
|
||||||
|
@ -223,8 +227,8 @@ QPixmap Map::renderBorder() {
|
||||||
return layout->border_pixmap;
|
return layout->border_pixmap;
|
||||||
}
|
}
|
||||||
|
|
||||||
QPixmap Map::renderConnection(MapConnection connection) {
|
QPixmap Map::renderConnection(MapConnection connection, MapLayout * fromLayout) {
|
||||||
render(true);
|
render(true, fromLayout);
|
||||||
int x, y, w, h;
|
int x, y, w, h;
|
||||||
if (connection.direction == "up") {
|
if (connection.direction == "up") {
|
||||||
x = 0;
|
x = 0;
|
||||||
|
|
|
@ -673,7 +673,7 @@ void Editor::setCurrentConnectionDirection(QString curDirection) {
|
||||||
selected_connection_item->connection->direction = curDirection;
|
selected_connection_item->connection->direction = curDirection;
|
||||||
|
|
||||||
Map *connected_map = project->getMap(selected_connection_item->connection->map_name);
|
Map *connected_map = project->getMap(selected_connection_item->connection->map_name);
|
||||||
QPixmap pixmap = connected_map->renderConnection(*selected_connection_item->connection);
|
QPixmap pixmap = connected_map->renderConnection(*selected_connection_item->connection, map->layout);
|
||||||
int offset = selected_connection_item->connection->offset.toInt(nullptr, 0);
|
int offset = selected_connection_item->connection->offset.toInt(nullptr, 0);
|
||||||
selected_connection_item->initialOffset = offset;
|
selected_connection_item->initialOffset = offset;
|
||||||
int x = 0, y = 0;
|
int x = 0, y = 0;
|
||||||
|
@ -1279,7 +1279,7 @@ void Editor::displayMapConnections() {
|
||||||
|
|
||||||
void Editor::createConnectionItem(MapConnection* 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, map->layout);
|
||||||
int offset = connection->offset.toInt(nullptr, 0);
|
int offset = connection->offset.toInt(nullptr, 0);
|
||||||
int x = 0, y = 0;
|
int x = 0, y = 0;
|
||||||
if (connection->direction == "up") {
|
if (connection->direction == "up") {
|
||||||
|
|
Loading…
Reference in a new issue