Skip to content

Commit

Permalink
Editor: Draw selection of triangular blocks as triangles
Browse files Browse the repository at this point in the history
  • Loading branch information
Wohlstand committed Nov 24, 2023
1 parent 9b8e7ef commit f510388
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 4 deletions.
59 changes: 55 additions & 4 deletions Editor/editing/_scenes/level/items/item_block.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -943,10 +943,61 @@ void ItemBlock::paint(QPainter *painter, const QStyleOptionGraphicsItem */*optio

if(this->isSelected())
{
painter->setPen(QPen(QBrush(Qt::black), 2, Qt::SolidLine));
painter->drawRect(1, 1, m_imageSize.width() - 2, m_imageSize.height() - 2);
painter->setPen(QPen(QBrush(Qt::green), 2, Qt::DotLine));
painter->drawRect(1, 1, m_imageSize.width() - 2, m_imageSize.height() - 2);
QPolygon p;
QPen pen1 = QPen(QBrush(Qt::black), 2, Qt::SolidLine);
QPen pen2 = QPen(QBrush(Qt::green), 2, Qt::DotLine);
int w = m_imageSize.width() - 2;
int h = m_imageSize.height() - 2;

switch(m_localProps.setup.phys_shape)
{
case BlockSetup::SHAPE_triangle_left_bottom:
p.append(QPoint(1, 1));
p.append(QPoint(w, h));
p.append(QPoint(1, h));
painter->setPen(pen1);
painter->drawPolygon(p);
painter->setPen(pen2);
painter->drawPolygon(p);
break;

case BlockSetup::SHAPE_triangle_right_bottom:
p.append(QPoint(w, 1));
p.append(QPoint(w, h));
p.append(QPoint(1, h));
painter->setPen(pen1);
painter->drawPolygon(p);
painter->setPen(pen2);
painter->drawPolygon(p);
break;

case BlockSetup::SHAPE_triangle_left_top:
p.append(QPoint(1, 1));
p.append(QPoint(w, 1));
p.append(QPoint(1, h));
painter->setPen(pen1);
painter->drawPolygon(p);
painter->setPen(pen2);
painter->drawPolygon(p);
break;

case BlockSetup::SHAPE_triangle_right_top:
p.append(QPoint(1, 1));
p.append(QPoint(w, 1));
p.append(QPoint(w, h));
painter->setPen(pen1);
painter->drawPolygon(p);
painter->setPen(pen2);
painter->drawPolygon(p);
break;

default:
painter->setPen(pen1);
painter->drawRect(1, 1, w, h);
painter->setPen(pen2);
painter->drawRect(1, 1, w, h);
break;
}
}

}
Expand Down
1 change: 1 addition & 0 deletions changelog.editor.txt
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ beta2
- Added an ability to copy the description from the About Dialogue
- Added the indicator of the presense of the talking message for NPCs
- Added the indicator of the slippery block
- Selection frame of triangular blocks will be triangular

Editor 0.3.2
- Added support for an element (Block, BGO, NPC), section, and level-wide Extra Settings
Expand Down

0 comments on commit f510388

Please sign in to comment.