Sanitizer fixes 2

This commit is contained in:
erorcun 2021-07-03 01:32:47 +03:00
parent 424a6d90bd
commit a8549e86a7
4 changed files with 27 additions and 14 deletions

View file

@ -25,7 +25,7 @@ class CCrimeBeingQd
{ {
public: public:
eCrimeType m_nType; eCrimeType m_nType;
uint32 m_nId; int32 m_nId;
uint32 m_nTime; uint32 m_nTime;
CVector m_vecPosn; CVector m_vecPosn;
bool m_bReported; bool m_bReported;

View file

@ -3049,7 +3049,7 @@ CPed::ProcessEntityCollision(CEntity *collidingEnt, CColPoint *collidingPoints)
CColModel *hisCol = CModelInfo::GetModelInfo(collidingEnt->GetModelIndex())->GetColModel(); CColModel *hisCol = CModelInfo::GetModelInfo(collidingEnt->GetModelIndex())->GetColModel();
if (!bUsesCollision) if (!bUsesCollision)
return false; return 0;
if (collidingEnt->IsVehicle() && ((CVehicle*)collidingEnt)->IsBoat()) if (collidingEnt->IsVehicle() && ((CVehicle*)collidingEnt)->IsBoat())
collidedWithBoat = true; collidedWithBoat = true;
@ -6094,7 +6094,7 @@ CPed::FollowPath(void)
} }
void void
CPed::SetEvasiveStep(CEntity *reason, uint8 animType) CPed::SetEvasiveStep(CPhysical *reason, uint8 animType)
{ {
AnimationId stepAnim; AnimationId stepAnim;
@ -6112,22 +6112,29 @@ CPed::SetEvasiveStep(CEntity *reason, uint8 animType)
if (neededTurn > PI) if (neededTurn > PI)
neededTurn = TWOPI - neededTurn; neededTurn = TWOPI - neededTurn;
CVehicle *veh = (CVehicle*)reason; if (reason->IsVehicle() && ((CVehicle*)reason)->IsCar()) {
if (reason->IsVehicle() && veh->m_vehType == VEHICLE_TYPE_CAR) { CVehicle *veh = (CVehicle*)reason;
if (veh->m_nCarHornTimer != 0) { if (veh->m_nCarHornTimer != 0) {
vehPressedHorn = true; vehPressedHorn = true;
if (!IsPlayer()) if (!IsPlayer())
animType = 1; animType = 1;
} }
} }
if (neededTurn <= DEGTORAD(90.0f) || veh->GetModelIndex() == MI_RCBANDIT || vehPressedHorn || animType != 0) {
SetLookFlag(veh, true); #ifdef FIX_BUGS
if ((CGeneral::GetRandomNumber() & 1) && veh->GetModelIndex() != MI_RCBANDIT && animType == 0) { #define IS_RCBANDIT (reason->IsVehicle() && reason->GetModelIndex() == MI_RCBANDIT)
#else
#define IS_RCBANDIT (reason->GetModelIndex() == MI_RCBANDIT)
#endif
if (neededTurn <= DEGTORAD(90.0f) || IS_RCBANDIT || vehPressedHorn || animType != 0) {
SetLookFlag(reason, true);
if ((CGeneral::GetRandomNumber() & 1) && !IS_RCBANDIT && animType == 0) {
stepAnim = ANIM_STD_HAILTAXI; stepAnim = ANIM_STD_HAILTAXI;
} else { } else {
float vehDirection = CGeneral::GetRadianAngleBetweenPoints( float dangerDirection = CGeneral::GetRadianAngleBetweenPoints(
veh->m_vecMoveSpeed.x, veh->m_vecMoveSpeed.y, reason->m_vecMoveSpeed.x, reason->m_vecMoveSpeed.y,
0.0f, 0.0f); 0.0f, 0.0f);
// Let's turn our back to the "reason" // Let's turn our back to the "reason"
@ -6137,14 +6144,14 @@ CPed::SetEvasiveStep(CEntity *reason, uint8 animType)
angleToFace -= TWOPI; angleToFace -= TWOPI;
// We don't want to run towards car's direction // We don't want to run towards car's direction
float dangerZone = angleToFace - vehDirection; float dangerZone = angleToFace - dangerDirection;
dangerZone = CGeneral::LimitRadianAngle(dangerZone); dangerZone = CGeneral::LimitRadianAngle(dangerZone);
// So, add or subtract 90deg (jump to left/right) according to that // So, add or subtract 90deg (jump to left/right) according to that
if (dangerZone > 0.0f) if (dangerZone > 0.0f)
angleToFace = vehDirection - HALFPI; angleToFace = dangerDirection - HALFPI;
else else
angleToFace = vehDirection + HALFPI; angleToFace = dangerDirection + HALFPI;
stepAnim = ANIM_STD_NUM; stepAnim = ANIM_STD_NUM;
if (animType == 0 || animType == 1) if (animType == 0 || animType == 1)
@ -6166,6 +6173,8 @@ CPed::SetEvasiveStep(CEntity *reason, uint8 animType)
SetPedState(PED_STEP_AWAY); SetPedState(PED_STEP_AWAY);
} }
} }
#undef IS_RCBANDIT
} }
void void

View file

@ -625,7 +625,7 @@ public:
void SetAimFlag(CEntity* to); void SetAimFlag(CEntity* to);
void SetAimFlag(float angle); void SetAimFlag(float angle);
void SetAmmo(eWeaponType weaponType, uint32 ammo); void SetAmmo(eWeaponType weaponType, uint32 ammo);
void SetEvasiveStep(CEntity*, uint8); void SetEvasiveStep(CPhysical*, uint8);
void GrantAmmo(eWeaponType, uint32); void GrantAmmo(eWeaponType, uint32);
void SetEvasiveDive(CPhysical*, uint8); void SetEvasiveDive(CPhysical*, uint8);
void SetAttack(CEntity*); void SetAttack(CEntity*);

View file

@ -2266,7 +2266,11 @@ CWeapon::HitsGround(CEntity *holder, CVector *fireSource, CEntity *aimingTo)
void void
CWeapon::BlowUpExplosiveThings(CEntity *thing) CWeapon::BlowUpExplosiveThings(CEntity *thing)
{ {
#ifdef FIX_BUGS
if ( thing && thing->IsObject() )
#else
if ( thing ) if ( thing )
#endif
{ {
CObject *object = (CObject*)thing; CObject *object = (CObject*)thing;
int32 mi = object->GetModelIndex(); int32 mi = object->GetModelIndex();