zone info commands + fix

This commit is contained in:
Nikolay Korolev
2020-05-08 16:16:46 +03:00
parent fb1f51241d
commit c11a20cb4f
4 changed files with 63 additions and 7 deletions

View File

@ -1299,14 +1299,17 @@ CStreaming::StreamVehiclesAndPeds(void)
int32 mostRequestedRating = 0;
for(i = 0; i < CCarCtrl::TOTAL_CUSTOM_CLASSES; i++){
if(CCarCtrl::NumRequestsOfCarRating[i] > maxReq &&
(i == 0 && zone.carThreshold[0] != 0) ||
(i != 0 && zone.carThreshold[i] != zone.carThreshold[i-1])) {
((i == 0 && zone.carThreshold[0] != 0) ||
(i != 0 && zone.carThreshold[i] != zone.carThreshold[i-1]))) {
maxReq = CCarCtrl::NumRequestsOfCarRating[i];
mostRequestedRating = i;
}
}
debug("selected %d with %d\n", mostRequestedRating, maxReq);
model = CCarCtrl::ChooseCarModelToLoad(mostRequestedRating);
debug("selected %d\n", model);
if(!HasModelLoaded(model)){
debug("requested %d\n", model);
RequestModel(model, STREAMFLAGS_DEPENDENCY);
timeBeforeNextLoad = 350;
}

View File

@ -399,6 +399,7 @@ int16
CTheZones::FindNextZoneByLabelAndReturnIndex(char *name, eZoneType type)
{
char str[8];
++FindIndex;
memset(str, 0, 8);
strncpy(str, name, 8);
switch(type){
@ -501,6 +502,21 @@ CTheZones::SetZoneCarInfo(uint16 zoneid, uint8 day, int16 carDensity,
info->gangThreshold[8] = gangCarDensities[8] + info->gangThreshold[7];
}
void CTheZones::SetZoneCivilianCarInfo(uint16 zoneid, uint8 day,
const int16* carDensities, const int16* boatDensities)
{
CZone* zone;
CZoneInfo* info;
zone = GetInfoZone(zoneid);
info = &ZoneInfoArray[day ? zone->zoneinfoDay : zone->zoneinfoNight];
info->carThreshold[0] = carDensities[0];
for (int i = 1; i < CCarCtrl::NUM_CAR_CLASSES; i++)
info->carThreshold[i] = carDensities[i] + info->carThreshold[i-1];
info->boatThreshold[0] = boatDensities[0];
for (int i = 1; i < CCarCtrl::NUM_BOAT_CLASSES; i++)
info->boatThreshold[i] = boatDensities[i] + info->boatThreshold[i - 1];
}
void
CTheZones::SetZonePedInfo(uint16 zoneid, uint8 day, int16 pedDensity,
int16 gang0Density, int16 gang1Density, int16 gang2Density, int16 gang3Density,

View File

@ -93,6 +93,8 @@ public:
static void GetZoneInfoForTimeOfDay(const CVector *pos, CZoneInfo *info);
static void SetZoneCarInfo(uint16 zoneid, uint8 day, int16 carDensity,
int16 copCarDensity, const int16 *gangCarDensities /*[NUMGANGS]*/);
static void SetZoneCivilianCarInfo(uint16 zoneid, uint8 day,
const int16* carDensities, const int16* boatDensities);
static void SetZonePedInfo(uint16 zoneid, uint8 day, int16 pedDensity,
int16 gang0Density, int16 gang1Density, int16 gang2Density, int16 gang3Density,
int16 gang4Density, int16 gang5Density, int16 gang6Density, int16 gang7Density,