Пример #1
0
//=============================================================================
//
// 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;
    }
}
Пример #2
0
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;
    }
}
Пример #3
0
 void RenderRectangle(const GG::Pt& ul, const GG::Pt& lr) {
     StartUsing();
     GG::FlatRectangle(ul, lr, GG::CLR_WHITE, GG::CLR_WHITE, 0u);
     StopUsing();
 }
Пример #4
0
 void RenderCircle(const GG::Pt& ul, const GG::Pt& lr) {
     StartUsing();
     CircleArc(ul, lr, 0.0, TWO_PI, true);
     StopUsing();
 }