void Ascenseur::run() { if (in_asserv) { if (target == HAUT) { if (bumper_asc_haut.is_on()) { in_asserv = false; send_zeros(); } //else if (tic_odo < TIC_HAUT) //{ // send_monte(); //} else { send_monte(); } } else if (target == BAS) { /*if (tic_odo > TIC_BAS) { send_desc(); }*/ if (bumper_asc_bas.is_on()) { Serial.println("ASS FINI"); send_zeros(); in_asserv = false; } else { send_desc(); } } else { if (tic_odo > target + 10) { send_monte(); } else if (tic_odo < target - 10 ) { send_desc(); } else if (tic_odo < target) { send_maintien_p(); } else if (tic_odo >= target) { send_zeros(); } } } }
void LLXmlImport::onUpdatePrim(LLViewerObject* object) { if(object != NULL) if( !(LLXmlImport::sImportInProgress && LLXmlImport::sExpectedUpdate == object->getID())) return; LLImportObject* from = sPrims[sPrimIndex]; // Volume params LLVolumeParams params = from->getVolume()->getParams(); object->setVolume(params, 0, false); object->sendShapeUpdate(); // Extra params if(from->isFlexible()) { LLFlexibleObjectData flex = *((LLFlexibleObjectData*)from->getParameterEntry(LLNetworkData::PARAMS_FLEXIBLE)); object->setParameterEntry(LLNetworkData::PARAMS_FLEXIBLE, flex, true); object->setParameterEntryInUse(LLNetworkData::PARAMS_FLEXIBLE, TRUE, true); object->parameterChanged(LLNetworkData::PARAMS_FLEXIBLE, true); } else { // send param not in use in case the supply prim has it object->setParameterEntryInUse(LLNetworkData::PARAMS_FLEXIBLE, FALSE, true); object->parameterChanged(LLNetworkData::PARAMS_FLEXIBLE, true); } if (from->getParameterEntryInUse(LLNetworkData::PARAMS_LIGHT)) { LLLightParams light = *((LLLightParams*)from->getParameterEntry(LLNetworkData::PARAMS_LIGHT)); object->setParameterEntry(LLNetworkData::PARAMS_LIGHT, light, true); object->setParameterEntryInUse(LLNetworkData::PARAMS_LIGHT, TRUE, true); object->parameterChanged(LLNetworkData::PARAMS_LIGHT, true); } else { // send param not in use in case the supply prim has it object->setParameterEntryInUse(LLNetworkData::PARAMS_LIGHT, FALSE, true); object->parameterChanged(LLNetworkData::PARAMS_LIGHT, true); } if (from->getParameterEntryInUse(LLNetworkData::PARAMS_SCULPT)) { LLSculptParams sculpt = *((LLSculptParams*)from->getParameterEntry(LLNetworkData::PARAMS_SCULPT)); if(sXmlImportOptions->mReplaceTexture && sTextureReplace.find(sculpt.getSculptTexture()) != sTextureReplace.end()) sculpt.setSculptTexture(sTextureReplace[sculpt.getSculptTexture()]); object->setParameterEntry(LLNetworkData::PARAMS_SCULPT, sculpt, true); object->setParameterEntryInUse(LLNetworkData::PARAMS_SCULPT, TRUE, true); object->parameterChanged(LLNetworkData::PARAMS_SCULPT, true); } else { // send param not in use in case the supply prim has it object->setParameterEntryInUse(LLNetworkData::PARAMS_SCULPT, FALSE, true); object->parameterChanged(LLNetworkData::PARAMS_SCULPT, true); } // Textures U8 te_count = from->getNumTEs(); for (U8 i = 0; i < te_count; i++) { const LLTextureEntry* wat = from->getTE(i); LLTextureEntry te = *wat; if(sXmlImportOptions->mReplaceTexture && sTextureReplace.find(te.getID()) != sTextureReplace.end()) te.setID(sTextureReplace[te.getID()]); object->setTE(i, te); } object->sendTEUpdate(); // Name std::string name = from->mPrimName; if(name.empty()) name = "Object"; //set to Object just incase the import prim isnt Object. gMessageSystem->newMessageFast(_PREHASH_ObjectName); gMessageSystem->nextBlockFast(_PREHASH_AgentData); gMessageSystem->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); gMessageSystem->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); gMessageSystem->nextBlockFast(_PREHASH_ObjectData); gMessageSystem->addU32Fast(_PREHASH_LocalID, object->getLocalID()); gMessageSystem->addStringFast(_PREHASH_Name, name); gAgent.sendReliableMessage(); //Description std::string desc = from->mPrimDescription; if(from->importIsAttachment) //special description tracker { desc = from->mId; } else { if(desc.empty()) desc = "(No Description)"; } send_desc(object->getLocalID(), desc); sExpectedUpdate = LLUUID::null; sPrimIndex++; /////// finished block ///////// if(sPrimIndex >= (int)sPrims.size()) { // TODO: Remove LLSelectMgr dependencies // Link time for(std::map<U32, std::vector<LLViewerObject*> >::iterator itr = sLinkSets.begin();itr != sLinkSets.end();++itr) { std::vector<LLViewerObject*> linkset = (*itr).second; LLSelectMgr::getInstance()->deselectAll(); LLSelectMgr::getInstance()->selectObjectAndFamily(linkset, true); // LLSelectMgr::getInstance()->sendLink(); } if(sId2attachpt.size() == 0) { sImportInProgress = false; std::string msg = "Imported " + sXmlImportOptions->mName; LLChat chat(msg); LLFloaterChat::addChat(chat); LLFloaterImportProgress::update(); } else { // Take attachables into inventory sAttachmentsDone = 0; if(sLinkSets.size() > 0) { U32 ip = gAgent.getRegionHost().getAddress(); U32 port = gAgent.getRegionHost().getPort(); std::vector<LLUUID> roots; roots.resize(sLinkSets.size()); for(std::map<U32, std::vector<LLViewerObject*> >::iterator itr = sLinkSets.begin();itr != sLinkSets.end();++itr) { LLUUID id = LLUUID::null; LLViewerObjectList::getUUIDFromLocal(id,itr->first,ip,port); if(id.notNull()) { roots.push_back(id); } } } finish_link(); } } else { LLFloaterImportProgress::update(); rez_supply(); } }