Peds, ProcessObjective and fixes

This commit is contained in:
eray orçunus 2019-09-27 00:01:50 +03:00
parent 3cb0a62ee6
commit 0c385195d8
7 changed files with 1593 additions and 70 deletions

View File

@ -14,6 +14,7 @@ WRAPPER void CCarAI::AddPoliceOccupants(CVehicle*) { EAXJMP(0x415C60); }
WRAPPER void CCarAI::AddAmbulanceOccupants(CVehicle*) { EAXJMP(0x415CE0); }
WRAPPER void CCarAI::AddFiretruckOccupants(CVehicle*) { EAXJMP(0x415D00); }
WRAPPER void CCarAI::TellOccupantsToLeaveCar(CVehicle*) { EAXJMP(0x415D20); }
WRAPPER float CCarAI::GetCarToGoToCoors(CVehicle*, CVector*) { EAXJMP(0x415B10); }
void CCarAI::CarHasReasonToStop(CVehicle* pVehicle)
{

View File

@ -16,4 +16,5 @@ public:
static void AddFiretruckOccupants(CVehicle*);
static void CarHasReasonToStop(CVehicle*);
static void TellOccupantsToLeaveCar(CVehicle*);
static float GetCarToGoToCoors(CVehicle*, CVector*);
};

View File

@ -137,5 +137,6 @@ enum Config {
#define USE_DEBUG_SCRIPT_LOADER
#define EXPLODING_AIRTRAIN // can blow up jumbo jet with rocket launcher
#define ANIMATE_PED_COL_MODEL
#define CANCELLABLE_CAR_ENTER
//#define REMOVE_TREADABLE_PATHFIND
#define CANCELLABLE_CAR_ENTER
#define VC_PED_PORTS

File diff suppressed because it is too large Load Diff

View File

@ -129,7 +129,7 @@ enum eObjective : uint32 {
OBJECTIVE_IDLE,
OBJECTIVE_FLEE_TILL_SAFE,
OBJECTIVE_GUARD_SPOT,
OBJECTIVE_GUARD_AREA,
OBJECTIVE_GUARD_AREA, // not implemented
OBJECTIVE_WAIT_IN_CAR,
OBJECTIVE_WAIT_IN_CAR_THEN_GETOUT,
OBJECTIVE_KILL_CHAR_ON_FOOT,
@ -141,15 +141,15 @@ enum eObjective : uint32 {
OBJECTIVE_LEAVE_VEHICLE,
OBJECTIVE_ENTER_CAR_AS_PASSENGER,
OBJECTIVE_ENTER_CAR_AS_DRIVER,
OBJECTIVE_FOLLOW_CAR_IN_CAR,
OBJECTIVE_FIRE_AT_OBJ_FROM_VEHICLE,
OBJECTIVE_DESTROY_OBJ,
OBJECTIVE_FOLLOW_CAR_IN_CAR, // seems not implemented so far
OBJECTIVE_FIRE_AT_OBJ_FROM_VEHICLE, // not implemented
OBJECTIVE_DESTROY_OBJ, // not implemented
OBJECTIVE_DESTROY_CAR,
OBJECTIVE_GOTO_AREA_ANY_MEANS,
OBJECTIVE_GOTO_AREA_ON_FOOT,
OBJECTIVE_RUN_TO_AREA,
OBJECTIVE_23,
OBJECTIVE_24,
OBJECTIVE_23, // not implemented
OBJECTIVE_24, // not implemented
OBJECTIVE_FIGHT_CHAR,
OBJECTIVE_SET_LEADER,
OBJECTIVE_FOLLOW_ROUTE,
@ -160,7 +160,9 @@ enum eObjective : uint32 {
OBJECTIVE_STEAL_ANY_CAR,
OBJECTIVE_MUG_CHAR,
OBJECTIVE_FLEE_CAR,
OBJECTIVE_35
#ifdef VC_PED_PORTS
OBJECTIVE_LEAVE_CAR_AND_DIE
#endif
};
enum {
@ -469,8 +471,8 @@ public:
uint32 m_soundStart;
uint16 m_lastQueuedSound;
uint16 m_queuedSound;
CVector m_vecSeekPosEx;
float m_seekExAngle;
CVector m_vecSeekPosEx; // used in objectives
float m_distanceToCountSeekDoneEx; // used in objectives
static void *operator new(size_t);
static void *operator new(size_t, int);
@ -651,6 +653,11 @@ public:
bool RunToReportCrime(eCrimeType);
bool PlacePedOnDryLand(void);
bool PossiblyFindBetterPosToSeekCar(CVector*, CVehicle*);
void UpdateFromLeader(void);
int ScanForThreats(void);
void SetEnterCar(CVehicle*, uint32);
bool WarpPedToNearEntityOffScreen(CEntity*);
void SetExitCar(CVehicle*, uint32);
// Static methods
static CVector GetLocalPositionToOpenCarDoor(CVehicle *veh, uint32 component, float offset);
@ -721,6 +728,10 @@ public:
void PointGunAt(void);
bool ServiceTalkingWhenDead(void);
void SetPedPositionInTrain(void);
void SetShootTimer(uint32);
void SetSeekCar(CVehicle*, uint32);
void SetSeekBoatPosition(CVehicle*);
void SetExitTrain(CVehicle*);
bool HasWeapon(uint8 weaponType) { return m_weapons[weaponType].m_eWeaponType == weaponType; }
CWeapon &GetWeapon(uint8 weaponType) { return m_weapons[weaponType]; }
@ -734,6 +745,9 @@ public:
// set by 0482:set_threat_reaction_range_multiplier opcode
static uint16 &nThreatReactionRangeMultiplier;
// set by 0481:set_enter_car_range_multiplier opcode
static uint16 &nEnterCarRangeMultiplier;
static bool &bNastyLimbsCheat;
static bool &bPedCheat2;
static bool &bPedCheat3;

View File

@ -4,3 +4,4 @@
#include "PedRoutes.h"
WRAPPER int16 CRouteNode::GetRouteThisPointIsOn(int16) { EAXJMP(0x4EE7A0); }
WRAPPER CVector CRouteNode::GetPointPosition(int16) { EAXJMP(0x4EE780); }

View File

@ -3,5 +3,6 @@
class CRouteNode
{
public:
static int16 GetRouteThisPointIsOn(int16 point);
static int16 GetRouteThisPointIsOn(int16);
static CVector GetPointPosition(int16);
};