Fixes from miami

This commit is contained in:
Sergeanur 2021-07-22 20:56:15 +03:00
parent a437d2bc26
commit 1d1f10d68c

View file

@ -2474,12 +2474,12 @@ CPed::ProcessControl(void)
obstacleForFlyingOtherDirZ = 501.0f; obstacleForFlyingOtherDirZ = 501.0f;
} }
#ifdef VC_PED_PORTS #ifdef VC_PED_PORTS
uint8 flyDir = 0; int16 flyDir = 0;
float feetZ = GetPosition().z - FEET_OFFSET; float feetZ = GetPosition().z - FEET_OFFSET;
#ifdef FIX_BUGS #ifdef FIX_BUGS
if (obstacleForFlyingZ > feetZ && obstacleForFlyingOtherDirZ < 501.0f) if (obstacleForFlyingZ > feetZ && obstacleForFlyingZ < 500.0f)
flyDir = 1; flyDir = 1;
else if (obstacleForFlyingOtherDirZ > feetZ && obstacleForFlyingZ < 500.0f) else if (obstacleForFlyingOtherDirZ > feetZ && obstacleForFlyingOtherDirZ < 501.0f)
flyDir = 2; flyDir = 2;
#else #else
if ((obstacleForFlyingZ > feetZ && obstacleForFlyingOtherDirZ < 500.0f) || (obstacleForFlyingZ > feetZ && obstacleForFlyingOtherDirZ > feetZ)) if ((obstacleForFlyingZ > feetZ && obstacleForFlyingOtherDirZ < 500.0f) || (obstacleForFlyingZ > feetZ && obstacleForFlyingOtherDirZ > feetZ))
@ -2488,8 +2488,8 @@ CPed::ProcessControl(void)
flyDir = 2; flyDir = 2;
#endif #endif
if (flyDir != 0 && !bSomeVCflag1) { if (flyDir > 0 && !bSomeVCflag1) {
SetPosition((flyDir == 2 ? obstacleForFlyingOtherDir.point : obstacleForFlying.point)); GetMatrix().SetTranslateOnly((flyDir == 2 ? obstacleForFlyingOtherDir.point : obstacleForFlying.point));
GetMatrix().GetPosition().z += FEET_OFFSET; GetMatrix().GetPosition().z += FEET_OFFSET;
GetMatrix().UpdateRW(); GetMatrix().UpdateRW();
SetLanding(); SetLanding();
@ -3188,7 +3188,7 @@ CPed::ProcessEntityCollision(CEntity *collidingEnt, CColPoint *collidingPoints)
lowerSpeedLimit *= 1.5f; lowerSpeedLimit *= 1.5f;
} }
CAnimBlendAssociation *fallAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FALL); CAnimBlendAssociation *fallAnim = RpAnimBlendClumpGetAssociation(GetClump(), ANIM_STD_FALL);
if (!bWasStanding && speed > upperSpeedLimit && (/*!bPushedAlongByCar ||*/ m_vecMoveSpeed.z < lowerSpeedLimit) if (!bWasStanding && ((speed > upperSpeedLimit /* ||!bPushedAlongByCar*/) || (m_vecMoveSpeed.z < lowerSpeedLimit))
&& m_pCollidingEntity != collidingEnt) { && m_pCollidingEntity != collidingEnt) {
float damage = 100.0f * Max(speed - 0.25f, 0.0f); float damage = 100.0f * Max(speed - 0.25f, 0.0f);