예제 #1
0
void WLD_SetPoint::unloadData()
{
    if(!sceneCreated) return;

    stopAutoUpdateTimer();
    //LvlMusPlay::musicForceReset = true;
    //MainWinConnect::pMainWin->setMusicButton(false);
    //MainWinConnect::pMainWin->setMusic(false);

    scene->setMessageBoxItem(false);

    scene->clear();
    WriteToLog(QtDebugMsg, "!<-Cleared->!");
    scene->uTiles.clear();
    scene->uScenes.clear();
    scene->uPaths.clear();
    scene->uLevels.clear();

    WriteToLog(QtDebugMsg, "!<-Delete animators->!");
    while(! scene->animates_Tiles.isEmpty() )
    {
        SimpleAnimator* tmp = scene->animates_Tiles.first();
        scene->animates_Tiles.pop_front();
        if(tmp!=NULL) delete tmp;
    }
    while(! scene->animates_Scenery.isEmpty() )
    {
        SimpleAnimator* tmp = scene->animates_Scenery.first();
        scene->animates_Scenery.pop_front();
        if(tmp!=NULL) delete tmp;
    }
    while(! scene->animates_Paths.isEmpty() )
    {
        SimpleAnimator* tmp = scene->animates_Paths.first();
        scene->animates_Paths.pop_front();
        if(tmp!=NULL) delete tmp;
    }
    while(! scene->animates_Levels.isEmpty() )
    {
        SimpleAnimator* tmp = scene->animates_Levels.first();
        scene->animates_Levels.pop_front();
        if(tmp!=NULL) delete tmp;
    }

    WriteToLog(QtDebugMsg, "!<-Delete scene->!");
    delete scene;
    sceneCreated=false;
    WriteToLog(QtDebugMsg, "!<-Deleted->!");
}
예제 #2
0
void WorldEdit::closeEvent(QCloseEvent *event)
{
    if(!sceneCreated)
    {
        event->accept();
        return;
    }
    else
        MainWinConnect::pMainWin->on_actionSelect_triggered();

    if(maybeSave()) {
        stopAutoUpdateTimer();
        //LvlMusPlay::musicForceReset = true;
        //MainWinConnect::pMainWin->setMusicButton(false);
        //MainWinConnect::pMainWin->setMusic(false);

//        scene->clear();
//        WriteToLog(QtDebugMsg, "!<-Cleared->!");
//        scene->uBGOs.clear();
//        scene->uBGs.clear();
//        scene->uBlocks.clear();
//        scene->uNPCs.clear();

//        WriteToLog(QtDebugMsg, "!<-Delete animators->!");
//        while(! scene->animates_BGO.isEmpty() )
//        {
//            SimpleAnimator* tmp = scene->animates_BGO.first();
//            scene->animates_BGO.pop_front();
//            if(tmp!=NULL) delete tmp;
//        }
//        while(! scene->animates_Blocks.isEmpty() )
//        {
//            SimpleAnimator* tmp = scene->animates_Blocks.first();
//            scene->animates_Blocks.pop_front();
//            if(tmp!=NULL) delete tmp;
//        }
//        WriteToLog(QtDebugMsg, "!<-Delete scene->!");
//        delete scene;
        sceneCreated=false;
        WriteToLog(QtDebugMsg, "!<-Deleted->!");
        //ui->graphicsView->cl
        event->accept();
    } else {
        event->ignore();
    }
}