void LLTracker::setLandmarkVisited() { // poke the inventory item if (!mTrackedLandmarkItemID.isNull()) { LLInventoryItem* i = gInventory.getItem( mTrackedLandmarkItemID ); LLViewerInventoryItem* item = (LLViewerInventoryItem*)i; if ( item && !(item->getFlags()&LLInventoryItem::II_FLAGS_LANDMARK_VISITED)) { U32 flags = item->getFlags(); flags |= LLInventoryItem::II_FLAGS_LANDMARK_VISITED; item->setFlags(flags); LLMessageSystem* msg = gMessageSystem; msg->newMessage("ChangeInventoryItemFlags"); msg->nextBlock("AgentData"); msg->addUUID("AgentID", gAgent.getID()); msg->addUUID("SessionID", gAgent.getSessionID()); msg->nextBlock("InventoryData"); msg->addUUID("ItemID", mTrackedLandmarkItemID); msg->addU32("Flags", flags); gAgent.sendReliableMessage(); LLInventoryModel::LLCategoryUpdate up(item->getParentUUID(), 0); gInventory.accountForUpdate(up); // need to communicate that the icon needs to change... gInventory.addChangedMask(LLInventoryObserver::INTERNAL, item->getUUID()); gInventory.notifyObservers(); } } }