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; } }
bool CVehicleUpgrades::AddUpgrade ( unsigned short usUpgrade ) { if ( IsUpgradeCompatible ( usUpgrade ) ) { unsigned char ucSlot; if ( GetSlotFromUpgrade ( usUpgrade, ucSlot ) ) { m_SlotStates [ ucSlot ] = usUpgrade; return true; } } return false; }
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; }