Changed: #1302 Landscape scene works correctly in world editor plugin.
This commit is contained in:
parent
3c9d4c3773
commit
845cee0a88
1 changed files with 17 additions and 10 deletions
|
@ -202,13 +202,16 @@ QGraphicsItem *LandscapeSceneBase::createItemEmptyZone(const ZonePosition &zoneP
|
|||
|
||||
void LandscapeSceneBase::deleteItemZone(const ZonePosition &zonePos)
|
||||
{
|
||||
QGraphicsItem *item = itemAt(zonePos.x * m_cellSize, abs(zonePos.y) * m_cellSize);
|
||||
|
||||
// TODO: delete LAYER_BLACKOUT_NAME
|
||||
if ((item != 0) && (item->data(ZONE_NAME).toString() != QString(LAYER_BLACKOUT_NAME)))
|
||||
QList<QGraphicsItem *> listItems = items(QPointF(zonePos.x * m_cellSize + 10, abs(zonePos.y) * m_cellSize + 10),
|
||||
Qt::IntersectsItemBoundingRect, Qt::AscendingOrder);
|
||||
Q_FOREACH(QGraphicsItem *item, listItems)
|
||||
{
|
||||
if (dynamic_cast<QGraphicsPixmapItem *>(item) != 0)
|
||||
{
|
||||
removeItem(item);
|
||||
delete item;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -246,6 +249,7 @@ void LandscapeSceneBase::delZoneRegion(const NLLIGO::CZoneRegion &zoneRegion)
|
|||
{
|
||||
for (sint32 j = zoneRegion.getMinY(); j <= zoneRegion.getMaxY(); ++j)
|
||||
{
|
||||
|
||||
deleteItemZone(ZonePosition(i, -j, -1));
|
||||
}
|
||||
}
|
||||
|
@ -314,10 +318,13 @@ void LandscapeSceneBase::mouseReleaseEvent(QGraphicsSceneMouseEvent *mouseEvent)
|
|||
|
||||
bool LandscapeSceneBase::checkUnderZone(const int posX, const int posY)
|
||||
{
|
||||
// TODO: it will not work correctly in world editor
|
||||
QGraphicsItem *item = itemAt((posX * m_cellSize), abs(posY) * m_cellSize);
|
||||
if (item != 0)
|
||||
QList<QGraphicsItem *> listItems = items(QPointF(posX * m_cellSize + 10, abs(posY) * m_cellSize + 10),
|
||||
Qt::IntersectsItemBoundingRect, Qt::AscendingOrder);
|
||||
Q_FOREACH(QGraphicsItem *item, listItems)
|
||||
{
|
||||
if (dynamic_cast<QGraphicsPixmapItem *>(item) != 0)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue