Example #1
0
void CVehicleUpgrades::ForceAddUpgrade ( unsigned short usUpgrade )
{
    unsigned char ucSlot;
    if ( GetSlotFromUpgrade ( usUpgrade, ucSlot ) )
    {
        CVehicle* pVehicle = m_pVehicle->GetGameVehicle ();
        if ( pVehicle )
        {
            // Grab the upgrade model
            CModelInfo* pModelInfo = g_pGame->GetModelInfo ( usUpgrade );
            if ( pModelInfo )
            {
                if ( !g_pGame->IsASyncLoadingEnabled () || !pModelInfo->IsLoaded () )
                {
                    // Request and load now
                    pModelInfo->RequestVehicleUpgrade ();

                    g_pGame->GetStreaming()->LoadAllRequestedModels ();
                }
                // Add the upgrade
                pVehicle->AddVehicleUpgrade ( usUpgrade );
            }
        }

        // Add it to the slot
        m_SlotStates [ ucSlot ] = usUpgrade;
    }
}
Example #2
0
bool CVehicleUpgrades::AddUpgrade ( unsigned short usUpgrade )
{
    if ( IsUpgradeCompatible ( usUpgrade ) )
    {
        unsigned char ucSlot;
        if ( GetSlotFromUpgrade ( usUpgrade, ucSlot ) )
        {
            m_SlotStates [ ucSlot ] = usUpgrade;

            return true;
        }
    }
    return false;
}
Example #3
0
bool CVehicleUpgrades::RemoveUpgrade ( unsigned short usUpgrade )
{
    if ( HasUpgrade ( usUpgrade ) )
    {
        if ( m_pVehicle )
        {
            CVehicle* pVehicle = m_pVehicle->GetGameVehicle ();
            if ( pVehicle )
            {
                pVehicle->RemoveVehicleUpgrade ( usUpgrade );
            }

            unsigned char ucSlot;
            if ( GetSlotFromUpgrade ( usUpgrade, ucSlot ) )
            {
                m_SlotStates [ ucSlot ] = 0;
            }

            return true;
        }
    }

    return false;
}