Beispiel #1
0
void LVL_ModePlace::mouseRelease(QGraphicsSceneMouseEvent *mouseEvent)
{
    Q_UNUSED(mouseEvent);
    if(!scene) return;
    LvlScene *s = dynamic_cast<LvlScene *>(scene);

    if(s->placingItem == LvlScene::PLC_Door)
    {
        MainWinConnect::pMainWin->on_actionSelect_triggered();
        dontCallEvent = true;
        return;
    }
    else
    {
        if(!s->overwritedItems.blocks.isEmpty()||
            !s->overwritedItems.bgo.isEmpty()||
            !s->overwritedItems.npc.isEmpty() )
        {
            s->addOverwriteHistory(s->overwritedItems, s->placingItems);
            s->overwritedItems.blocks.clear();
            s->overwritedItems.bgo.clear();
            s->overwritedItems.npc.clear();
            s->placingItems.blocks.clear();
            s->placingItems.bgo.clear();
            s->placingItems.npc.clear();
        }
        else
        if(!s->placingItems.blocks.isEmpty()||
                !s->placingItems.bgo.isEmpty()||
                !s->placingItems.npc.isEmpty())
        {
            s->addPlaceHistory(s->placingItems);
            s->placingItems.blocks.clear();
            s->placingItems.bgo.clear();
            s->placingItems.npc.clear();
        }
    }
}