Example #1
0
//Paste
void MainWindow::on_actionPaste_triggered()
{
    if (activeChildWindow()==1)
    {
        LevelData tmp;
        QString raw=QApplication::clipboard()->text();
        if( FileFormats::ReadExtendedLvlFileRaw(raw, "<clipboard>", tmp) )
        {
            LvlBuffer = tmp;
        }

        if
        (   //if buffer is empty
                (LvlBuffer.blocks.size()==0)&&
                (LvlBuffer.bgo.size()==0)&&
                (LvlBuffer.npc.size()==0)&&
                (LvlBuffer.physez.size()==0)
        ) return;
    }
    else
    if (activeChildWindow()==3)
    {
        WorldData tmp;
        QString raw = QApplication::clipboard()->text();
        if( FileFormats::ReadExtendedWldFileRaw(raw, "<clipboard>", tmp) )
        {
            WldBuffer = tmp;
        }

        if
        (   //if buffer is empty
                (WldBuffer.tiles.size()==0)&&
                (WldBuffer.scenery.size()==0)&&
                (WldBuffer.paths.size()==0)&&
                (WldBuffer.levels.size()==0)&&
                (WldBuffer.music.size()==0)
        ) return;
    }

    resetEditmodeButtons();
    ui->actionSelect->setChecked(1);

    if (activeChildWindow()==1)
    {
       activeLvlEditWin()->scene->SwitchEditingMode(LvlScene::MODE_PasteFromClip);
       activeLvlEditWin()->scene->m_dataBuffer = LvlBuffer;
    }
    else
    if (activeChildWindow()==3)
    {
       activeWldEditWin()->scene->SwitchEditingMode(LvlScene::MODE_PasteFromClip);
       activeWldEditWin()->scene->WldBuffer = WldBuffer;
    }

}
Example #2
0
void MainWindow::on_actionDrawSand_triggered()
{
    resetEditmodeButtons();
    ui->actionDrawSand->setChecked(1);

    ui->ItemProperties->hide();

    if((activeChildWindow()==1))
    {
        activeLvlEditWin()->scene->setItemPlacer( 3, 1 );
    }
}
Example #3
0
void MainWindow::on_actionSetFirstPlayer_triggered()
{
    resetEditmodeButtons();
    ui->actionSetFirstPlayer->setChecked(1);

    ui->ItemProperties->hide();

    if((activeChildWindow()==1))
    {
        activeLvlEditWin()->scene->setItemPlacer( 5, 0 );
    }

}
Example #4
0
void MainWindow::on_actionSelectOnly_triggered()
{
    resetEditmodeButtons();
    ui->actionSelectOnly->setChecked(1);

    ui->ItemProperties->hide();

    if ((activeChildWindow()==1) && (ui->actionSelectOnly->isChecked()))
    {
       activeLvlEditWin()->scene->SwitchEditingMode(LvlScene::MODE_SelectingOnly);
    }
    else
    if ((activeChildWindow()==3) && (ui->actionSelectOnly->isChecked()))
    {
       activeWldEditWin()->scene->SwitchEditingMode(WldScene::MODE_SelectingOnly);
    }
}
void MainWindow::SwitchPlacingItem(int itemType, unsigned long itemID)
{
    if(activeChildWindow()==1) // Level editing window
    {
       bool valid=false;
       switch(itemType)
       {
           case ItemTypes::LVL_Block:
           case ItemTypes::LVL_BGO:
           case ItemTypes::LVL_NPC:
                valid=true;

                resetEditmodeButtons();

                activeLvlEditWin()->scene->clearSelection();
                activeLvlEditWin()->changeCursor(leveledit::MODE_PlaceItem);
                activeLvlEditWin()->scene->SwitchEditingMode(LvlScene::MODE_PlacingNew);


                LvlPlacingItems::placingMode = LvlPlacingItems::PMODE_Brush;


                //LvlPlacingItems::squareFillingMode = false;
                ui->actionSquareFill->setChecked(false);
                ui->actionSquareFill->setEnabled(true);

                //LvlPlacingItems::lineMode = false;
                ui->actionLine->setChecked(false);
                ui->actionLine->setEnabled(true);

                //LvlPlacingItems::floodFillingMode = false;
                ui->actionFill->setChecked(false);
                ui->actionFill->setEnabled(true);

                ui->PlacingToolbar->setVisible(true);
                qApp->setActiveWindow(this);
                activeLvlEditWin()->setFocus();
           default:;
       }

       Placing_ShowProperties_lastType = itemType;

       //Switch placing mode
       if(valid)
           switch(itemType)
           {
           case ItemTypes::LVL_Block:
               {
                   ui->action_Placing_ShowProperties->setChecked(true);
                   ui->action_Placing_ShowProperties->setEnabled(true);
                   //Switch scene to placing mode:
                   activeLvlEditWin()->scene->setItemPlacer(0, itemID);

                   //Open block properties toolbox for define placing properties
                   LvlItemProps(0,LvlPlacingItems::blockSet,
                                             FileFormats::dummyLvlBgo(),
                                             FileFormats::dummyLvlNpc(), true);

                   if(GlobalSettings::Placing_dontShowPropertiesBox)
                        ui->ItemProperties->hide();

                   break;
               }
           case ItemTypes::LVL_BGO:
               {
                   ui->action_Placing_ShowProperties->setChecked(true);
                   ui->action_Placing_ShowProperties->setEnabled(true);

                   activeLvlEditWin()->scene->setItemPlacer(1, itemID );

                   LvlItemProps(1,FileFormats::dummyLvlBlock(),
                                             LvlPlacingItems::bgoSet,
                                             FileFormats::dummyLvlNpc(), true);

                   if(GlobalSettings::Placing_dontShowPropertiesBox)
                        ui->ItemProperties->hide();

                   break;
               }
           case ItemTypes::LVL_NPC:
               {
                   ui->action_Placing_ShowProperties->setChecked(true);
                   ui->action_Placing_ShowProperties->setEnabled(true);

                   ui->actionSquareFill->setEnabled(false);
                   ui->actionFill->setEnabled(false);

                   activeLvlEditWin()->scene->setItemPlacer(2, itemID );

                   LvlItemProps(2,FileFormats::dummyLvlBlock(),
                                             FileFormats::dummyLvlBgo(),
                                             LvlPlacingItems::npcSet, true);

                   if(GlobalSettings::Placing_dontShowPropertiesBox)
                        ui->ItemProperties->hide();

                   break;
               }
           }
    }
    else if(activeChildWindow()==3) // World editing window
    {
        bool valid=false;
        ui->action_Placing_ShowProperties->setChecked(false);
        ui->action_Placing_ShowProperties->setEnabled(false);
        switch(itemType)
        {
            case ItemTypes::WLD_Tile:
            case ItemTypes::WLD_Scenery:
            case ItemTypes::WLD_Path:
            case ItemTypes::WLD_Level:
            case ItemTypes::WLD_MusicBox:
                 valid=true;

                 resetEditmodeButtons();

                 ui->PlacingToolbar->setVisible(true);
                 activeWldEditWin()->scene->clearSelection();
                 activeWldEditWin()->changeCursor(WorldEdit::MODE_PlaceItem);
                 activeWldEditWin()->scene->SwitchEditingMode(WldScene::MODE_PlacingNew);

                 WldPlacingItems::placingMode = WldPlacingItems::PMODE_Brush;

                 //WldPlacingItems::squarefillingMode = false;
                 ui->actionSquareFill->setChecked(false);
                 ui->actionSquareFill->setEnabled(true);

                 //WldPlacingItems::lineMode = false;
                 ui->actionLine->setChecked(false);
                 ui->actionLine->setEnabled(true);

                 //WldPlacingItems::floodFillingMode = false;
                 ui->actionFill->setChecked(false);
                 ui->actionFill->setEnabled(true);

                 qApp->setActiveWindow(this);
                 activeWldEditWin()->setFocus();
            default:;
        }

        Placing_ShowProperties_lastType = itemType;

        //Switch placing mode
        if(valid)
            switch(itemType)
            {
                case ItemTypes::WLD_Tile:
                    {
                        activeWldEditWin()->scene->setItemPlacer(0, itemID);
                        WldItemProps(-1, FileFormats::dummyWldLevel(), true);
                        break;
                    }
                case ItemTypes::WLD_Scenery:
                    {
                        activeWldEditWin()->scene->setItemPlacer(1, itemID);
                        WldItemProps(-1, FileFormats::dummyWldLevel(), true);
                        break;
                    }
                case ItemTypes::WLD_Path:\
                    {
                        activeWldEditWin()->scene->setItemPlacer(2, itemID);
                        WldItemProps(-1, FileFormats::dummyWldLevel(), true);
                        break;
                    }
                case ItemTypes::WLD_Level:
                    {
                        ui->action_Placing_ShowProperties->setChecked(true);
                        ui->action_Placing_ShowProperties->setEnabled(true);

                        activeWldEditWin()->scene->setItemPlacer(3, itemID);
                        WldItemProps(0, WldPlacingItems::LevelSet, true);

                        if(GlobalSettings::Placing_dontShowPropertiesBox)
                             ui->WLD_ItemProps->hide();

                        break;
                    }
                case ItemTypes::WLD_MusicBox:
                    {
                        ui->actionSquareFill->setEnabled(false);
                        ui->actionLine->setEnabled(false);
                        ui->actionFill->setEnabled(false);
                        activeWldEditWin()->scene->setItemPlacer(4, itemID);
                        WldItemProps(-1, FileFormats::dummyWldLevel(), true);
                        break;
                    }
            }

    }
}
Example #6
0
void MainWindow::on_actionFill_triggered(bool checked)
{
    resetEditmodeButtons();
    ui->PlacingToolbar->setVisible(true);

    if (activeChildWindow()==1)
    {
        leveledit * edit = activeLvlEditWin();

        LvlPlacingItems::placingMode = (checked ? LvlPlacingItems::PMODE_FloodFill
                                                : LvlPlacingItems::PMODE_Brush );

        ui->actionSquareFill->setChecked(false);
        ui->actionLine->setChecked(false);

        switch(edit->scene->placingItem)
        {
            case LvlScene::PLC_Block:
                edit->scene->setItemPlacer(0, LvlPlacingItems::blockSet.id );
                break;
            case LvlScene::PLC_BGO:
                edit->scene->setItemPlacer(1, LvlPlacingItems::bgoSet.id );
                break;
            default:
                break;
        }
        edit->setFocus();
    }
    else if (activeChildWindow()==3)
    {
        WorldEdit * edit = activeWldEditWin();

        WldPlacingItems::placingMode = (checked ? WldPlacingItems::PMODE_FloodFill
                                                : WldPlacingItems::PMODE_Brush );

        ui->actionSquareFill->setChecked(false);
        ui->actionLine->setChecked(false);

        switch(edit->scene->placingItem)
        {
            case WldScene::PLC_Tile:
               edit->scene->setItemPlacer(0, WldPlacingItems::TileSet.id );
               WriteToLog(QtDebugMsg, QString("Tile Line draw -> %1").arg(checked));

            break;
            case WldScene::PLC_Scene:
               edit->scene->setItemPlacer(1, WldPlacingItems::SceneSet.id );
               WriteToLog(QtDebugMsg, QString("Scenery Line draw -> %1").arg(checked));

            break;
            case WldScene::PLC_Path:
               edit->scene->setItemPlacer(2, WldPlacingItems::PathSet.id );
               WriteToLog(QtDebugMsg, QString("Path Line draw -> %1").arg(checked));

            break;
            case WldScene::PLC_Level:
               edit->scene->setItemPlacer(3, WldPlacingItems::LevelSet.id );
               WriteToLog(QtDebugMsg, QString("Path Line draw -> %1").arg(checked));

            break;

            default: break;
        }
        edit->setFocus();
    }
}