//============================================================================= // // TODO: verify with skillmod // void SurveyTool::handleUIEvent(uint32 action,int32 element,BString inputStr,UIWindow* window) { if(!action && element != -1) { uint32 range = (element + 1) * 64; uint32 points = 3; switch(element) { case 1: case 2: points = 4; break; case 3: case 4: points = 5; break; } setInternalAttribute("survey_range",boost::lexical_cast<std::string>(range)); setInternalAttribute("survey_points",boost::lexical_cast<std::string>(points)); gWorldManager->getDatabase()->ExecuteSqlAsync(NULL,NULL,"UPDATE item_attributes SET value=%u WHERE item_id=%"PRIu64" AND attribute_id=6",range,mId); gWorldManager->getDatabase()->ExecuteSqlAsync(NULL,NULL,"UPDATE item_attributes SET value=%u WHERE item_id=%"PRIu64" AND attribute_id=7",points,mId); } else // make the player set the range before they can use the tool return; PlayerObject* playerObject = window->getOwner(); if(mSampleAfterSet) { StartUsing(playerObject); mSampleAfterSet = false; } }
void SurveyTool::handleObjectMenuSelect(uint8 messageType,Object* srcObject) { PlayerObject* playerObject = dynamic_cast<PlayerObject*>(srcObject); if( !(playerObject->isConnected()) || playerObject->isDead()) return; // bring up the surve ui switch(messageType) { case radId_itemUse: { //We only need to check this when using the tool's functions! if(playerObject->getPerformingState() != PlayerPerformance_None || playerObject->isDead()) { gMessageLib->SendSystemMessage(::common::OutOfBand("error_message", "survey_cant"), playerObject); return; } // verify we are able to use this if(!(playerObject->verifyAbility(opOCsurvey))) { gMessageLib->SendSystemMessage(::common::OutOfBand("error_message", "insufficient_skill"), playerObject); return; } if(playerObject->getParentId()) { gMessageLib->SendSystemMessage(::common::OutOfBand("error_message", "survey_in_structure"), playerObject); return; } //check whether the tool is initialized already - if not initialize int32 range = getInternalAttribute<int32>("survey_range"); if(range < 0 ) { _createRangeMenu(playerObject, true); return; } StartUsing(playerObject); } break; case radId_serverSurveyToolRange: { if(!(playerObject->verifyAbility(opOCsurvey))) { gMessageLib->SendSystemMessage(::common::OutOfBand("error_message", "insufficient_skill"), playerObject); return; } _createRangeMenu(playerObject); } break; } }
void RenderRectangle(const GG::Pt& ul, const GG::Pt& lr) { StartUsing(); GG::FlatRectangle(ul, lr, GG::CLR_WHITE, GG::CLR_WHITE, 0u); StopUsing(); }
void RenderCircle(const GG::Pt& ul, const GG::Pt& lr) { StartUsing(); CircleArc(ul, lr, 0.0, TWO_PI, true); StopUsing(); }