/**
 *  allocPhiFunc
 *
 *  This function recursively check the node that require more than
 *  a phiFunction and place the required phiFunction for these subscript
 *
 *****************************************************/
void allocPhiFunc(Node** thisNode){
  (*thisNode)->visitFlag |= 2;
  LinkedList* liveList    = getAllLiveList(thisNode, NULL);
  resetFlag(thisNode, 2);
  
  ListElement* livePtr    = liveList->head;
  LinkedList* listA, *listB;
  Node *nodeAPtr, *nodeBPtr, *rootPtr;
  Subscript* subsPtr, condtSubs;
  int i;
  if((*thisNode)->directDom->length == 2){
    nodeBPtr = (*thisNode)->directDom->head->node;
    nodeAPtr = (*thisNode)->directDom->head->next->node;
    listA = getListTillNode(nodeAPtr);
    listB = getListTillNode(nodeBPtr);
    Expression* phiFunction;
    while(livePtr != NULL){
      subsPtr     = getLargestIndex(listB, livePtr->node);
      phiFunction = getPhiFunction(listA, listB, subsPtr);
      condtSubs   = getCondition((*thisNode)->imdDom);
      phiFunction->condt = condtSubs;
      addListFirst((*thisNode)->block, phiFunction);
      
      livePtr = livePtr->next;
    }
  }
  
  for(i = 0; i < (*thisNode)->numOfChild; i++)
    if(((*thisNode)->children[i]->visitFlag & 2) == 0)
      allocPhiFunc(&(*thisNode)->children[i]);
}
Example #2
0
void Flags::forceFlag(unsigned int flagIndex, bool set) {
	if (set) {
		setFlag(flagIndex);
	}else {
		resetFlag(flagIndex);
	}
}
//-----------Task to keep servos locked
task LockServos()
{
	while(true)
	{
		resetHang();
		resetFlag();
	}
}
void PositionAnimator::beforeDraw(gfx::Engine& painter )
{
	if( enabled() && parent() && isFlag( isActive ) )
	{
    if( fabs(_d->currentPos.x() - _d->stopPos.x() ) > 0.5f 
        || fabs( _d->currentPos.y() - _d->stopPos.y() ) > 0.5f )
		{
			if( _d->stopPos.x() == ANIMATOR_UNUSE_VALUE )
				_d->stopPos.setX( int(_d->currentPos.x() ) );
			if( _d->stopPos.y() == ANIMATOR_UNUSE_VALUE )
				_d->stopPos.setY( int(_d->currentPos.y() ) );

      float fps = 1000.f / float( DateTime::elapsedTime() - _d->lastTimeUpdate + 1 );
      _d->lastTimeUpdate = DateTime::elapsedTime();
			float step = _d->stopPos.getDistanceFrom( _d->startPos ) / float( fps * ( _d->time / 1000.f ) );
			float offsetX = _d->stopPos.x() - _d->currentPos.x();
			float signX = offsetX < 0 ? -1.f : 1.f;
			float offsetY = _d->stopPos.y() - _d->currentPos.y();
			float signY = offsetY < 0 ? -1.f : 1.f;

      if( _d->speed.x() != 0 || _d->speed.y() != 0 )
      {
        offsetX = _d->speed.x();
        offsetY = _d->speed.y();
      }

      _d->currentPos += PointF( signX * std::min<float>( step, fabs( offsetX ) ),
                                signY * std::min<float>( step, fabs( offsetY ) ) );

			parent()->setPosition( _d->currentPos.toPoint() );
		}
		else
		{
			resetFlag( isActive );

			if( isFlag( debug ) )
			{
				parent()->setPosition( _d->startPos );
        return;
			}

			parent()->setVisible( isFlag( showParent ) );
      _afterFinished();
		}
	}

  Widget::beforeDraw( painter );
}
void MusicWebRadioObject::dataDownloadFinished()
{
    QString fileName = PLUGINS_DIR_FULL + MusicUtils::Algorithm::mdII(DOWNLOAD_NAME, false);
    if(MusicExtractWrap::outputData(fileName))
    {
        QFile::remove(fileName);
        QtConcurrent::run([&]
        {
            int code = QProcess::execute(QString("%1radio/%2").arg(PLUGINS_DIR_FULL).arg(MusicUtils::Algorithm::mdII(RADIO_NAME, false)));
            if(code != -2 && code != -1)
            {
                emit resetFlag(MusicObject::TT_WebRadio);
            }
        });
    }
}
Example #6
0
double lessConnectivity(int N){

    int conex = TRUE;
    Grafo *newInst;
    double lessEdge = sqrt(2), maxFloor = 0, x = 1;

    newInst = malloc(sizeof(newInst));

    newInst->graphList = createList(&N);


    while(x > 0.0021 ){
        conex = searchEdge(newInst->graphList, N);

        resetFlag (newInst->graphList,N);

        if (conex == TRUE){
            if (edge < lessEdge)
                lessEdge = edge;

            edge = edge*0.9;
        }
        else{
            if (edge > maxFloor)
                maxFloor = edge;
            edge = edge*0.05 + edge;
        }
        x = lessEdge-maxFloor;
    }


    seed = (ceil(newInst->graphList[0].x*newInst->graphList[0].y*rand()));
    free(newInst);
    return lessEdge;



}
Example #7
0
void Tile::resetTileFlags(const Item* item)
{
	const ItemType& it = Item::items[item->getID()];
	if (it.floorChange != 0) {
		resetFlag(TILESTATE_FLOORCHANGE);
	}

	if (item->hasProperty(CONST_PROP_BLOCKSOLID) && !hasProperty(item, CONST_PROP_BLOCKSOLID)) {
		resetFlag(TILESTATE_BLOCKSOLID);
	}

	if (item->hasProperty(CONST_PROP_IMMOVABLEBLOCKSOLID) && !hasProperty(item, CONST_PROP_IMMOVABLEBLOCKSOLID)) {
		resetFlag(TILESTATE_IMMOVABLEBLOCKSOLID);
	}

	if (item->hasProperty(CONST_PROP_BLOCKPATH) && !hasProperty(item, CONST_PROP_BLOCKPATH)) {
		resetFlag(TILESTATE_BLOCKPATH);
	}

	if (item->hasProperty(CONST_PROP_NOFIELDBLOCKPATH) && !hasProperty(item, CONST_PROP_NOFIELDBLOCKPATH)) {
		resetFlag(TILESTATE_NOFIELDBLOCKPATH);
	}

	if (item->hasProperty(CONST_PROP_IMMOVABLEBLOCKPATH) && !hasProperty(item, CONST_PROP_IMMOVABLEBLOCKPATH)) {
		resetFlag(TILESTATE_IMMOVABLEBLOCKPATH);
	}

	if (item->hasProperty(CONST_PROP_IMMOVABLENOFIELDBLOCKPATH) && !hasProperty(item, CONST_PROP_IMMOVABLENOFIELDBLOCKPATH)) {
		resetFlag(TILESTATE_IMMOVABLENOFIELDBLOCKPATH);
	}

	if (item->getTeleport()) {
		resetFlag(TILESTATE_TELEPORT);
	}

	if (item->getMagicField()) {
		resetFlag(TILESTATE_MAGICFIELD);
	}

	if (item->getMailbox()) {
		resetFlag(TILESTATE_MAILBOX);
	}

	if (item->getTrashHolder()) {
		resetFlag(TILESTATE_TRASHHOLDER);
	}

	if (item->getBed()) {
		resetFlag(TILESTATE_BED);
	}

	const Container* container = item->getContainer();
	if (container && container->getDepotLocker()) {
		resetFlag(TILESTATE_DEPOT);
	}

	if (item->hasProperty(CONST_PROP_SUPPORTHANGABLE)) {
		resetFlag(TILESTATE_SUPPORTS_HANGABLE);
	}
}
Example #8
0
void Tile::resetTileFlags(const Item* item)
{
	if (item->floorChangeDown()) {
		resetFlag(TILESTATE_FLOORCHANGE);
		resetFlag(TILESTATE_FLOORCHANGE_DOWN);
	}

	if (item->floorChangeNorth()) {
		resetFlag(TILESTATE_FLOORCHANGE);
		resetFlag(TILESTATE_FLOORCHANGE_NORTH);
	}

	if (item->floorChangeSouth()) {
		resetFlag(TILESTATE_FLOORCHANGE);
		resetFlag(TILESTATE_FLOORCHANGE_SOUTH);
	}

	if (item->floorChangeEast()) {
		resetFlag(TILESTATE_FLOORCHANGE);
		resetFlag(TILESTATE_FLOORCHANGE_EAST);
	}

	if (item->floorChangeWest()) {
		resetFlag(TILESTATE_FLOORCHANGE);
		resetFlag(TILESTATE_FLOORCHANGE_WEST);
	}

	if (item->floorChangeSouthAlt()) {
		resetFlag(TILESTATE_FLOORCHANGE);
		resetFlag(TILESTATE_FLOORCHANGE_SOUTH_ALT);
	}

	if (item->floorChangeEastAlt()) {
		resetFlag(TILESTATE_FLOORCHANGE);
		resetFlag(TILESTATE_FLOORCHANGE_EAST_ALT);
	}

	if (item->hasProperty(CONST_PROP_BLOCKSOLID) && !hasProperty(item, CONST_PROP_BLOCKSOLID)) {
		resetFlag(TILESTATE_BLOCKSOLID);
	}

	if (item->hasProperty(CONST_PROP_IMMOVABLEBLOCKSOLID) && !hasProperty(item, CONST_PROP_IMMOVABLEBLOCKSOLID)) {
		resetFlag(TILESTATE_IMMOVABLEBLOCKSOLID);
	}

	if (item->hasProperty(CONST_PROP_BLOCKPATH) && !hasProperty(item, CONST_PROP_BLOCKPATH)) {
		resetFlag(TILESTATE_BLOCKPATH);
	}

	if (item->hasProperty(CONST_PROP_NOFIELDBLOCKPATH) && !hasProperty(item, CONST_PROP_NOFIELDBLOCKPATH)) {
		resetFlag(TILESTATE_NOFIELDBLOCKPATH);
	}

	if (item->hasProperty(CONST_PROP_IMMOVABLEBLOCKPATH) && !hasProperty(item, CONST_PROP_IMMOVABLEBLOCKPATH)) {
		resetFlag(TILESTATE_IMMOVABLEBLOCKPATH);
	}

	if (item->hasProperty(CONST_PROP_IMMOVABLENOFIELDBLOCKPATH) && !hasProperty(item, CONST_PROP_IMMOVABLENOFIELDBLOCKPATH)) {
		resetFlag(TILESTATE_IMMOVABLENOFIELDBLOCKPATH);
	}

	if (item->getTeleport()) {
		resetFlag(TILESTATE_TELEPORT);
	}

	if (item->getMagicField()) {
		resetFlag(TILESTATE_MAGICFIELD);
	}

	if (item->getMailbox()) {
		resetFlag(TILESTATE_MAILBOX);
	}

	if (item->getTrashHolder()) {
		resetFlag(TILESTATE_TRASHHOLDER);
	}

	if (item->getBed()) {
		resetFlag(TILESTATE_BED);
	}

	const Container* container = item->getContainer();
	if (container && container->getDepotLocker()) {
		resetFlag(TILESTATE_DEPOT);
	}

	if (item->hasProperty(CONST_PROP_SUPPORTHANGABLE)) {
		resetFlag(TILESTATE_SUPPORTS_HANGABLE);
	}
}
Example #9
0
void Tile::updateTileFlags(Item* item, bool removing)
{
	if (!removing) {
		//!removing is adding an item to the tile
		if (!hasFlag(TILESTATE_FLOORCHANGE)) {
			if (item->floorChangeDown()) {
				setFlag(TILESTATE_FLOORCHANGE);
				setFlag(TILESTATE_FLOORCHANGE_DOWN);
			}

			if (item->floorChangeNorth()) {
				setFlag(TILESTATE_FLOORCHANGE);
				setFlag(TILESTATE_FLOORCHANGE_NORTH);
			}

			if (item->floorChangeSouth()) {
				setFlag(TILESTATE_FLOORCHANGE);
				setFlag(TILESTATE_FLOORCHANGE_SOUTH);
			}

			if (item->floorChangeEast()) {
				setFlag(TILESTATE_FLOORCHANGE);
				setFlag(TILESTATE_FLOORCHANGE_EAST);
			}

			if (item->floorChangeWest()) {
				setFlag(TILESTATE_FLOORCHANGE);
				setFlag(TILESTATE_FLOORCHANGE_WEST);
			}

			if (item->floorChangeSouthAlt()) {
				setFlag(TILESTATE_FLOORCHANGE);
				setFlag(TILESTATE_FLOORCHANGE_SOUTH_ALT);
			}

			if (item->floorChangeEastAlt()) {
				setFlag(TILESTATE_FLOORCHANGE);
				setFlag(TILESTATE_FLOORCHANGE_EAST_ALT);
			}
		}

		if (item->hasProperty(IMMOVABLEBLOCKSOLID)) {
			setFlag(TILESTATE_IMMOVABLEBLOCKSOLID);
		}

		if (item->hasProperty(BLOCKPATH)) {
			setFlag(TILESTATE_BLOCKPATH);
		}

		if (item->hasProperty(NOFIELDBLOCKPATH)) {
			setFlag(TILESTATE_NOFIELDBLOCKPATH);
		}

		if (item->hasProperty(IMMOVABLENOFIELDBLOCKPATH)) {
			setFlag(TILESTATE_IMMOVABLENOFIELDBLOCKPATH);
		}

		if (item->getTeleport()) {
			setFlag(TILESTATE_TELEPORT);
		}

		if (item->getMagicField()) {
			setFlag(TILESTATE_MAGICFIELD);
		}

		if (item->getMailbox()) {
			setFlag(TILESTATE_MAILBOX);
		}

		if (item->getTrashHolder()) {
			setFlag(TILESTATE_TRASHHOLDER);
		}

		if (item->hasProperty(BLOCKSOLID)) {
			setFlag(TILESTATE_BLOCKSOLID);
		}

		if (item->getBed()) {
			setFlag(TILESTATE_BED);
		}

		Container* container = item->getContainer();
		if (container && container->getDepotLocker()) {
			setFlag(TILESTATE_DEPOT);
		}

		if (item->hasProperty(SUPPORTHANGABLE)) {
			setFlag(TILESTATE_SUPPORTS_HANGABLE);
		}
	} else {
		if (item->floorChangeDown()) {
			resetFlag(TILESTATE_FLOORCHANGE);
			resetFlag(TILESTATE_FLOORCHANGE_DOWN);
		}

		if (item->floorChangeNorth()) {
			resetFlag(TILESTATE_FLOORCHANGE);
			resetFlag(TILESTATE_FLOORCHANGE_NORTH);
		}

		if (item->floorChangeSouth()) {
			resetFlag(TILESTATE_FLOORCHANGE);
			resetFlag(TILESTATE_FLOORCHANGE_SOUTH);
		}

		if (item->floorChangeEast()) {
			resetFlag(TILESTATE_FLOORCHANGE);
			resetFlag(TILESTATE_FLOORCHANGE_EAST);
		}

		if (item->floorChangeWest()) {
			resetFlag(TILESTATE_FLOORCHANGE);
			resetFlag(TILESTATE_FLOORCHANGE_WEST);
		}

		if (item->floorChangeSouthAlt()) {
			resetFlag(TILESTATE_FLOORCHANGE);
			resetFlag(TILESTATE_FLOORCHANGE_SOUTH_ALT);
		}

		if (item->floorChangeEastAlt()) {
			resetFlag(TILESTATE_FLOORCHANGE);
			resetFlag(TILESTATE_FLOORCHANGE_EAST_ALT);
		}

		if (item->hasProperty(BLOCKSOLID) && !hasProperty(item, BLOCKSOLID)) {
			resetFlag(TILESTATE_BLOCKSOLID);
		}

		if (item->hasProperty(IMMOVABLEBLOCKSOLID) && !hasProperty(item, IMMOVABLEBLOCKSOLID)) {
			resetFlag(TILESTATE_IMMOVABLEBLOCKSOLID);
		}

		if (item->hasProperty(BLOCKPATH) && !hasProperty(item, BLOCKPATH)) {
			resetFlag(TILESTATE_BLOCKPATH);
		}

		if (item->hasProperty(NOFIELDBLOCKPATH) && !hasProperty(item, NOFIELDBLOCKPATH)) {
			resetFlag(TILESTATE_NOFIELDBLOCKPATH);
		}

		if (item->hasProperty(IMMOVABLEBLOCKPATH) && !hasProperty(item, IMMOVABLEBLOCKPATH)) {
			resetFlag(TILESTATE_IMMOVABLEBLOCKPATH);
		}

		if (item->hasProperty(IMMOVABLENOFIELDBLOCKPATH) && !hasProperty(item, IMMOVABLENOFIELDBLOCKPATH)) {
			resetFlag(TILESTATE_IMMOVABLENOFIELDBLOCKPATH);
		}

		if (item->getTeleport()) {
			resetFlag(TILESTATE_TELEPORT);
		}

		if (item->getMagicField()) {
			resetFlag(TILESTATE_MAGICFIELD);
		}

		if (item->getMailbox()) {
			resetFlag(TILESTATE_MAILBOX);
		}

		if (item->getTrashHolder()) {
			resetFlag(TILESTATE_TRASHHOLDER);
		}

		if (item->getBed()) {
			resetFlag(TILESTATE_BED);
		}

		Container* container = item->getContainer();
		if (container && container->getDepotLocker()) {
			resetFlag(TILESTATE_DEPOT);
		}

		if (item->hasProperty(SUPPORTHANGABLE)) {
			resetFlag(TILESTATE_SUPPORTS_HANGABLE);
		}
	}
}
void MusicAudioRecorderWidget::closeEvent(QCloseEvent *event)
{
    MusicAbstractMoveWidget::closeEvent(event);
    emit resetFlag(MusicObject::TT_AudioRecord);
}
Example #11
0
void Tile::updateTileFlags(Item* item, bool remove)
{
	if(!remove)
	{
		if(!hasFlag(TILESTATE_FLOORCHANGE))
		{
			if(item->floorChange(CHANGE_DOWN))
			{
				setFlag(TILESTATE_FLOORCHANGE);
				setFlag(TILESTATE_FLOORCHANGE_DOWN);
			}

			if(item->floorChange(CHANGE_NORTH))
			{
				setFlag(TILESTATE_FLOORCHANGE);
				setFlag(TILESTATE_FLOORCHANGE_NORTH);
			}

			if(item->floorChange(CHANGE_SOUTH))
			{
				setFlag(TILESTATE_FLOORCHANGE);
				setFlag(TILESTATE_FLOORCHANGE_SOUTH);
			}

			if(item->floorChange(CHANGE_EAST))
			{
				setFlag(TILESTATE_FLOORCHANGE);
				setFlag(TILESTATE_FLOORCHANGE_EAST);
			}

			if(item->floorChange(CHANGE_WEST))
			{
				setFlag(TILESTATE_FLOORCHANGE);
				setFlag(TILESTATE_FLOORCHANGE_WEST);
			}

			if(item->floorChange(CHANGE_NORTH_EX))
			{
				setFlag(TILESTATE_FLOORCHANGE);
				setFlag(TILESTATE_FLOORCHANGE_NORTH_EX);
			}

			if(item->floorChange(CHANGE_SOUTH_EX))
			{
				setFlag(TILESTATE_FLOORCHANGE);
				setFlag(TILESTATE_FLOORCHANGE_SOUTH_EX);
			}

			if(item->floorChange(CHANGE_EAST_EX))
			{
				setFlag(TILESTATE_FLOORCHANGE);
				setFlag(TILESTATE_FLOORCHANGE_EAST_EX);
			}

			if(item->floorChange(CHANGE_WEST_EX))
			{
				setFlag(TILESTATE_FLOORCHANGE);
				setFlag(TILESTATE_FLOORCHANGE_WEST_EX);
			}
		}

		if(item->getTeleport())
			setFlag(TILESTATE_TELEPORT);

		if(item->getMagicField())
			setFlag(TILESTATE_MAGICFIELD);

		if(item->getMailbox())
			setFlag(TILESTATE_MAILBOX);

		if(item->getTrashHolder())
			setFlag(TILESTATE_TRASHHOLDER);

		if(item->getBed())
			setFlag(TILESTATE_BED);

		if(item->getContainer() && item->getContainer()->getDepotLocker())
			setFlag(TILESTATE_DEPOT);

		if(item->hasProperty(BLOCKSOLID))
			setFlag(TILESTATE_BLOCKSOLID);

		if(item->hasProperty(IMMOVABLEBLOCKSOLID))
			setFlag(TILESTATE_IMMOVABLEBLOCKSOLID);

		if(item->hasProperty(BLOCKPATH))
			setFlag(TILESTATE_BLOCKPATH);

		if(item->hasProperty(NOFIELDBLOCKPATH))
			setFlag(TILESTATE_NOFIELDBLOCKPATH);

		if(item->hasProperty(IMMOVABLENOFIELDBLOCKPATH))
			setFlag(TILESTATE_IMMOVABLENOFIELDBLOCKPATH);
	}
	else
	{
		if(item->floorChange(CHANGE_DOWN))
		{
			resetFlag(TILESTATE_FLOORCHANGE);
			resetFlag(TILESTATE_FLOORCHANGE_DOWN);
		}

		if(item->floorChange(CHANGE_NORTH))
		{
			resetFlag(TILESTATE_FLOORCHANGE);
			resetFlag(TILESTATE_FLOORCHANGE_NORTH);
		}

		if(item->floorChange(CHANGE_SOUTH))
		{
			resetFlag(TILESTATE_FLOORCHANGE);
			resetFlag(TILESTATE_FLOORCHANGE_SOUTH);
		}

		if(item->floorChange(CHANGE_EAST))
		{
			resetFlag(TILESTATE_FLOORCHANGE);
			resetFlag(TILESTATE_FLOORCHANGE_EAST);
		}

		if(item->floorChange(CHANGE_WEST))
		{
			resetFlag(TILESTATE_FLOORCHANGE);
			resetFlag(TILESTATE_FLOORCHANGE_WEST);
		}

		if(item->floorChange(CHANGE_NORTH_EX))
		{
			resetFlag(TILESTATE_FLOORCHANGE);
			resetFlag(TILESTATE_FLOORCHANGE_NORTH_EX);
		}

		if(item->floorChange(CHANGE_SOUTH_EX))
		{
			resetFlag(TILESTATE_FLOORCHANGE);
			resetFlag(TILESTATE_FLOORCHANGE_SOUTH_EX);
		}

		if(item->floorChange(CHANGE_EAST_EX))
		{
			resetFlag(TILESTATE_FLOORCHANGE);
			resetFlag(TILESTATE_FLOORCHANGE_EAST_EX);
		}

		if(item->floorChange(CHANGE_WEST_EX))
		{
			resetFlag(TILESTATE_FLOORCHANGE);
			resetFlag(TILESTATE_FLOORCHANGE_WEST_EX);
		}

		if(item->getTeleport())
			resetFlag(TILESTATE_TELEPORT);

		if(item->getMagicField())
			resetFlag(TILESTATE_MAGICFIELD);

		if(item->getMailbox())
			resetFlag(TILESTATE_MAILBOX);

		if(item->getTrashHolder())
			resetFlag(TILESTATE_TRASHHOLDER);

		if(item->getBed())
			resetFlag(TILESTATE_BED);

		if(item->getContainer() && item->getContainer()->getDepotLocker())
			resetFlag(TILESTATE_DEPOT);

		if(item->hasProperty(BLOCKSOLID) && !hasProperty(item, BLOCKSOLID))
			resetFlag(TILESTATE_BLOCKSOLID);

		if(item->hasProperty(IMMOVABLEBLOCKSOLID) && !hasProperty(item, IMMOVABLEBLOCKSOLID))
			resetFlag(TILESTATE_IMMOVABLEBLOCKSOLID);

		if(item->hasProperty(BLOCKPATH) && !hasProperty(item, BLOCKPATH))
			resetFlag(TILESTATE_BLOCKPATH);

		if(item->hasProperty(NOFIELDBLOCKPATH) && !hasProperty(item, NOFIELDBLOCKPATH))
			resetFlag(TILESTATE_NOFIELDBLOCKPATH);

		if(item->hasProperty(IMMOVABLEBLOCKPATH) && !hasProperty(item, IMMOVABLEBLOCKPATH))
			resetFlag(TILESTATE_IMMOVABLEBLOCKPATH);

		if(item->hasProperty(IMMOVABLENOFIELDBLOCKPATH) && !hasProperty(item, IMMOVABLENOFIELDBLOCKPATH))
			resetFlag(TILESTATE_IMMOVABLENOFIELDBLOCKPATH);
	}
}