mirror of
https://github.com/GTAmodding/re3.git
synced 2025-07-05 09:44:09 +00:00
new zone stuff
This commit is contained in:
parent
aa8968ecf2
commit
e0568a19d5
17 changed files with 386 additions and 857 deletions
|
@ -1729,7 +1729,7 @@ int8 CRunningScript::ProcessCommands100To199(int32 command)
|
|||
ped->SetOrientation(0.0f, 0.0f, 0.0f);
|
||||
CTheScripts::ClearSpaceForMissionEntity(pos, ped);
|
||||
CWorld::Add(ped);
|
||||
ped->m_nZoneLevel = CTheZones::GetLevelFromPosition(pos);
|
||||
ped->m_nZoneLevel = CTheZones::GetLevelFromPosition(&pos);
|
||||
CPopulation::ms_nTotalMissionPeds++;
|
||||
ScriptParams[0] = CPools::GetPedPool()->GetIndex(ped);
|
||||
StoreParameters(&m_nIp, 1);
|
||||
|
@ -1968,7 +1968,7 @@ int8 CRunningScript::ProcessCommands100To199(int32 command)
|
|||
car->AutoPilot.m_nCruiseSpeed = car->AutoPilot.m_fMaxTrafficSpeed = 9.0f;
|
||||
car->AutoPilot.m_nCurrentLane = car->AutoPilot.m_nNextLane = 0;
|
||||
car->bEngineOn = false;
|
||||
car->m_nZoneLevel = CTheZones::GetLevelFromPosition(pos);
|
||||
car->m_nZoneLevel = CTheZones::GetLevelFromPosition(&pos);
|
||||
car->bHasBeenOwnedByPlayer = true;
|
||||
CWorld::Add(car);
|
||||
handle = CPools::GetVehiclePool()->GetIndex(car);
|
||||
|
@ -2669,12 +2669,12 @@ int8 CRunningScript::ProcessCommands200To299(int32 command)
|
|||
CPlayerInfo* pPlayer = &CWorld::Players[ScriptParams[0]];
|
||||
char label[12];
|
||||
CTheScripts::ReadTextLabelFromScript(&m_nIp, label);
|
||||
int zoneToCheck = CTheZones::FindZoneByLabelAndReturnIndex(label);
|
||||
int zoneToCheck = CTheZones::FindZoneByLabelAndReturnIndex(label, ZONE_DEFAULT);
|
||||
if (zoneToCheck != -1)
|
||||
m_nIp += KEY_LENGTH_IN_SCRIPT; /* why only if zone != 1? */
|
||||
CVector pos = pPlayer->GetPos();
|
||||
CZone* pZone = CTheZones::GetZone(zoneToCheck);
|
||||
UpdateCompareFlag(CTheZones::PointLiesWithinZone(pos, pZone));
|
||||
CZone* pZone = CTheZones::GetNavigationZone(zoneToCheck);
|
||||
UpdateCompareFlag(CTheZones::PointLiesWithinZone(&pos, pZone));
|
||||
return 0;
|
||||
}
|
||||
case COMMAND_IS_PLAYER_PRESSING_HORN:
|
||||
|
@ -2773,7 +2773,7 @@ int8 CRunningScript::ProcessCommands200To299(int32 command)
|
|||
#endif
|
||||
pPed->m_pVehicleAnim = CAnimManager::BlendAnimation(pPed->GetClump(), ASSOCGRP_STD, anim, 100.0f);
|
||||
pPed->StopNonPartialAnims();
|
||||
pPed->m_nZoneLevel = CTheZones::GetLevelFromPosition(pPed->GetPosition());
|
||||
pPed->m_nZoneLevel = CTheZones::GetLevelFromPosition(&pPed->GetPosition());
|
||||
CWorld::Add(pPed);
|
||||
ScriptParams[0] = CPools::GetPedPool()->GetIndex(pPed);
|
||||
StoreParameters(&m_nIp, 1);
|
||||
|
@ -3001,7 +3001,7 @@ int8 CRunningScript::ProcessCommands300To399(int32 command)
|
|||
CTheScripts::ReadTextLabelFromScript(&m_nIp, label);
|
||||
m_nIp += KEY_LENGTH_IN_SCRIPT;
|
||||
CollectParameters(&m_nIp, 16);
|
||||
int zone = CTheZones::FindZoneByLabelAndReturnIndex(label);
|
||||
int zone = CTheZones::FindZoneByLabelAndReturnIndex(label, ZONE_INFO);
|
||||
if (zone < 0) {
|
||||
debug("Couldn't find zone - %s\n", label);
|
||||
return 0;
|
||||
|
@ -3022,41 +3022,17 @@ int8 CRunningScript::ProcessCommands300To399(int32 command)
|
|||
assert(pPed);
|
||||
char label[12];
|
||||
CTheScripts::ReadTextLabelFromScript(&m_nIp, label);
|
||||
int zone = CTheZones::FindZoneByLabelAndReturnIndex(label);
|
||||
int zone = CTheZones::FindZoneByLabelAndReturnIndex(label, ZONE_DEFAULT);
|
||||
if (zone != -1)
|
||||
m_nIp += KEY_LENGTH_IN_SCRIPT;
|
||||
CVector pos = pPed->bInVehicle ? pPed->m_pMyVehicle->GetPosition() : pPed->GetPosition();
|
||||
UpdateCompareFlag(CTheZones::PointLiesWithinZone(pos, CTheZones::GetZone(zone)));
|
||||
UpdateCompareFlag(CTheZones::PointLiesWithinZone(&pos, CTheZones::GetNavigationZone(zone)));
|
||||
return 0;
|
||||
}
|
||||
/* Not implemented.
|
||||
case COMMAND_SET_CAR_DENSITY:
|
||||
{
|
||||
char label[12];
|
||||
CTheScripts::ReadTextLabelFromScript(&m_nIp, label);
|
||||
int16 zone = CTheZones::FindZoneByLabelAndReturnIndex(label);
|
||||
m_nIp += 8;
|
||||
CollectParameters(&m_nIp, 2);
|
||||
if (zone < 0) {
|
||||
debug("Couldn't find zone - %s\n", label);
|
||||
return 0;
|
||||
}
|
||||
CTheZones::SetCarDensity(zone, ScriptParams[0], ScriptParams[1]);
|
||||
return 0;
|
||||
}
|
||||
case COMMAND_SET_PED_DENSITY:
|
||||
{
|
||||
char label[12];
|
||||
CTheScripts::ReadTextLabelFromScript(&m_nIp, label);
|
||||
int16 zone = CTheZones::FindZoneByLabelAndReturnIndex(label);
|
||||
m_nIp += KEY_LENGTH_IN_SCRIPT;
|
||||
CollectParameters(&m_nIp, 2);
|
||||
if (zone < 0) {
|
||||
debug("Couldn't find zone - %s\n", label);
|
||||
return 0;
|
||||
}
|
||||
CTheZones::SetPedDensity(zone, ScriptParams[0], ScriptParams[1]);
|
||||
return 0;
|
||||
}
|
||||
*/
|
||||
case COMMAND_POINT_CAMERA_AT_PLAYER:
|
||||
{
|
||||
CollectParameters(&m_nIp, 3);
|
||||
|
@ -3092,7 +3068,7 @@ int8 CRunningScript::ProcessCommands300To399(int32 command)
|
|||
CTheScripts::ReadTextLabelFromScript(&m_nIp, label);
|
||||
m_nIp += KEY_LENGTH_IN_SCRIPT;
|
||||
CollectParameters(&m_nIp, 10);
|
||||
int16 zone = CTheZones::FindZoneByLabelAndReturnIndex(label);
|
||||
int16 zone = CTheZones::FindZoneByLabelAndReturnIndex(label, ZONE_INFO);
|
||||
if (zone < 0) {
|
||||
debug("Couldn't find zone - %s\n", label);
|
||||
return 0;
|
||||
|
@ -3964,7 +3940,7 @@ int8 CRunningScript::ProcessCommands400To499(int32 command)
|
|||
#endif
|
||||
pPed->m_pVehicleAnim = CAnimManager::BlendAnimation(pPed->GetClump(), ASSOCGRP_STD, anim, 100.0f);
|
||||
pPed->StopNonPartialAnims();
|
||||
pPed->m_nZoneLevel = CTheZones::GetLevelFromPosition(pPed->GetPosition());
|
||||
pPed->m_nZoneLevel = CTheZones::GetLevelFromPosition(&pPed->GetPosition());
|
||||
CWorld::Add(pPed);
|
||||
ScriptParams[0] = CPools::GetPedPool()->GetIndex(pPed);
|
||||
StoreParameters(&m_nIp, 1);
|
||||
|
@ -5853,10 +5829,10 @@ int8 CRunningScript::ProcessCommands700To799(int32 command)
|
|||
{
|
||||
char zone[KEY_LENGTH_IN_SCRIPT];
|
||||
strncpy(zone, (const char*)&CTheScripts::ScriptSpace[m_nIp], KEY_LENGTH_IN_SCRIPT);
|
||||
int nZone = CTheZones::FindZoneByLabelAndReturnIndex(zone);
|
||||
int nZone = CTheZones::FindZoneByLabelAndReturnIndex(zone, ZONE_DEFAULT);
|
||||
if (nZone != -1)
|
||||
m_nIp += KEY_LENGTH_IN_SCRIPT;
|
||||
CZone* pZone = CTheZones::GetZone(nZone);
|
||||
CZone* pZone = CTheZones::GetNavigationZone(nZone);
|
||||
int ped_handle = -1;
|
||||
CVector pos = FindPlayerCoors();
|
||||
int i = CPools::GetPedPool()->GetSize();
|
||||
|
@ -5880,7 +5856,7 @@ int8 CRunningScript::ProcessCommands700To799(int32 command)
|
|||
continue;
|
||||
if (pPed->bIsLeader || pPed->m_leader)
|
||||
continue;
|
||||
if (!CTheZones::PointLiesWithinZone(pPed->GetPosition(), pZone))
|
||||
if (!CTheZones::PointLiesWithinZone(&pPed->GetPosition(), pZone))
|
||||
continue;
|
||||
if (pos.z - PED_FIND_Z_OFFSET > pPed->GetPosition().z)
|
||||
continue;
|
||||
|
@ -6461,7 +6437,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command)
|
|||
CTheScripts::ReadTextLabelFromScript(&m_nIp, zone);
|
||||
m_nIp += KEY_LENGTH_IN_SCRIPT;
|
||||
CollectParameters(&m_nIp, 2);
|
||||
int zone_id = CTheZones::FindZoneByLabelAndReturnIndex(zone);
|
||||
int zone_id = CTheZones::FindZoneByLabelAndReturnIndex(zone, ZONE_INFO);
|
||||
if (zone_id < 0) {
|
||||
printf("Couldn't find zone - %s\n", zone);
|
||||
return 0;
|
||||
|
@ -6521,10 +6497,11 @@ int8 CRunningScript::ProcessCommands800To899(int32 command)
|
|||
{
|
||||
char zone[KEY_LENGTH_IN_SCRIPT];
|
||||
CTheScripts::ReadTextLabelFromScript(&m_nIp, zone);
|
||||
int zone_id = CTheZones::FindZoneByLabelAndReturnIndex(zone);
|
||||
// TODO(MIAMI): just getting this to compile with new argument
|
||||
int zone_id = CTheZones::FindZoneByLabelAndReturnIndex(zone, ZONE_DEFAULT);
|
||||
if (zone_id != -1)
|
||||
m_nIp += KEY_LENGTH_IN_SCRIPT;
|
||||
CZone* pZone = CTheZones::GetZone(zone_id);
|
||||
CZone* pZone = CTheZones::GetNavigationZone(zone_id);
|
||||
CollectParameters(&m_nIp, 1);
|
||||
int handle = -1;
|
||||
uint32 i = CPools::GetVehiclePool()->GetSize();
|
||||
|
@ -6536,7 +6513,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command)
|
|||
continue;
|
||||
if (pVehicle->VehicleCreatedBy != RANDOM_VEHICLE)
|
||||
continue;
|
||||
if (!CTheZones::PointLiesWithinZone(pVehicle->GetPosition(), pZone))
|
||||
if (!CTheZones::PointLiesWithinZone(&pVehicle->GetPosition(), pZone))
|
||||
continue;
|
||||
handle = CPools::GetVehiclePool()->GetIndex(pVehicle);
|
||||
pVehicle->VehicleCreatedBy = MISSION_VEHICLE;
|
||||
|
@ -7027,10 +7004,11 @@ int8 CRunningScript::ProcessCommands800To899(int32 command)
|
|||
CollectParameters(&m_nIp, 1);
|
||||
char zone[KEY_LENGTH_IN_SCRIPT];
|
||||
CTheScripts::ReadTextLabelFromScript(&m_nIp, zone);
|
||||
int zone_id = CTheZones::FindZoneByLabelAndReturnIndex(zone);
|
||||
// TODO(MIAMI): just getting this to compile with new argument
|
||||
int zone_id = CTheZones::FindZoneByLabelAndReturnIndex(zone, ZONE_DEFAULT);
|
||||
if (zone_id != -1)
|
||||
m_nIp += KEY_LENGTH_IN_SCRIPT;
|
||||
CZone* pZone = CTheZones::GetZone(zone_id);
|
||||
CZone* pZone = CTheZones::GetNavigationZone(zone_id);
|
||||
UpdateCompareFlag(CExplosion::TestForExplosionInArea((eExplosionType)ScriptParams[0],
|
||||
pZone->minx, pZone->maxx, pZone->miny, pZone->maxy, pZone->minz, pZone->maxz));
|
||||
return 0;
|
||||
|
@ -7162,7 +7140,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command)
|
|||
if (total == 0)
|
||||
CWorld::FindObjectsOfTypeInRangeSectorList(mi, CWorld::GetBigBuildingList(LEVEL_NONE), pos, range, true, &total, 16, apEntities);
|
||||
if (total == 0)
|
||||
CWorld::FindObjectsOfTypeInRangeSectorList(mi, CWorld::GetBigBuildingList(CTheZones::GetLevelFromPosition(pos)), pos, range, true, &total, 16, apEntities);
|
||||
CWorld::FindObjectsOfTypeInRangeSectorList(mi, CWorld::GetBigBuildingList(CTheZones::GetLevelFromPosition(&pos)), pos, range, true, &total, 16, apEntities);
|
||||
CEntity* pClosestEntity = nil;
|
||||
float min_dist = 2.0f * range;
|
||||
for (int i = 0; i < total; i++) {
|
||||
|
@ -7347,7 +7325,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command)
|
|||
ped->SetOrientation(0.0f, 0.0f, 0.0f);
|
||||
CTheScripts::ClearSpaceForMissionEntity(pos, ped);
|
||||
CWorld::Add(ped);
|
||||
ped->m_nZoneLevel = CTheZones::GetLevelFromPosition(pos);
|
||||
ped->m_nZoneLevel = CTheZones::GetLevelFromPosition(&pos);
|
||||
CPopulation::ms_nTotalMissionPeds++;
|
||||
ScriptParams[0] = CPools::GetPedPool()->GetIndex(ped);
|
||||
StoreParameters(&m_nIp, 1);
|
||||
|
@ -7914,7 +7892,7 @@ int8 CRunningScript::ProcessCommands900To999(int32 command)
|
|||
if (total == 0)
|
||||
CWorld::FindObjectsOfTypeInRangeSectorList(mi1, CWorld::GetBigBuildingList(LEVEL_NONE), pos, radius, true, &total, 16, apEntities);
|
||||
if (total == 0)
|
||||
CWorld::FindObjectsOfTypeInRangeSectorList(mi1, CWorld::GetBigBuildingList(CTheZones::GetLevelFromPosition(pos)), pos, radius, true, &total, 16, apEntities);
|
||||
CWorld::FindObjectsOfTypeInRangeSectorList(mi1, CWorld::GetBigBuildingList(CTheZones::GetLevelFromPosition(&pos)), pos, radius, true, &total, 16, apEntities);
|
||||
CEntity* pClosestEntity = nil;
|
||||
float min_dist = 2.0f * radius;
|
||||
for (int i = 0; i < total; i++) {
|
||||
|
@ -8178,7 +8156,7 @@ int8 CRunningScript::ProcessCommands900To999(int32 command)
|
|||
car->AutoPilot.m_nCruiseSpeed = car->AutoPilot.m_fMaxTrafficSpeed = 9.0f;
|
||||
car->AutoPilot.m_nCurrentLane = car->AutoPilot.m_nNextLane = 0;
|
||||
car->bEngineOn = false;
|
||||
car->m_nZoneLevel = CTheZones::GetLevelFromPosition(pos);
|
||||
car->m_nZoneLevel = CTheZones::GetLevelFromPosition(&pos);
|
||||
CWorld::Add(car);
|
||||
return 0;
|
||||
}
|
||||
|
@ -8504,7 +8482,7 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command)
|
|||
CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]);
|
||||
assert(pVehicle);
|
||||
if (ScriptParams[1])
|
||||
pVehicle->m_nZoneLevel = CTheZones::GetLevelFromPosition(pVehicle->GetPosition());
|
||||
pVehicle->m_nZoneLevel = CTheZones::GetLevelFromPosition(&pVehicle->GetPosition());
|
||||
else
|
||||
pVehicle->m_nZoneLevel = LEVEL_NONE;
|
||||
return 0;
|
||||
|
@ -8515,7 +8493,7 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command)
|
|||
CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]);
|
||||
assert(pPed);
|
||||
if (ScriptParams[1])
|
||||
pPed->m_nZoneLevel = CTheZones::GetLevelFromPosition(pPed->GetPosition());
|
||||
pPed->m_nZoneLevel = CTheZones::GetLevelFromPosition(&pPed->GetPosition());
|
||||
else
|
||||
pPed->m_nZoneLevel = LEVEL_NONE;
|
||||
return 0;
|
||||
|
@ -8920,7 +8898,7 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command)
|
|||
if (ScriptParams[1])
|
||||
pPed->m_nZoneLevel = LEVEL_IGNORE;
|
||||
else
|
||||
pPed->m_nZoneLevel = CTheZones::GetLevelFromPosition(pPed->GetPosition());
|
||||
pPed->m_nZoneLevel = CTheZones::GetLevelFromPosition(&pPed->GetPosition());
|
||||
return 0;
|
||||
}
|
||||
case COMMAND_GET_CHASE_CAR:
|
||||
|
@ -9119,7 +9097,7 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command)
|
|||
if (ScriptParams[1])
|
||||
pVehicle->m_nZoneLevel = LEVEL_IGNORE;
|
||||
else
|
||||
pVehicle->m_nZoneLevel = CTheZones::GetLevelFromPosition(pVehicle->GetPosition());
|
||||
pVehicle->m_nZoneLevel = CTheZones::GetLevelFromPosition(&pVehicle->GetPosition());
|
||||
return 0;
|
||||
}
|
||||
case COMMAND_MAKE_CRAIGS_CAR_A_BIT_STRONGER:
|
||||
|
@ -9440,10 +9418,11 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command)
|
|||
{
|
||||
char zone[KEY_LENGTH_IN_SCRIPT];
|
||||
strncpy(zone, (const char*)&CTheScripts::ScriptSpace[m_nIp], KEY_LENGTH_IN_SCRIPT);
|
||||
int nZone = CTheZones::FindZoneByLabelAndReturnIndex(zone);
|
||||
// TODO(MIAMI): just getting this to compile with new argument
|
||||
int nZone = CTheZones::FindZoneByLabelAndReturnIndex(zone, ZONE_DEFAULT);
|
||||
if (nZone != -1)
|
||||
m_nIp += KEY_LENGTH_IN_SCRIPT;
|
||||
CZone* pZone = CTheZones::GetZone(nZone);
|
||||
CZone* pZone = CTheZones::GetNavigationZone(nZone);
|
||||
int ped_handle = -1;
|
||||
CVector pos = FindPlayerCoors();
|
||||
int i = CPools::GetPedPool()->GetSize();
|
||||
|
@ -9465,7 +9444,7 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command)
|
|||
continue;
|
||||
if (pPed->bIsLeader || pPed->m_leader)
|
||||
continue;
|
||||
if (!CTheZones::PointLiesWithinZone(pPed->GetPosition(), pZone))
|
||||
if (!CTheZones::PointLiesWithinZone(&pPed->GetPosition(), pZone))
|
||||
continue;
|
||||
if (pos.z - PED_FIND_Z_OFFSET > pPed->GetPosition().z)
|
||||
continue;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue