diff --git a/src/control/CarCtrl.cpp b/src/control/CarCtrl.cpp index 2c5751a3..66e29b6c 100644 --- a/src/control/CarCtrl.cpp +++ b/src/control/CarCtrl.cpp @@ -606,14 +606,18 @@ CCarCtrl::ChooseModel(CZoneInfo* pZone, CVector* pPos, int* pClass) { continue; } - for (int i = 0; i < NUM_GANG_CAR_CLASSES; i++) { + int j; + for (j = 0; j < NUM_GANG_CAR_CLASSES; j++) { if (rnd < pZone->gangThreshold[i]) { - *pClass = i + FIRST_GANG_CAR_RATING; - model = ChooseGangCarModel(i); - continue; + *pClass = j + FIRST_GANG_CAR_RATING; + model = ChooseGangCarModel(j); + break; } } + if (j != NUM_GANG_CAR_CLASSES) + continue; + *pClass = ChooseCarRating(pZone); model = ChooseCarModel(*pClass); } diff --git a/src/core/Streaming.cpp b/src/core/Streaming.cpp index 6620065c..c7bd961c 100644 --- a/src/core/Streaming.cpp +++ b/src/core/Streaming.cpp @@ -1342,10 +1342,11 @@ CStreaming::StreamZoneModels(const CVector &pos) for(i = 0; i < NUMMODELSPERPEDGROUP; i++){ if(CPopulation::ms_pPedGroups[ms_currentPedGrp].models[i] == -1) break; - RequestModel(CPopulation::ms_pPedGroups[ms_currentPedGrp].models[i], STREAMFLAGS_DONT_REMOVE); + RequestModel(CPopulation::ms_pPedGroups[ms_currentPedGrp].models[i], STREAMFLAGS_DEPENDENCY); } } RequestModel(MI_MALE01, STREAMFLAGS_DONT_REMOVE); + //RequestModel(MI_HMOCA, STREAMFLAGS_DONT_REMOVE); gangsToLoad = 0; gangCarsToLoad = 0; @@ -1369,8 +1370,8 @@ CStreaming::StreamZoneModels(const CVector &pos) bit = 1<m_nVehicleMI < 0) - continue; + // TODO(MIAMI): check this + if(CGangs::GetGangInfo(i)->m_nVehicleMI < 0) + continue; - if(gangCarsToLoad & bit && (ms_loadedGangCars & bit) == 0){ - RequestModel(CGangs::GetGangInfo(i)->m_nVehicleMI, STREAMFLAGS_DONT_REMOVE); + if((gangCarsToLoad & bit) && (ms_loadedGangCars & bit) == 0){ + RequestModel(CGangs::GetGangInfo(i)->m_nVehicleMI, STREAMFLAGS_DEPENDENCY); }else if((gangCarsToLoad & bit) == 0 && ms_loadedGangCars & bit){ SetModelIsDeletable(CGangs::GetGangInfo(i)->m_nVehicleMI); SetModelTxdIsDeletable(CGangs::GetGangInfo(i)->m_nVehicleMI);