new script commands - mostly stubs

This commit is contained in:
Nikolay Korolev 2020-05-22 02:42:04 +03:00
parent 7e5342e9f0
commit 864847a6fe
12 changed files with 1156 additions and 103 deletions

File diff suppressed because it is too large Load Diff

View File

@ -488,6 +488,8 @@ private:
void PlayerInAngledAreaCheckCommand(int32, uint32*);
void CharInAreaCheckCommand(int32, uint32*);
void CarInAreaCheckCommand(int32, uint32*);
void LocateObjectCommand(int32, uint32*);
void ObjectInAreaCheckCommand(int32, uint32*);
float LimitAngleOnCircle(float angle) { return angle < 0.0f ? angle + 360.0f : angle; }

View File

@ -178,7 +178,7 @@ CColStore::LoadCollision(const CVector2D &pos)
}else{
for (int j = 0; j < MAX_CLEANUP; j++) {
CPhysical* pEntity = CTheScripts::MissionCleanup.DoesThisEntityWaitForCollision(j);
if (pEntity /* !pEntity->bDontLoadCollision && !pEntity->bIsFrozen */) {
if (pEntity && !pEntity->bDontLoadCollision && !pEntity->bIsFrozen) {
if (GetBoundingBox(i).IsPointInside(pEntity->GetPosition(), -80.0f))
wantThisOne = true;
}

View File

@ -149,13 +149,14 @@ CPlayerInfo::Clear(void)
}
void
CPlayerInfo::BlowUpRCBuggy(void)
CPlayerInfo::BlowUpRCBuggy(bool actually)
{
if (!m_pRemoteVehicle || m_pRemoteVehicle->bRemoveFromWorld)
return;
CRemote::TakeRemoteControlledCarFromPlayer();
m_pRemoteVehicle->BlowUpCar(FindPlayerPed());
if (actually)
m_pRemoteVehicle->BlowUpCar(FindPlayerPed());
}
void

View File

@ -50,6 +50,7 @@ public:
int32 m_nExplosionsSinceLastReward;
int32 field_268;
int32 field_272;
uint32 m_nHavocLevel;
bool m_bInfiniteSprint;
bool m_bFastReload;
bool m_bFireproof;
@ -73,7 +74,7 @@ public:
bool IsPlayerInRemoteMode(void);
void PlayerFailedCriticalMission(void);
void Clear(void);
void BlowUpRCBuggy(void);
void BlowUpRCBuggy(bool);
void CancelPlayerEnteringCars(CVehicle*);
bool IsRestartingAfterDeath(void);
bool IsRestartingAfterArrest(void);

View File

@ -64,6 +64,9 @@ CPhysical::CPhysical(void)
m_phy_flagA20 = false;
m_nZoneLevel = LEVEL_NONE;
bIsFrozen = false;
bDontLoadCollision = false;
}
CPhysical::~CPhysical(void)

View File

@ -60,6 +60,9 @@ public:
uint8 bHitByTrain : 1;
uint8 bSkipLineCol : 1;
uint8 bIsFrozen : 1;
uint8 bDontLoadCollision : 1;
uint8 m_nSurfaceTouched;
int8 m_nZoneLevel;

View File

@ -603,14 +603,25 @@ CPed::CPed(uint32 pedType) : m_pedIK(this)
bCarPassenger = false;
bMiamiViceCop = false;
bMoneyHasBeenGivenByScript = false;
bHasBeenPhotographed = false;
bIsDrowning = false;
bCanDrownInWater = true;
bDrownsInWater = true;
#ifdef VC_PED_PORTS
bHeadStuckInCollision = false;
#endif
bIsPlayerFriend = true;
bDeadPedInFrontOfCar = false;
bStayInCarOnJack = false;
bDontFight = false;
bDoomAim = true;
bCanBeShotInVehicle = true;
bIgnoreThreatsBehindObjects = false;
bNeverEverTargetThisPed = false;
bBoughtIceCream = false;
if ((CGeneral::GetRandomNumber() & 3) == 0)
bHasACamera = true;
@ -4116,7 +4127,7 @@ CPed::InflictDamage(CEntity *damagedBy, eWeaponType method, float damage, ePedPi
if (DyingOrDead())
return false;
if (method == WEAPONTYPE_DROWNING && !bCanDrownInWater)
if (method == WEAPONTYPE_DROWNING && !bDrownsInWater)
return false;
if (!bUsesCollision && (!bInVehicle || m_nPedState != PED_DRIVING) && method != WEAPONTYPE_DROWNING)

View File

@ -225,10 +225,10 @@ enum eObjective : uint32 {
OBJECTIVE_USE_STOP_ATTRACTOR,
OBJECTIVE_USE_PIZZA_ATTRACTOR,
OBJECTIVE_USE_SHELTER_ATTRACTOR,
OBJ_46,
OBJECTIVE_AIM_GUN_AT_PED,
OBJ_47,
OBJECTIVE_WAIT_FOR_RAIN_TO_END,
OBJ_49,
OBJECTIVE_SPRINT_TO_COORD,
OBJ_50,
OBJ_51,
OBJECTIVE_WAIT_FOR_BUS,
@ -442,10 +442,10 @@ public:
//uint32 b155_10
uint32 bMiamiViceCop : 1;
uint32 bMoneyHasBeenGivenByScript : 1; //
//uint32 b155_80
uint32 bHasBeenPhotographed : 1; //
uint32 bIsDrowning : 1;
uint32 bCanDrownInWater : 1; // Originally bDrownsInWater
uint32 bDrownsInWater : 1;
//uint32 b156_4
//uint32 b156_8
uint32 bIsPlayerFriend : 1;
@ -453,23 +453,23 @@ public:
uint32 bHeadStuckInCollision : 1;
#endif
uint32 bDeadPedInFrontOfCar : 1;
//uint32 b156_80
uint32 bStayInCarOnJack : 1;
//uint32 b157_1
//uint32 b157_2
//uint32 b157_4
uint32 bDontFight : 1;
uint32 bDoomAim : 1;
uint32 bCanBeShotInVehicle : 1;
//uint32 b157_8
//uint32 b157_10
//uint32 b157_20
//uint32 b157_40
//uint32 b157_80
uint32 bIgnoreThreatsBehindObjects : 1;
//uint32 b158_1
uint32 bNeverEverTargetThisPed : 1;
//uint32 b158_2
//uint32 b158_4
//uint32 b158_8
//uint32 b158_10
//uint32 b158_20
uint32 bBoughtIceCream : 1;
//uint32 b158_40
//uint32 b158_80

View File

@ -57,7 +57,8 @@ void CCarGenerator::DoInternalProcessing()
mi = -m_nModelIndex;
if (m_nModelIndex == -1 || !CStreaming::HasModelLoaded(mi)) {
CZoneInfo pZone;
CTheZones::GetZoneInfoForTimeOfDay(&FindPlayerCoors(), &pZone);
CVector pos = FindPlayerCoors();
CTheZones::GetZoneInfoForTimeOfDay(&pos, &pZone);
mi = CCarCtrl::ChooseCarModel(CCarCtrl::ChooseCarRating(&pZone));
if (mi < 0)
return;

View File

@ -30,6 +30,7 @@ bool CVehicle::bAltDodoCheat;
#endif
bool CVehicle::m_bDisableMouseSteering = true;
bool CVehicle::bDisableRemoteDetonation;
bool CVehicle::bDisableRemoteDetonationOnContact;
void *CVehicle::operator new(size_t sz) { return CPools::GetVehiclePool()->New(); }
void *CVehicle::operator new(size_t sz, int handle) { return CPools::GetVehiclePool()->New(handle); }
@ -104,7 +105,9 @@ CVehicle::CVehicle(uint8 CreatedBy)
m_nCarHornPattern = 0;
m_nCarHornDelay = 0;
bPartOfConvoy = false;
bHeliMinimumTilt = false;
bIsDrowning = false;
bTyresDontBurst = false;
bCreatedAsPoliceVehicle = false;
bParking = false;
m_nAlarmState = 0;

View File

@ -183,11 +183,11 @@ public:
uint8 bIsCarParkVehicle : 1; // Car has been created using the special CAR_PARK script command
uint8 bHasAlreadyBeenRecorded : 1; // Used for replays
uint8 bPartOfConvoy : 1;
//uint8 bHeliMinimumTilt : 1; // This heli should have almost no tilt really
uint8 bHeliMinimumTilt : 1; // This heli should have almost no tilt really
//uint8 bAudioChangingGear : 1; // sounds like vehicle is changing gear
uint8 bIsDrowning : 1; // is vehicle occupants taking damage in water (i.e. vehicle is dead in water)
//uint8 bTyresDontBurst : 1; // If this is set the tyres are invincible
uint8 bTyresDontBurst : 1; // If this is set the tyres are invincible
uint8 bCreatedAsPoliceVehicle : 1;// True if this guy was created as a police vehicle (enforcer, policecar, miamivice car etc)
//uint8 bRestingOnPhysical : 1; // Dont go static cause car is sitting on a physical object that might get removed
uint8 bParking : 1;
@ -318,6 +318,7 @@ public:
#endif
static bool m_bDisableMouseSteering;
static bool bDisableRemoteDetonation;
static bool bDisableRemoteDetonationOnContact;
};
void DestroyVehicleAndDriverAndPassengers(CVehicle* pVehicle);