diff --git a/src/control/CarCtrl.cpp b/src/control/CarCtrl.cpp index 2c5751a3..ed14c6a0 100644 --- a/src/control/CarCtrl.cpp +++ b/src/control/CarCtrl.cpp @@ -597,7 +597,8 @@ CCarCtrl::ChooseCarRating(CZoneInfo* pZoneInfo) int32 CCarCtrl::ChooseModel(CZoneInfo* pZone, CVector* pPos, int* pClass) { int32 model = -1; - for (int i = 0; i < 10 && (model == -1 || !CStreaming::HasModelLoaded(model)); i++) { + int i; + for (i = 0; i < 10 && (model == -1 || !CStreaming::HasModelLoaded(model)); i++) { int rnd = CGeneral::GetRandomNumberInRange(0, 1000); if (rnd < pZone->copThreshold) { @@ -606,14 +607,17 @@ CCarCtrl::ChooseModel(CZoneInfo* pZone, CVector* pPos, int* pClass) { continue; } - for (int i = 0; i < NUM_GANG_CAR_CLASSES; i++) { + for (i = 0; i < NUM_GANG_CAR_CLASSES; i++) { if (rnd < pZone->gangThreshold[i]) { *pClass = i + FIRST_GANG_CAR_RATING; model = ChooseGangCarModel(i); - continue; + break; } } + if (i != 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);