summaryrefslogtreecommitdiffstats
path: root/src/peds
diff options
context:
space:
mode:
authorerorcun <erayorcunus@gmail.com>2020-01-07 15:08:51 +0100
committerGitHub <noreply@github.com>2020-01-07 15:08:51 +0100
commit18de44e038c904e4de21f42a12afa188146587d1 (patch)
tree6efdd7adc1648fd63414227dcd9ac13d54ab31b5 /src/peds
parentUse CGeneral::faststricmp in CPed::ServiceTalking (diff)
parentfixes (diff)
downloadre3-18de44e038c904e4de21f42a12afa188146587d1.tar
re3-18de44e038c904e4de21f42a12afa188146587d1.tar.gz
re3-18de44e038c904e4de21f42a12afa188146587d1.tar.bz2
re3-18de44e038c904e4de21f42a12afa188146587d1.tar.lz
re3-18de44e038c904e4de21f42a12afa188146587d1.tar.xz
re3-18de44e038c904e4de21f42a12afa188146587d1.tar.zst
re3-18de44e038c904e4de21f42a12afa188146587d1.zip
Diffstat (limited to 'src/peds')
-rw-r--r--src/peds/Ped.cpp24
-rw-r--r--src/peds/Ped.h18
-rw-r--r--src/peds/PlayerPed.cpp12
-rw-r--r--src/peds/PlayerPed.h1
4 files changed, 34 insertions, 21 deletions
diff --git a/src/peds/Ped.cpp b/src/peds/Ped.cpp
index 45b0d769..7b96fc46 100644
--- a/src/peds/Ped.cpp
+++ b/src/peds/Ped.cpp
@@ -497,7 +497,7 @@ CPed::CPed(uint32 pedType) : m_pedIK(this)
bChangedSeat = false;
bUpdateAnimHeading = false;
bBodyPartJustCameOff = false;
- m_ped_flagC40 = false;
+ bIsShooting = false;
bFindNewNodeAfterStateRestore = false;
bHasACamera = false;
@@ -519,8 +519,8 @@ CPed::CPed(uint32 pedType) : m_pedIK(this)
bFleeAfterExitingCar = false;
bWanderPathAfterExitingCar = false;
- m_ped_flagF2 = false;
- m_ped_flagF4 = false;
+ bIsLeader = false;
+ bDontDragMeOutCar = false;
m_ped_flagF8 = false;
bWillBeQuickJacked = false;
bCancelEnteringCar = false;
@@ -528,7 +528,7 @@ CPed::CPed(uint32 pedType) : m_pedIK(this)
bDuckAndCover = false;
bStillOnValidPoly = false;
- m_ped_flagG2 = true;
+ bAllowMedicsToReviveMe = true;
bResetWalkAnims = false;
bStartWanderPathOnFoot = false;
bOnBoat = false;
@@ -538,12 +538,12 @@ CPed::CPed(uint32 pedType) : m_pedIK(this)
m_ped_flagH1 = false;
bHitSteepSlope = false;
- m_ped_flagH4 = false;
+ bCullExtraFarAway = false;
bClearObjective = false;
bTryingToReachDryLand = false;
bCollidedWithMyVehicle = false;
bRichFromMugging = false;
- m_ped_flagH80 = false;
+ bChrisCriminal = false;
bShakeFist = false;
bNoCriticalHits = false;
@@ -7731,7 +7731,7 @@ CPed::GetNearestDoor(CVehicle *veh, CVector &posToOpen)
CPed *rfPassenger = veh->pPassengers[0];
if (!rfPassenger
- || rfPassenger->m_leader != this && !rfPassenger->m_ped_flagF4 && (veh->VehicleCreatedBy != MISSION_VEHICLE || m_objective != OBJECTIVE_ENTER_CAR_AS_DRIVER)
+ || rfPassenger->m_leader != this && !rfPassenger->bDontDragMeOutCar && (veh->VehicleCreatedBy != MISSION_VEHICLE || m_objective != OBJECTIVE_ENTER_CAR_AS_DRIVER)
|| veh->IsRoomForPedToLeaveCar(CAR_DOOR_LF, enterOffset) == 0) {
if ((veh->m_nGettingInFlags & CAR_DOOR_FLAG_RF) == 0
@@ -9223,7 +9223,7 @@ CPed::ProcessControl(void)
}
CVisibilityPlugins::SetClumpAlpha(GetClump(), alpha);
- m_ped_flagC40 = false;
+ bIsShooting = false;
BuildPedLists();
bIsInWater = false;
ProcessBuoyancy();
@@ -10776,7 +10776,7 @@ CPed::PedAnimDoorOpenCB(CAnimBlendAssociation* animAssoc, void* arg)
}
if (ped->m_vehEnterType != CAR_DOOR_LF && ped->m_vehEnterType != CAR_DOOR_LR) {
- if (pedToDragOut && !pedToDragOut->m_ped_flagF4) {
+ if (pedToDragOut && !pedToDragOut->bDontDragMeOutCar) {
if (pedToDragOut->m_nPedState != PED_DRIVING) {
ped->QuitEnteringCar();
pedToDragOut = nil;
@@ -10807,9 +10807,9 @@ CPed::PedAnimDoorOpenCB(CAnimBlendAssociation* animAssoc, void* arg)
}
} else {
if (pedToDragOut) {
- if (pedToDragOut->m_nPedState != PED_DRIVING || pedToDragOut->m_ped_flagF4) {
+ if (pedToDragOut->m_nPedState != PED_DRIVING || pedToDragOut->bDontDragMeOutCar) {
- // BUG: Player freezes in that condition due to it's objective isn't restored. It's an unfinished feature, used in VC.
+ // BUG: Player freezes in that condition due to its objective isn't restored. It's an unfinished feature, used in VC.
ped->QuitEnteringCar();
pedToDragOut = nil;
} else {
@@ -15860,7 +15860,7 @@ CPed::SeekCar(void)
break;
case STATUS_ABANDONED:
if (m_vehEnterType == CAR_DOOR_RF && vehToSeek->pPassengers[0]) {
- if (vehToSeek->pPassengers[0]->m_ped_flagF4) {
+ if (vehToSeek->pPassengers[0]->bDontDragMeOutCar) {
if (IsPlayer())
CPed::SetEnterCar(vehToSeek, m_vehEnterType);
} else {
diff --git a/src/peds/Ped.h b/src/peds/Ped.h
index 42d2335e..f8a063f3 100644
--- a/src/peds/Ped.h
+++ b/src/peds/Ped.h
@@ -317,7 +317,7 @@ public:
uint8 bChangedSeat : 1;
uint8 bUpdateAnimHeading : 1;
uint8 bBodyPartJustCameOff : 1;
- uint8 m_ped_flagC40 : 1;
+ uint8 bIsShooting : 1;
uint8 bFindNewNodeAfterStateRestore : 1;
uint8 bHasACamera : 1; // does ped possess a camera to document accidents involves fire/explosion
@@ -339,16 +339,16 @@ public:
uint8 bFleeAfterExitingCar : 1;
uint8 bWanderPathAfterExitingCar : 1;
- uint8 m_ped_flagF2 : 1;
- uint8 m_ped_flagF4 : 1; // Unfinished feature from VC, probably bDontDragMeOutCar
+ uint8 bIsLeader : 1;
+ uint8 bDontDragMeOutCar : 1; // unfinished feature
uint8 m_ped_flagF8 : 1;
uint8 bWillBeQuickJacked : 1;
uint8 bCancelEnteringCar : 1; // after door is opened or couldn't be opened due to it's locked
uint8 bObstacleShowedUpDuringKillObjective : 1;
uint8 bDuckAndCover : 1;
- uint8 bStillOnValidPoly : 1;
- uint8 m_ped_flagG2 : 1;
+ uint8 bStillOnValidPoly : 1; // set if the polygon the ped is on is still valid for collision
+ uint8 bAllowMedicsToReviveMe : 1;
uint8 bResetWalkAnims : 1;
uint8 bStartWanderPathOnFoot : 1; // exits the car if he's in it, reset after path found
uint8 bOnBoat : 1; // not just driver, may be just standing
@@ -358,12 +358,12 @@ public:
uint8 m_ped_flagH1 : 1;
uint8 bHitSteepSlope : 1; // has ped collided/is standing on a steep slope (surface type)
- uint8 m_ped_flagH4 : 1;
+ uint8 bCullExtraFarAway : 1; // special ped only gets culled if it's extra far away (for roadblocks)
uint8 bClearObjective : 1;
- uint8 bTryingToReachDryLand : 1;
+ uint8 bTryingToReachDryLand : 1; // has ped just exited boat and trying to get to dry land
uint8 bCollidedWithMyVehicle : 1;
- uint8 bRichFromMugging : 1; // ped has lots of cash from mugging people - will drop money if someone points gun to him
- uint8 m_ped_flagH80 : 1;
+ uint8 bRichFromMugging : 1; // ped has lots of cash cause they've been mugging people
+ uint8 bChrisCriminal : 1; // Is a criminal as killed during Chris' police mission (should be counted as such)
uint8 bShakeFist : 1; // test shake hand at look entity
uint8 bNoCriticalHits : 1; // if set, limbs won't came off
diff --git a/src/peds/PlayerPed.cpp b/src/peds/PlayerPed.cpp
index 7c946dda..a4ffdc7c 100644
--- a/src/peds/PlayerPed.cpp
+++ b/src/peds/PlayerPed.cpp
@@ -7,6 +7,7 @@
#include "World.h"
#include "RpAnimBlend.h"
#include "General.h"
+#include "Pools.h"
CPlayerPed::~CPlayerPed()
{
@@ -73,6 +74,17 @@ CPlayerPed::SetWantedLevelNoDrop(int32 level)
m_pWanted->SetWantedLevelNoDrop(level);
}
+void
+CPlayerPed::MakeObjectTargettable(int32 handle)
+{
+ for (int i = 0; i < ARRAY_SIZE(m_nTargettableObjects); i++) {
+ if (CPools::GetObjectPool()->GetAt(m_nTargettableObjects[i]) == nil) {
+ m_nTargettableObjects[i] = handle;
+ return;
+ }
+ }
+}
+
// I don't know the actual purpose of parameter
void
CPlayerPed::AnnoyPlayerPed(bool annoyedByPassingEntity)
diff --git a/src/peds/PlayerPed.h b/src/peds/PlayerPed.h
index 1de1b442..6a794d41 100644
--- a/src/peds/PlayerPed.h
+++ b/src/peds/PlayerPed.h
@@ -56,6 +56,7 @@ public:
void UseSprintEnergy(void);
class CPlayerInfo *GetPlayerInfoForThisPlayerPed();
void SetRealMoveAnim(void);
+ void MakeObjectTargettable(int32);
static void SetupPlayerPed(int32);
static void DeactivatePlayerPed(int32);