mirror of
https://github.com/halpz/re3.git
synced 2025-07-03 04:20:46 +00:00
Peds, eSound and PedState enum, fixes
This commit is contained in:
@ -101,7 +101,7 @@ CCopPed::SetArrestPlayer(CPed *player)
|
||||
{
|
||||
if (!IsPedInControl() || !player)
|
||||
return;
|
||||
|
||||
/*
|
||||
switch (m_nCopType) {
|
||||
case COP_FBI:
|
||||
Say(SOUND_PED_ARREST_FBI);
|
||||
@ -112,7 +112,7 @@ CCopPed::SetArrestPlayer(CPed *player)
|
||||
default:
|
||||
Say(SOUND_PED_ARREST_COP);
|
||||
break;
|
||||
}
|
||||
} */
|
||||
if (player->EnteringCar()) {
|
||||
if (CTimer::GetTimeInMilliseconds() > m_nPedStateTimer)
|
||||
return;
|
||||
@ -605,6 +605,7 @@ CCopPed::ProcessControl(void)
|
||||
if (IsPedInControl())
|
||||
SetIdle();
|
||||
}
|
||||
/*
|
||||
if (m_bIsInPursuit) {
|
||||
if (player->m_nPedState != PED_ARRESTED && !player->DyingOrDead()) {
|
||||
switch (m_nCopType) {
|
||||
@ -622,7 +623,7 @@ CCopPed::ProcessControl(void)
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} */
|
||||
|
||||
if (IsPedInControl()) {
|
||||
CopAI();
|
||||
|
@ -308,7 +308,7 @@ CEmergencyPed::MedicAI(void)
|
||||
m_nLastPedState = PED_CPR;
|
||||
SetLookFlag(m_pRevivedPed, 0);
|
||||
SetLookTimer(500);
|
||||
Say(SOUND_PED_HEALING);
|
||||
//Say(SOUND_PED_HEALING);
|
||||
if (m_pAttendedAccident->m_nMedicsPerformingCPR) {
|
||||
SetIdle();
|
||||
m_nEmergencyPedState = EMERGENCY_PED_STAND_STILL;
|
||||
|
1185
src/peds/Ped.cpp
1185
src/peds/Ped.cpp
File diff suppressed because it is too large
Load Diff
@ -245,6 +245,7 @@ enum eObjective : uint32 {
|
||||
enum {
|
||||
RANDOM_CHAR = 1,
|
||||
MISSION_CHAR,
|
||||
TODO_CHAR, // TODO(Miami)
|
||||
};
|
||||
|
||||
enum PedLineUpPhase {
|
||||
@ -281,7 +282,7 @@ enum PedState
|
||||
PED_PURSUE,
|
||||
PED_FOLLOW_PATH,
|
||||
PED_SNIPER_MODE,
|
||||
PED_ROCKET_ODE,
|
||||
PED_ROCKET_MODE,
|
||||
PED_DUMMY,
|
||||
PED_PAUSE,
|
||||
PED_ATTACK,
|
||||
@ -301,12 +302,17 @@ enum PedState
|
||||
PED_INVESTIGATE,
|
||||
PED_STEP_AWAY,
|
||||
PED_ON_FIRE,
|
||||
PED_SUN_BATHE,
|
||||
PED_FLASH,
|
||||
PED_JOG,
|
||||
PED_ANSWER_MOBILE,
|
||||
|
||||
PED_UNKNOWN, // Same with IDLE, but also infects up to 5 peds with same pedType and WANDER_PATH, so they become stone too. HANG_OUT in Fire_Head's idb
|
||||
|
||||
PED_STATES_NO_AI,
|
||||
|
||||
// One of these states isn't on PS2 - start
|
||||
PED_ABSEIL,
|
||||
PED_SIT,
|
||||
PED_JUMP,
|
||||
PED_FALL,
|
||||
PED_GETUP,
|
||||
@ -317,7 +323,6 @@ enum PedState
|
||||
PED_ENTER_TRAIN,
|
||||
PED_EXIT_TRAIN,
|
||||
PED_ARREST_PLAYER,
|
||||
// One of these states isn't on PS2 - end
|
||||
|
||||
PED_DRIVING,
|
||||
PED_PASSENGER,
|
||||
@ -332,6 +337,7 @@ enum PedState
|
||||
PED_EXIT_CAR,
|
||||
PED_HANDS_UP,
|
||||
PED_ARRESTED,
|
||||
PED_DEPLOY_STINGER
|
||||
};
|
||||
|
||||
enum eMoveState {
|
||||
@ -518,7 +524,6 @@ public:
|
||||
uint16 m_nPathNodes;
|
||||
int16 m_nCurPathNode;
|
||||
int8 m_nPathDir;
|
||||
public:
|
||||
CPathNode *m_pLastPathNode;
|
||||
CPathNode *m_pNextPathNode;
|
||||
float m_fHealth;
|
||||
@ -559,6 +564,7 @@ public:
|
||||
float m_fleeFromPosY;
|
||||
CEntity *m_fleeFrom;
|
||||
uint32 m_fleeTimer;
|
||||
CEntity* pThreatEx; // TODO(Miami): What is this?
|
||||
CEntity* m_collidingEntityWhileFleeing;
|
||||
uint32 m_collidingThingTimer;
|
||||
CEntity *m_pCollidingEntity;
|
||||
@ -825,6 +831,15 @@ public:
|
||||
void RequestDelayedWeapon();
|
||||
void AddInCarAnims(CVehicle* car, bool isDriver);
|
||||
bool CanBeDamagedByThisGangMember(CPed*);
|
||||
void AnswerMobile(void);
|
||||
void BuyIceCream(void);
|
||||
void CheckThreatValidity(void);
|
||||
void ClearAnswerMobile(void);
|
||||
void SetAnswerMobile(void);
|
||||
void AttachPedToEntity(CEntity*, CVector, uint16, float, eWeaponType);
|
||||
void DettachPedFromEntity();
|
||||
void PedShuffle();
|
||||
void DriveVehicle();
|
||||
|
||||
// Static methods
|
||||
static CVector GetLocalPositionToOpenCarDoor(CVehicle *veh, uint32 component, float offset);
|
||||
@ -908,11 +923,7 @@ public:
|
||||
void UpdatePosition(void);
|
||||
CObject *SpawnFlyingComponent(int, int8);
|
||||
void SetCarJack_AllClear(CVehicle*, uint32, uint32);
|
||||
#ifdef VC_PED_PORTS
|
||||
bool CanPedJumpThis(CEntity*, CVector*);
|
||||
#else
|
||||
bool CanPedJumpThis(CEntity*);
|
||||
#endif
|
||||
|
||||
void SetNewAttraction(CPedAttractor* pAttractor, const CVector& pos, float, float, int);
|
||||
void ClearWaitState(void);
|
||||
@ -1063,6 +1074,8 @@ public:
|
||||
#endif
|
||||
};
|
||||
|
||||
void FinishTalkingOnMobileCB(CAnimBlendAssociation* assoc, void* arg);
|
||||
void StartTalkingOnMobileCB(CAnimBlendAssociation* assoc, void* arg);
|
||||
void FinishFuckUCB(CAnimBlendAssociation *assoc, void *arg);
|
||||
|
||||
// TODO(Miami): Change those when Ped struct is done
|
||||
|
@ -46,7 +46,7 @@ CPlayerPed::CPlayerPed(void) : CPed(PEDTYPE_PLAYER1)
|
||||
m_pWanted->Initialise();
|
||||
m_pArrestingCop = nil;
|
||||
m_currentWeapon = WEAPONTYPE_UNARMED;
|
||||
m_nSelectedWepSlot = WEAPONTYPE_UNARMED;
|
||||
m_nSelectedWepSlot = 0;
|
||||
m_nSpeedTimer = 0;
|
||||
m_bSpeedTimerFlag = false;
|
||||
|
||||
@ -1163,6 +1163,9 @@ CPlayerPed::ProcessPlayerWeapon(CPad *padUsed)
|
||||
}
|
||||
|
||||
#ifdef FREE_CAM
|
||||
static int8 changedHeadingRate = 0;
|
||||
if (changedHeadingRate == 2) changedHeadingRate = 1;
|
||||
|
||||
// Rotate player/arm when shooting. We don't have auto-rotation anymore
|
||||
if (CCamera::m_bUseMouse3rdPerson && CCamera::bFreeCam &&
|
||||
m_nSelectedWepSlot == m_currentWeapon && m_nMoveState != PEDMOVE_SPRINT) {
|
||||
@ -1186,6 +1189,7 @@ CPlayerPed::ProcessPlayerWeapon(CPad *padUsed)
|
||||
#endif
|
||||
} else {
|
||||
m_fRotationDest = limitedCam;
|
||||
changedHeadingRate = 2;
|
||||
m_headingRate = 12.5f;
|
||||
|
||||
// Anim. fix for shotgun, ak47 and m16 (we must finish rot. it quickly)
|
||||
@ -1204,10 +1208,12 @@ CPlayerPed::ProcessPlayerWeapon(CPad *padUsed)
|
||||
}
|
||||
} else if (weaponInfo->m_bCanAimWithArm)
|
||||
ClearPointGunAt();
|
||||
else
|
||||
RestoreHeadingRate();
|
||||
}
|
||||
}
|
||||
if (changedHeadingRate == 1) {
|
||||
changedHeadingRate = 0;
|
||||
RestoreHeadingRate();
|
||||
}
|
||||
#endif
|
||||
|
||||
if (padUsed->GetTarget() && m_nSelectedWepSlot == m_currentWeapon && m_nMoveState != PEDMOVE_SPRINT) {
|
||||
@ -1453,7 +1459,7 @@ CPlayerPed::ProcessControl(void)
|
||||
case PED_WANDER_PATH:
|
||||
case PED_PURSUE:
|
||||
case PED_FOLLOW_PATH:
|
||||
case PED_ROCKET_ODE:
|
||||
case PED_ROCKET_MODE:
|
||||
case PED_DUMMY:
|
||||
case PED_PAUSE:
|
||||
case PED_FACE_PHONE:
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include "DummyObject.h"
|
||||
#include "Script.h"
|
||||
#include "Shadows.h"
|
||||
#include "SurfaceTable.h"
|
||||
|
||||
#define MIN_CREATION_DIST 40.0f // not for start of the game (look at the GeneratePedsAtStartOfGame)
|
||||
#define CREATION_RANGE 10.0f // added over the MIN_CREATION_DIST.
|
||||
@ -1101,3 +1102,15 @@ CPopulation::AddDeadPedInFrontOfCar(const CVector& pos, CVehicle* pCulprit)
|
||||
CVisibilityPlugins::SetClumpAlpha(pPed->GetClump(), 0);
|
||||
return pPed;
|
||||
}
|
||||
|
||||
bool
|
||||
CPopulation::IsSkateable(CVector const& pos)
|
||||
{
|
||||
CColPoint foundCol;
|
||||
CEntity* foundEnt = nil;
|
||||
CWorld::ProcessVerticalLine(pos + CVector(0.f, 0.f, 2.f), pos.z - 2.0f, foundCol, foundEnt, true, false, false, false, false, false, nil);
|
||||
if (!foundEnt)
|
||||
return false;
|
||||
|
||||
return foundCol.surfaceB == SURFACE_TARMAC || foundCol.surfaceB == SURFACE_PAVEMENT;
|
||||
}
|
@ -89,6 +89,7 @@ public:
|
||||
static void ConvertAllObjectsToDummyObjects(void);
|
||||
static bool TestRoomForDummyObject(CObject*);
|
||||
static bool TestSafeForRealObject(CDummyObject*);
|
||||
static bool IsSkateable(CVector const&);
|
||||
|
||||
static CPed* AddDeadPedInFrontOfCar(const CVector& pos, CVehicle* pCulprit);
|
||||
};
|
||||
|
Reference in New Issue
Block a user