CZoneInfo mostly done; not its dependencies

This commit is contained in:
aap
2020-05-07 17:53:38 +02:00
parent 8bb22b2ad8
commit 19b21cafcd
9 changed files with 134 additions and 220 deletions

View File

@ -664,6 +664,7 @@ CCarCtrl::ChooseGangCarModel(int32 gang)
void
CCarCtrl::AddToCarArray(int32 id, int32 vehclass)
{
assert(TotalNumOfCarsOfRating[vehclass] < MAX_CAR_MODELS_IN_ARRAY);
CarArrays[vehclass][TotalNumOfCarsOfRating[vehclass]++] = id;
}

View File

@ -12,7 +12,7 @@ class CZoneInfo;
enum{
MAX_CARS_TO_KEEP = 2,
MAX_CAR_MODELS_IN_ARRAY = 256,
MAX_CAR_MODELS_IN_ARRAY = 25,
};
#define LANE_WIDTH 5.0f
@ -34,9 +34,11 @@ public:
TAXI,
MOPED,
MOTORBIKE,
LEISUREBOAT,
WORKERBOAT,
TOTAL_CUSTOM_CLASSES,
COPS,
MAFIA,
TRIAD,
DIABLO,
@ -46,7 +48,11 @@ public:
NINES,
GANG8,
GANG9,
COPS
COPSBOAT,
NUM_CAR_CLASSES = MOTORBIKE+1,
NUM_BOAT_CLASSES = 2,
TOTAL_CUSTOM_CLASSES = NUM_CAR_CLASSES + NUM_BOAT_CLASSES
};
static void SwitchVehicleToRealPhysics(CVehicle*);

View File

@ -3089,18 +3089,20 @@ int8 CRunningScript::ProcessCommands300To399(int32 command)
case COMMAND_SET_ZONE_CAR_INFO:
{
char label[12];
int16 gangDensities[NUM_GANGS];
int i;
CTheScripts::ReadTextLabelFromScript(&m_nIp, label);
m_nIp += KEY_LENGTH_IN_SCRIPT;
CollectParameters(&m_nIp, 16);
CollectParameters(&m_nIp, 12);
int zone = CTheZones::FindZoneByLabelAndReturnIndex(label, ZONE_INFO);
if (zone < 0) {
debug("Couldn't find zone - %s\n", label);
return 0;
}
CTheZones::SetZoneCarInfo(zone, ScriptParams[0], ScriptParams[1], ScriptParams[2], ScriptParams[3],
ScriptParams[4], ScriptParams[5], ScriptParams[6], ScriptParams[7], ScriptParams[8], 0, 0,
ScriptParams[9], ScriptParams[10], ScriptParams[11], ScriptParams[12],
ScriptParams[13], ScriptParams[14], ScriptParams[15]);
for(i = 0; i < NUM_GANGS; i++)
gangDensities[i] = ScriptParams[2+i];
CTheZones::SetZoneCarInfo(zone, ScriptParams[0], ScriptParams[1], ScriptParams[11], gangDensities);
return 0;
}
/* Not implemented.