Merge remote-tracking branch 'upstream/master' into carctrl_dev

This commit is contained in:
Nikolay Korolev 2019-09-12 19:15:13 +03:00
commit 3e71c15b33
3 changed files with 26 additions and 25 deletions

View File

@ -331,7 +331,7 @@ CWorld::ProcessVerticalLine(const CVector &point1, float z2, CColPoint &point, C
{
AdvanceCurrentScanCode();
CVector point2(point1.x, point1.y, z2);
return CWorld::ProcessVerticalLineSector(*GetSector(GetSectorIndexX(point1.x), GetSectorIndexX(point1.y)),
return ProcessVerticalLineSector(*GetSector(GetSectorIndexX(point1.x), GetSectorIndexX(point1.y)),
CColLine(point1, point2), point, entity,
checkBuildings, checkVehicles, checkPeds, checkObjects, checkDummies, ignoreSeeThrough, poly);
}
@ -605,8 +605,8 @@ CWorld::FindObjectsInRangeSectorList(CPtrList &list, CVector &centre, float dist
for (CPtrNode *node = list.first; node; node = node->next) {
CEntity *object = (CEntity*)node->item;
if (object->m_scanCode != CWorld::GetCurrentScanCode()) {
object->m_scanCode = CWorld::GetCurrentScanCode();
if (object->m_scanCode != GetCurrentScanCode()) {
object->m_scanCode = GetCurrentScanCode();
CVector diff = centre - object->GetPosition();
if (ignoreZ)
@ -941,11 +941,11 @@ CWorld::RemoveEntityInsteadOfProcessingIt(CEntity* ent)
{
if (ent->IsPed()) {
if (FindPlayerPed() == ent)
CWorld::Remove(ent);
Remove(ent);
else
CPopulation::RemovePed(ent);
} else {
CWorld::Remove(ent);
Remove(ent);
delete ent;
}
}
@ -987,7 +987,7 @@ CWorld::RemoveFallenCars(void)
veh->Teleport(newPos);
veh->m_vecMoveSpeed = CVector(0.0f, 0.0f, 0.0f);
} else if (veh->VehicleCreatedBy == RANDOM_VEHICLE || veh->VehicleCreatedBy == PARKED_VEHICLE) {
CWorld::Remove(veh);
Remove(veh);
delete veh;
}
}
@ -1001,7 +1001,7 @@ CWorld::Process(void)
if (!(CTimer::GetFrameCounter() & 63))
CReferences::PruneAllReferencesInWorld();
if (CWorld::bProcessCutsceneOnly) {
if (bProcessCutsceneOnly) {
for (int i = 0; i < NUMCUTSCENEOBJECTS; i++) {
CCutsceneObject *csObj = CCutsceneMgr::GetCutsceneObject(i);
if (csObj && csObj->m_entryInfoList.first) {
@ -1036,7 +1036,7 @@ CWorld::Process(void)
}
}
}
CWorld::bForceProcessControl = 1;
bForceProcessControl = true;
for (CPtrNode* node = ms_listMovingEntityPtrs.first; node; node = node->next) {
CPhysical* movingEnt = (CPhysical*)node->item;
if (movingEnt->bWasPostponed) {
@ -1050,7 +1050,7 @@ CWorld::Process(void)
}
}
}
CWorld::bForceProcessControl = 0;
bForceProcessControl = false;
if (CReplay::IsPlayingBack()) {
for (CPtrNode* node = ms_listMovingEntityPtrs.first; node; node = node->next) {
CEntity* movingEnt = (CEntity*)node->item;
@ -1059,7 +1059,7 @@ CWorld::Process(void)
movingEnt->UpdateRwFrame();
}
} else {
CWorld::bNoMoreCollisionTorque = 0;
bNoMoreCollisionTorque = false;
for (CPtrNode* node = ms_listMovingEntityPtrs.first; node; node = node->next) {
CEntity* movingEnt = (CEntity*)node->item;
if (!movingEnt->bIsInSafePosition) {
@ -1068,7 +1068,7 @@ CWorld::Process(void)
movingEnt->UpdateRwFrame();
}
}
CWorld::bNoMoreCollisionTorque = 1;
bNoMoreCollisionTorque = true;
for (int i = 0; i < 4; i++) {
for (CPtrNode* node = ms_listMovingEntityPtrs.first; node; node = node->next) {
CEntity* movingEnt = (CEntity*)node->item;
@ -1091,7 +1091,7 @@ CWorld::Process(void)
}
}
}
CWorld::bSecondShift = 0;
bSecondShift = false;
for (CPtrNode* node = ms_listMovingEntityPtrs.first; node; node = node->next) {
CEntity* movingEnt = (CEntity*)node->item;
if (!movingEnt->bIsInSafePosition) {
@ -1103,7 +1103,7 @@ CWorld::Process(void)
}
}
}
CWorld::bSecondShift = 1;
bSecondShift = true;
for (CPtrNode* node = ms_listMovingEntityPtrs.first; node; node = node->next) {
CPhysical* movingEnt = (CPhysical*)node->item;
if (!movingEnt->bIsInSafePosition) {
@ -1114,7 +1114,7 @@ CWorld::Process(void)
movingEnt->bIsStuck = true;
if (movingEnt->m_status == STATUS_PLAYER) {
printf("STUCK: Final Step: Player Entity %d Is Stuck\n", movingEnt->m_modelIndex);
movingEnt->m_vecMoveSpeed *= 3.0f;
movingEnt->m_vecMoveSpeed *= 0.3f;
movingEnt->ApplyMoveSpeed();
movingEnt->ApplyTurnSpeed();
}
@ -1167,9 +1167,9 @@ CWorld::Process(void)
Players[PlayerInFocus].Process();
CRecordDataForChase::SaveOrRetrieveCarPositions();
if ((CTimer::GetFrameCounter() & 7) == 1) {
CWorld::RemoveFallenPeds();
RemoveFallenPeds();
} else if ((CTimer::GetFrameCounter() & 7) == 5) {
CWorld::RemoveFallenCars();
RemoveFallenCars();
}
}
}

View File

@ -500,7 +500,7 @@ CPed::CPed(uint32 pedType) : m_pedIK(this)
m_ped_flagG4 = false;
bStartWanderPathOnFoot = false;
m_ped_flagG10 = false;
m_ped_flagG20 = false;
bBusJacked = false;
m_ped_flagG40 = false;
bFadeOut = false;
@ -509,7 +509,7 @@ CPed::CPed(uint32 pedType) : m_pedIK(this)
m_ped_flagH4 = false;
bClearObjective = false;
m_ped_flagH10 = false;
m_ped_flagH20 = false;
bCollidedWithMyVehicle = false;
m_ped_flagH40 = false;
m_ped_flagH80 = false;
@ -8872,7 +8872,7 @@ CPed::ProcessControl(void)
if (m_fHealth <= 1.0f && m_nPedState <= PED_STATES_NO_AI && !bIsInTheAir && !bIsLanding)
SetDie(ANIM_KO_SHOT_FRONT1, 4.0f, 0.0f);
m_ped_flagH20 = false;
bCollidedWithMyVehicle = false;
CEntity *collidingEnt = m_pDamageEntity;
if (!bUsesCollision || m_fDamageImpulse <= 0.0f || m_nPedState == PED_DIE || !collidingEnt) {
@ -9100,7 +9100,7 @@ CPed::ProcessControl(void)
float collidingVehSpeedSqr = collidingVeh->m_vecMoveSpeed.MagnitudeSqr();
if (collidingVeh == m_pMyVehicle)
m_ped_flagH20 = true;
bCollidedWithMyVehicle = true;
if (collidingVehSpeedSqr <= 1.0f / 400.0f) {
if (!IsPedInControl()
@ -10219,7 +10219,7 @@ CPed::PedAnimGetInCB(CAnimBlendAssociation *animAssoc, void *arg)
veh->bIsHandbrakeOn = true;
veh->m_status = STATUS_PLAYER_DISABLED;
}
driver->m_ped_flagG20 = true;
driver->bBusJacked = true;
veh->m_veh_flagC10 = false;
PedSetInCarCB(nil, ped);
if (ped->m_nPedType == PEDTYPE_COP
@ -10456,6 +10456,7 @@ CPed::PedAnimStepOutCarCB(CAnimBlendAssociation* animAssoc, void* arg)
}
if (ped->m_ped_flagE80 || ped->m_ped_flagG40) {
// POTENTIAL BUG? Why DOOR_FRONT_LEFT instead of door variable? or vice versa?
if (!veh->IsDoorMissing(door))
((CAutomobile*)veh)->Damage.SetDoorStatus(DOOR_FRONT_LEFT, DOOR_STATUS_SWINGING);
} else {

View File

@ -304,7 +304,7 @@ public:
uint8 bIsDucking : 1;
uint8 bGetUpAnimStarted : 1;
uint8 bDoBloodyFootprints : 1;
uint8 m_ped_flagE80 : 1;
uint8 m_ped_flagE80 : 1; // bDontDragMeOutCar? bStayInCarOnJack?
uint8 bWanderPathAfterExitingCar : 1;
uint8 m_ped_flagF2 : 1;
@ -320,8 +320,8 @@ public:
uint8 m_ped_flagG4 : 1;
uint8 bStartWanderPathOnFoot : 1; // exits the car if he's in it, reset after path found
uint8 m_ped_flagG10 : 1;
uint8 m_ped_flagG20 : 1;
uint8 m_ped_flagG40 : 1;
uint8 bBusJacked : 1;
uint8 m_ped_flagG40 : 1; // had to exit car due to someone jacked it from RF door
uint8 bFadeOut : 1;
uint8 m_ped_flagH1 : 1;
@ -329,7 +329,7 @@ public:
uint8 m_ped_flagH4 : 1;
uint8 bClearObjective : 1;
uint8 m_ped_flagH10 : 1;
uint8 m_ped_flagH20 : 1; // set if our own vehicle damaged us. I don't know how is that possible
uint8 bCollidedWithMyVehicle : 1;
uint8 m_ped_flagH40 : 1;
uint8 m_ped_flagH80 : 1;