mirror of
https://git.rip/DMCA_FUCKER/re3.git
synced 2024-12-23 12:59:59 +00:00
minor refactoring
This commit is contained in:
parent
0845abf640
commit
db1bdfd62d
|
@ -12,6 +12,7 @@
|
||||||
#include "Physical.h"
|
#include "Physical.h"
|
||||||
#include "ColStore.h"
|
#include "ColStore.h"
|
||||||
#include "VarConsole.h"
|
#include "VarConsole.h"
|
||||||
|
#include "Pools.h"
|
||||||
|
|
||||||
CPool<ColDef,ColDef> *CColStore::ms_pColPool;
|
CPool<ColDef,ColDef> *CColStore::ms_pColPool;
|
||||||
#ifndef MASTER
|
#ifndef MASTER
|
||||||
|
@ -184,7 +185,18 @@ CColStore::LoadCollision(const CVector2D &pos)
|
||||||
wantThisOne = true;
|
wantThisOne = true;
|
||||||
}else{
|
}else{
|
||||||
for (int j = 0; j < MAX_CLEANUP; j++) {
|
for (int j = 0; j < MAX_CLEANUP; j++) {
|
||||||
CPhysical* pEntity = CTheScripts::MissionCleanup.DoesThisEntityWaitForCollision(j);
|
CPhysical* pEntity = nil;
|
||||||
|
cleanup_entity_struct* pCleanup = &CTheScripts::MissionCleanUp.m_sEntities[i];
|
||||||
|
if (pCleanup->type == CLEANUP_CAR) {
|
||||||
|
pEntity = CPools::GetVehiclePool()->GetAt(pCleanup->id);
|
||||||
|
if (!pEntity || pEntity->GetStatus() == STATUS_WRECKED)
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else if (pCleanup->type == CLEANUP_CHAR) {
|
||||||
|
pEntity = CPools::GetPedPool()->GetAt(pCleanup->id);
|
||||||
|
if (!pEntity || ((CPed*)pEntity)->DyingOrDead())
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (pEntity && !pEntity->bDontLoadCollision && !pEntity->bIsFrozen) {
|
if (pEntity && !pEntity->bDontLoadCollision && !pEntity->bIsFrozen) {
|
||||||
if (GetBoundingBox(i).IsPointInside(pEntity->GetPosition(), -80.0f))
|
if (GetBoundingBox(i).IsPointInside(pEntity->GetPosition(), -80.0f))
|
||||||
wantThisOne = true;
|
wantThisOne = true;
|
||||||
|
|
|
@ -93,6 +93,7 @@ VALIDATE_SIZE(CStoredCar, 0x28);
|
||||||
|
|
||||||
class CGarage
|
class CGarage
|
||||||
{
|
{
|
||||||
|
public:
|
||||||
uint8 m_eGarageType;
|
uint8 m_eGarageType;
|
||||||
uint8 m_eGarageState;
|
uint8 m_eGarageState;
|
||||||
uint8 m_nMaxStoredCars;
|
uint8 m_nMaxStoredCars;
|
||||||
|
@ -189,9 +190,6 @@ class CGarage
|
||||||
|
|
||||||
int32 FindMaxNumStoredCarsForGarage() { return Min(NUM_GARAGE_STORED_CARS, m_nMaxStoredCars); }
|
int32 FindMaxNumStoredCarsForGarage() { return Min(NUM_GARAGE_STORED_CARS, m_nMaxStoredCars); }
|
||||||
|
|
||||||
friend class CGarages;
|
|
||||||
friend class cAudioManager;
|
|
||||||
friend class CCamera;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class CGarages
|
class CGarages
|
||||||
|
@ -199,6 +197,7 @@ class CGarages
|
||||||
enum {
|
enum {
|
||||||
MESSAGE_LENGTH = 8,
|
MESSAGE_LENGTH = 8,
|
||||||
};
|
};
|
||||||
|
public:
|
||||||
static int32 BankVansCollected;
|
static int32 BankVansCollected;
|
||||||
static bool BombsAreFree;
|
static bool BombsAreFree;
|
||||||
static bool RespraysAreFree;
|
static bool RespraysAreFree;
|
||||||
|
@ -218,7 +217,6 @@ class CGarages
|
||||||
static CStoredCar aCarsInSafeHouses[TOTAL_HIDEOUT_GARAGES][NUM_GARAGE_STORED_CARS];
|
static CStoredCar aCarsInSafeHouses[TOTAL_HIDEOUT_GARAGES][NUM_GARAGE_STORED_CARS];
|
||||||
static bool bCamShouldBeOutisde;
|
static bool bCamShouldBeOutisde;
|
||||||
|
|
||||||
public:
|
|
||||||
static void Init(void);
|
static void Init(void);
|
||||||
#ifndef PS2
|
#ifndef PS2
|
||||||
static void Shutdown(void);
|
static void Shutdown(void);
|
||||||
|
@ -259,7 +257,6 @@ public:
|
||||||
static void SetFreeResprays(bool bValue) { RespraysAreFree = bValue; }
|
static void SetFreeResprays(bool bValue) { RespraysAreFree = bValue; }
|
||||||
static void SetMaxNumStoredCarsForGarage(int16 garage, uint8 num) { aGarages[garage].m_nMaxStoredCars = num; }
|
static void SetMaxNumStoredCarsForGarage(int16 garage, uint8 num) { aGarages[garage].m_nMaxStoredCars = num; }
|
||||||
|
|
||||||
private:
|
|
||||||
static bool IsCarSprayable(CVehicle*);
|
static bool IsCarSprayable(CVehicle*);
|
||||||
static float FindDoorHeightForMI(int32);
|
static float FindDoorHeightForMI(int32);
|
||||||
static void CloseHideOutGaragesBeforeSave(void);
|
static void CloseHideOutGaragesBeforeSave(void);
|
||||||
|
@ -296,7 +293,4 @@ private:
|
||||||
}
|
}
|
||||||
static bool IsThisGarageTypeSafehouse(uint8 type) { return FindSafeHouseIndexForGarageType(type) >= 0; }
|
static bool IsThisGarageTypeSafehouse(uint8 type) { return FindSafeHouseIndexForGarageType(type) >= 0; }
|
||||||
|
|
||||||
friend class cAudioManager;
|
|
||||||
friend class CReplay;
|
|
||||||
friend class CGarage;
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -85,7 +85,7 @@ uint16 CTheScripts::NumScriptDebugLines;
|
||||||
uint16 CTheScripts::NumberOfIntroRectanglesThisFrame;
|
uint16 CTheScripts::NumberOfIntroRectanglesThisFrame;
|
||||||
uint16 CTheScripts::NumberOfIntroTextLinesThisFrame;
|
uint16 CTheScripts::NumberOfIntroTextLinesThisFrame;
|
||||||
uint8 CTheScripts::UseTextCommands;
|
uint8 CTheScripts::UseTextCommands;
|
||||||
CMissionCleanup CTheScripts::MissionCleanup;
|
CMissionCleanup CTheScripts::MissionCleanUp;
|
||||||
CUpsideDownCarCheck CTheScripts::UpsideDownCars;
|
CUpsideDownCarCheck CTheScripts::UpsideDownCars;
|
||||||
CStuckCarCheck CTheScripts::StuckCars;
|
CStuckCarCheck CTheScripts::StuckCars;
|
||||||
uint16 CTheScripts::CommandsExecuted;
|
uint16 CTheScripts::CommandsExecuted;
|
||||||
|
@ -1711,23 +1711,38 @@ void CMissionCleanup::RemoveEntityFromList(int32 id, uint8 type)
|
||||||
switch (m_sEntities[i].type) {
|
switch (m_sEntities[i].type) {
|
||||||
case CLEANUP_CAR:
|
case CLEANUP_CAR:
|
||||||
{
|
{
|
||||||
CVehicle* v = CPools::GetVehiclePool()->GetAt(m_sEntities[i].id);
|
CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(m_sEntities[i].id);
|
||||||
if (v)
|
if (pVehicle) {
|
||||||
PossiblyWakeThisEntity(v);
|
if (pVehicle->bIsStaticWaitingForCollision) {
|
||||||
|
pVehicle->bIsStaticWaitingForCollision = false;
|
||||||
|
if (!pVehicle->GetIsStatic())
|
||||||
|
pVehicle->AddToMovingList();
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case CLEANUP_CHAR:
|
case CLEANUP_CHAR:
|
||||||
{
|
{
|
||||||
CPed* p = CPools::GetPedPool()->GetAt(m_sEntities[i].id);
|
CPed* pPed = CPools::GetPedPool()->GetAt(m_sEntities[i].id);
|
||||||
if (p)
|
if (pPed) {
|
||||||
PossiblyWakeThisEntity(p);
|
if (pPed->bIsStaticWaitingForCollision) {
|
||||||
|
pPed->bIsStaticWaitingForCollision = false;
|
||||||
|
if (!pPed->GetIsStatic())
|
||||||
|
pPed->AddToMovingList();
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case CLEANUP_OBJECT:
|
case CLEANUP_OBJECT:
|
||||||
{
|
{
|
||||||
CObject* o = CPools::GetObjectPool()->GetAt(m_sEntities[i].id);
|
CObject* pObject = CPools::GetObjectPool()->GetAt(m_sEntities[i].id);
|
||||||
if (o)
|
if (pObject) {
|
||||||
PossiblyWakeThisEntity(o);
|
if (pObject->bIsStaticWaitingForCollision) {
|
||||||
|
pObject->bIsStaticWaitingForCollision = false;
|
||||||
|
if (!pObject->GetIsStatic())
|
||||||
|
pObject->AddToMovingList();
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
@ -1746,23 +1761,44 @@ void CMissionCleanup::CheckIfCollisionHasLoadedForMissionObjects()
|
||||||
switch (m_sEntities[i].type) {
|
switch (m_sEntities[i].type) {
|
||||||
case CLEANUP_CAR:
|
case CLEANUP_CAR:
|
||||||
{
|
{
|
||||||
CVehicle* v = CPools::GetVehiclePool()->GetAt(m_sEntities[i].id);
|
CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(m_sEntities[i].id);
|
||||||
if (v)
|
if (pVehicle) {
|
||||||
PossiblyWakeThisEntity(v, true);
|
if (pVehicle->bIsStaticWaitingForCollision) {
|
||||||
|
if (CColStore::HasCollisionLoaded(pVehicle->GetPosition())) {
|
||||||
|
pVehicle->bIsStaticWaitingForCollision = false;
|
||||||
|
if (!pVehicle->GetIsStatic())
|
||||||
|
pVehicle->AddToMovingList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case CLEANUP_CHAR:
|
case CLEANUP_CHAR:
|
||||||
{
|
{
|
||||||
CPed* p = CPools::GetPedPool()->GetAt(m_sEntities[i].id);
|
CPed* pPed = CPools::GetPedPool()->GetAt(m_sEntities[i].id);
|
||||||
if (p)
|
if (pPed) {
|
||||||
PossiblyWakeThisEntity(p, true);
|
if (pPed->bIsStaticWaitingForCollision) {
|
||||||
|
if (CColStore::HasCollisionLoaded(pPed->GetPosition())) {
|
||||||
|
pPed->bIsStaticWaitingForCollision = false;
|
||||||
|
if (!pPed->GetIsStatic())
|
||||||
|
pPed->AddToMovingList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case CLEANUP_OBJECT:
|
case CLEANUP_OBJECT:
|
||||||
{
|
{
|
||||||
CObject* o = CPools::GetObjectPool()->GetAt(m_sEntities[i].id);
|
CObject* pObject = CPools::GetObjectPool()->GetAt(m_sEntities[i].id);
|
||||||
if (o)
|
if (pObject) {
|
||||||
PossiblyWakeThisEntity(o, true);
|
if (pObject->bIsStaticWaitingForCollision) {
|
||||||
|
if (CColStore::HasCollisionLoaded(pObject->GetPosition())) {
|
||||||
|
pObject->bIsStaticWaitingForCollision = false;
|
||||||
|
if (!pObject->GetIsStatic())
|
||||||
|
pObject->AddToMovingList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
@ -1771,21 +1807,6 @@ void CMissionCleanup::CheckIfCollisionHasLoadedForMissionObjects()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CPhysical* CMissionCleanup::DoesThisEntityWaitForCollision(int i)
|
|
||||||
{
|
|
||||||
if (m_sEntities[i].type == CLEANUP_CAR) {
|
|
||||||
CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(m_sEntities[i].id);
|
|
||||||
if (pVehicle && pVehicle->GetStatus() != STATUS_WRECKED)
|
|
||||||
return pVehicle;
|
|
||||||
}
|
|
||||||
else if (m_sEntities[i].type == CLEANUP_CHAR) {
|
|
||||||
CPed* pPed = CPools::GetPedPool()->GetAt(m_sEntities[i].id);
|
|
||||||
if (pPed && !pPed->DyingOrDead())
|
|
||||||
return pPed;
|
|
||||||
}
|
|
||||||
return nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CMissionCleanup::Process()
|
void CMissionCleanup::Process()
|
||||||
{
|
{
|
||||||
CPopulation::m_AllRandomPedsThisType = -1;
|
CPopulation::m_AllRandomPedsThisType = -1;
|
||||||
|
@ -1878,10 +1899,16 @@ void CUpsideDownCarCheck::Init()
|
||||||
|
|
||||||
bool CUpsideDownCarCheck::IsCarUpsideDown(int32 id)
|
bool CUpsideDownCarCheck::IsCarUpsideDown(int32 id)
|
||||||
{
|
{
|
||||||
CVehicle* v = CPools::GetVehiclePool()->GetAt(id);
|
CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(id);
|
||||||
return v->GetUp().z <= -0.97f &&
|
return IsCarUpsideDown(pVehicle);
|
||||||
v->GetMoveSpeed().Magnitude() < 0.01f &&
|
}
|
||||||
v->GetTurnSpeed().Magnitude() < 0.02f;
|
|
||||||
|
bool CUpsideDownCarCheck::IsCarUpsideDown(CVehicle* pVehicle)
|
||||||
|
{
|
||||||
|
assert(pVehicle);
|
||||||
|
return pVehicle->GetUp().z <= UPSIDEDOWN_UP_THRESHOLD &&
|
||||||
|
pVehicle->GetMoveSpeed().Magnitude() < UPSIDEDOWN_MOVE_SPEED_THRESHOLD &&
|
||||||
|
pVehicle->GetTurnSpeed().Magnitude() < UPSIDEDOWN_TURN_SPEED_THRESHOLD;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CUpsideDownCarCheck::UpdateTimers()
|
void CUpsideDownCarCheck::UpdateTimers()
|
||||||
|
@ -1904,7 +1931,7 @@ void CUpsideDownCarCheck::UpdateTimers()
|
||||||
bool CUpsideDownCarCheck::AreAnyCarsUpsideDown()
|
bool CUpsideDownCarCheck::AreAnyCarsUpsideDown()
|
||||||
{
|
{
|
||||||
for (int i = 0; i < MAX_UPSIDEDOWN_CAR_CHECKS; i++){
|
for (int i = 0; i < MAX_UPSIDEDOWN_CAR_CHECKS; i++){
|
||||||
if (m_sCars[i].m_nVehicleIndex >= 0 && m_sCars[i].m_nUpsideDownTimer > 1000)
|
if (m_sCars[i].m_nVehicleIndex >= 0 && m_sCars[i].m_nUpsideDownTimer > UPSIDEDOWN_TIMER_THRESHOLD)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -1915,8 +1942,10 @@ void CUpsideDownCarCheck::AddCarToCheck(int32 id)
|
||||||
uint16 index = 0;
|
uint16 index = 0;
|
||||||
while (index < MAX_UPSIDEDOWN_CAR_CHECKS && m_sCars[index].m_nVehicleIndex >= 0)
|
while (index < MAX_UPSIDEDOWN_CAR_CHECKS && m_sCars[index].m_nVehicleIndex >= 0)
|
||||||
index++;
|
index++;
|
||||||
|
#ifdef FIX_BUGS
|
||||||
if (index >= MAX_UPSIDEDOWN_CAR_CHECKS)
|
if (index >= MAX_UPSIDEDOWN_CAR_CHECKS)
|
||||||
return;
|
return;
|
||||||
|
#endif
|
||||||
m_sCars[index].m_nVehicleIndex = id;
|
m_sCars[index].m_nVehicleIndex = id;
|
||||||
m_sCars[index].m_nUpsideDownTimer = 0;
|
m_sCars[index].m_nUpsideDownTimer = 0;
|
||||||
}
|
}
|
||||||
|
@ -1935,7 +1964,7 @@ bool CUpsideDownCarCheck::HasCarBeenUpsideDownForAWhile(int32 id)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < MAX_UPSIDEDOWN_CAR_CHECKS; i++){
|
for (int i = 0; i < MAX_UPSIDEDOWN_CAR_CHECKS; i++){
|
||||||
if (m_sCars[i].m_nVehicleIndex == id)
|
if (m_sCars[i].m_nVehicleIndex == id)
|
||||||
return m_sCars[i].m_nUpsideDownTimer > 1000;
|
return m_sCars[i].m_nUpsideDownTimer > UPSIDEDOWN_TIMER_THRESHOLD;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -1985,7 +2014,10 @@ void CStuckCarCheck::AddCarToCheck(int32 id, float radius, uint32 time)
|
||||||
int index = 0;
|
int index = 0;
|
||||||
while (index < MAX_STUCK_CAR_CHECKS && m_sCars[index].m_nVehicleIndex >= 0)
|
while (index < MAX_STUCK_CAR_CHECKS && m_sCars[index].m_nVehicleIndex >= 0)
|
||||||
index++;
|
index++;
|
||||||
/* Would be nice to return if index >= MAX_STUCK_CAR_CHECKS... */
|
#ifdef FIX_BUGS
|
||||||
|
if (index >= MAX_STUCK_CAR_CHECKS)
|
||||||
|
return;
|
||||||
|
#endif
|
||||||
m_sCars[index].m_nVehicleIndex = id;
|
m_sCars[index].m_nVehicleIndex = id;
|
||||||
m_sCars[index].m_vecPos = pv->GetPosition();
|
m_sCars[index].m_vecPos = pv->GetPosition();
|
||||||
m_sCars[index].m_nLastCheck = CTimer::GetTimeInMilliseconds();
|
m_sCars[index].m_nLastCheck = CTimer::GetTimeInMilliseconds();
|
||||||
|
@ -2217,7 +2249,7 @@ void CTheScripts::Init()
|
||||||
ScriptsArray[i].Init();
|
ScriptsArray[i].Init();
|
||||||
ScriptsArray[i].AddScriptToList(&pIdleScripts);
|
ScriptsArray[i].AddScriptToList(&pIdleScripts);
|
||||||
}
|
}
|
||||||
MissionCleanup.Init();
|
MissionCleanUp.Init();
|
||||||
UpsideDownCars.Init();
|
UpsideDownCars.Init();
|
||||||
StuckCars.Init();
|
StuckCars.Init();
|
||||||
CFileMgr::SetDir("data");
|
CFileMgr::SetDir("data");
|
||||||
|
@ -2345,7 +2377,7 @@ void CTheScripts::Process()
|
||||||
float timeStep = CTimer::GetTimeStepInMilliseconds();
|
float timeStep = CTimer::GetTimeStepInMilliseconds();
|
||||||
UpsideDownCars.UpdateTimers();
|
UpsideDownCars.UpdateTimers();
|
||||||
StuckCars.Process();
|
StuckCars.Process();
|
||||||
MissionCleanup.CheckIfCollisionHasLoadedForMissionObjects();
|
MissionCleanUp.CheckIfCollisionHasLoadedForMissionObjects();
|
||||||
DrawScriptSpheres();
|
DrawScriptSpheres();
|
||||||
if (FailCurrentMission)
|
if (FailCurrentMission)
|
||||||
--FailCurrentMission;
|
--FailCurrentMission;
|
||||||
|
@ -3669,7 +3701,7 @@ int8 CRunningScript::ProcessCommands100To199(int32 command)
|
||||||
ScriptParams[0] = CPools::GetPedPool()->GetIndex(ped);
|
ScriptParams[0] = CPools::GetPedPool()->GetIndex(ped);
|
||||||
StoreParameters(&m_nIp, 1);
|
StoreParameters(&m_nIp, 1);
|
||||||
if (m_bIsMissionScript)
|
if (m_bIsMissionScript)
|
||||||
CTheScripts::MissionCleanup.AddEntityToList(ScriptParams[0], CLEANUP_CHAR);
|
CTheScripts::MissionCleanUp.AddEntityToList(ScriptParams[0], CLEANUP_CHAR);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
case COMMAND_DELETE_CHAR:
|
case COMMAND_DELETE_CHAR:
|
||||||
|
@ -3678,7 +3710,7 @@ int8 CRunningScript::ProcessCommands100To199(int32 command)
|
||||||
CPed* ped = CPools::GetPedPool()->GetAt(ScriptParams[0]);
|
CPed* ped = CPools::GetPedPool()->GetAt(ScriptParams[0]);
|
||||||
CTheScripts::RemoveThisPed(ped);
|
CTheScripts::RemoveThisPed(ped);
|
||||||
if (m_bIsMissionScript)
|
if (m_bIsMissionScript)
|
||||||
CTheScripts::MissionCleanup.RemoveEntityFromList(ScriptParams[0], CLEANUP_CHAR);
|
CTheScripts::MissionCleanUp.RemoveEntityFromList(ScriptParams[0], CLEANUP_CHAR);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
case COMMAND_CHAR_WANDER_DIR:
|
case COMMAND_CHAR_WANDER_DIR:
|
||||||
|
@ -3899,7 +3931,7 @@ int8 CRunningScript::ProcessCommands100To199(int32 command)
|
||||||
ScriptParams[0] = handle;
|
ScriptParams[0] = handle;
|
||||||
StoreParameters(&m_nIp, 1);
|
StoreParameters(&m_nIp, 1);
|
||||||
if (m_bIsMissionScript)
|
if (m_bIsMissionScript)
|
||||||
CTheScripts::MissionCleanup.AddEntityToList(handle, CLEANUP_CAR);
|
CTheScripts::MissionCleanUp.AddEntityToList(handle, CLEANUP_CAR);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
case COMMAND_DELETE_CAR:
|
case COMMAND_DELETE_CAR:
|
||||||
|
@ -3912,7 +3944,7 @@ int8 CRunningScript::ProcessCommands100To199(int32 command)
|
||||||
delete car;
|
delete car;
|
||||||
}
|
}
|
||||||
if (m_bIsMissionScript)
|
if (m_bIsMissionScript)
|
||||||
CTheScripts::MissionCleanup.RemoveEntityFromList(ScriptParams[0], CLEANUP_CAR);
|
CTheScripts::MissionCleanUp.RemoveEntityFromList(ScriptParams[0], CLEANUP_CAR);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
case COMMAND_CAR_GOTO_COORDINATES:
|
case COMMAND_CAR_GOTO_COORDINATES:
|
||||||
|
@ -4227,7 +4259,7 @@ int8 CRunningScript::ProcessCommands200To299(int32 command)
|
||||||
{
|
{
|
||||||
if (!m_bIsMissionScript)
|
if (!m_bIsMissionScript)
|
||||||
return 0;
|
return 0;
|
||||||
CTheScripts::MissionCleanup.Process();
|
CTheScripts::MissionCleanUp.Process();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
case COMMAND_STORE_CAR_CHAR_IS_IN:
|
case COMMAND_STORE_CAR_CHAR_IS_IN:
|
||||||
|
@ -4250,7 +4282,7 @@ int8 CRunningScript::ProcessCommands200To299(int32 command)
|
||||||
pOld->bIsLocked = false;
|
pOld->bIsLocked = false;
|
||||||
CCarCtrl::NumRandomCars++;
|
CCarCtrl::NumRandomCars++;
|
||||||
CCarCtrl::NumMissionCars--;
|
CCarCtrl::NumMissionCars--;
|
||||||
CTheScripts::MissionCleanup.RemoveEntityFromList(CTheScripts::StoreVehicleIndex, CLEANUP_CAR);
|
CTheScripts::MissionCleanUp.RemoveEntityFromList(CTheScripts::StoreVehicleIndex, CLEANUP_CAR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4261,14 +4293,14 @@ int8 CRunningScript::ProcessCommands200To299(int32 command)
|
||||||
CCarCtrl::NumMissionCars++;
|
CCarCtrl::NumMissionCars++;
|
||||||
CCarCtrl::NumRandomCars--;
|
CCarCtrl::NumRandomCars--;
|
||||||
CTheScripts::StoreVehicleWasRandom = true;
|
CTheScripts::StoreVehicleWasRandom = true;
|
||||||
CTheScripts::MissionCleanup.AddEntityToList(CTheScripts::StoreVehicleIndex, CLEANUP_CAR);
|
CTheScripts::MissionCleanUp.AddEntityToList(CTheScripts::StoreVehicleIndex, CLEANUP_CAR);
|
||||||
break;
|
break;
|
||||||
case PARKED_VEHICLE:
|
case PARKED_VEHICLE:
|
||||||
pCurrent->VehicleCreatedBy = MISSION_VEHICLE;
|
pCurrent->VehicleCreatedBy = MISSION_VEHICLE;
|
||||||
CCarCtrl::NumMissionCars++;
|
CCarCtrl::NumMissionCars++;
|
||||||
CCarCtrl::NumParkedCars--;
|
CCarCtrl::NumParkedCars--;
|
||||||
CTheScripts::StoreVehicleWasRandom = true;
|
CTheScripts::StoreVehicleWasRandom = true;
|
||||||
CTheScripts::MissionCleanup.AddEntityToList(CTheScripts::StoreVehicleIndex, CLEANUP_CAR);
|
CTheScripts::MissionCleanUp.AddEntityToList(CTheScripts::StoreVehicleIndex, CLEANUP_CAR);
|
||||||
break;
|
break;
|
||||||
case MISSION_VEHICLE:
|
case MISSION_VEHICLE:
|
||||||
case PERMANENT_VEHICLE:
|
case PERMANENT_VEHICLE:
|
||||||
|
@ -4301,7 +4333,7 @@ int8 CRunningScript::ProcessCommands200To299(int32 command)
|
||||||
pOld->bIsLocked = false;
|
pOld->bIsLocked = false;
|
||||||
CCarCtrl::NumRandomCars++;
|
CCarCtrl::NumRandomCars++;
|
||||||
CCarCtrl::NumMissionCars--;
|
CCarCtrl::NumMissionCars--;
|
||||||
CTheScripts::MissionCleanup.RemoveEntityFromList(CTheScripts::StoreVehicleIndex, CLEANUP_CAR);
|
CTheScripts::MissionCleanUp.RemoveEntityFromList(CTheScripts::StoreVehicleIndex, CLEANUP_CAR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4312,14 +4344,14 @@ int8 CRunningScript::ProcessCommands200To299(int32 command)
|
||||||
CCarCtrl::NumMissionCars++;
|
CCarCtrl::NumMissionCars++;
|
||||||
CCarCtrl::NumRandomCars--;
|
CCarCtrl::NumRandomCars--;
|
||||||
CTheScripts::StoreVehicleWasRandom = true;
|
CTheScripts::StoreVehicleWasRandom = true;
|
||||||
CTheScripts::MissionCleanup.AddEntityToList(CTheScripts::StoreVehicleIndex, CLEANUP_CAR);
|
CTheScripts::MissionCleanUp.AddEntityToList(CTheScripts::StoreVehicleIndex, CLEANUP_CAR);
|
||||||
break;
|
break;
|
||||||
case PARKED_VEHICLE:
|
case PARKED_VEHICLE:
|
||||||
pCurrent->VehicleCreatedBy = MISSION_VEHICLE;
|
pCurrent->VehicleCreatedBy = MISSION_VEHICLE;
|
||||||
CCarCtrl::NumMissionCars++;
|
CCarCtrl::NumMissionCars++;
|
||||||
CCarCtrl::NumParkedCars--;
|
CCarCtrl::NumParkedCars--;
|
||||||
CTheScripts::StoreVehicleWasRandom = true;
|
CTheScripts::StoreVehicleWasRandom = true;
|
||||||
CTheScripts::MissionCleanup.AddEntityToList(CTheScripts::StoreVehicleIndex, CLEANUP_CAR);
|
CTheScripts::MissionCleanUp.AddEntityToList(CTheScripts::StoreVehicleIndex, CLEANUP_CAR);
|
||||||
break;
|
break;
|
||||||
case MISSION_VEHICLE:
|
case MISSION_VEHICLE:
|
||||||
case PERMANENT_VEHICLE:
|
case PERMANENT_VEHICLE:
|
||||||
|
@ -4468,7 +4500,7 @@ int8 CRunningScript::ProcessCommands200To299(int32 command)
|
||||||
ScriptParams[0] = CPools::GetObjectPool()->GetIndex(pObj);
|
ScriptParams[0] = CPools::GetObjectPool()->GetIndex(pObj);
|
||||||
StoreParameters(&m_nIp, 1);
|
StoreParameters(&m_nIp, 1);
|
||||||
if (m_bIsMissionScript)
|
if (m_bIsMissionScript)
|
||||||
CTheScripts::MissionCleanup.AddEntityToList(ScriptParams[0], CLEANUP_OBJECT);
|
CTheScripts::MissionCleanUp.AddEntityToList(ScriptParams[0], CLEANUP_OBJECT);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
case COMMAND_DELETE_OBJECT:
|
case COMMAND_DELETE_OBJECT:
|
||||||
|
@ -4481,7 +4513,7 @@ int8 CRunningScript::ProcessCommands200To299(int32 command)
|
||||||
delete pObj;
|
delete pObj;
|
||||||
}
|
}
|
||||||
if (m_bIsMissionScript)
|
if (m_bIsMissionScript)
|
||||||
CTheScripts::MissionCleanup.RemoveEntityFromList(ScriptParams[0], CLEANUP_OBJECT);
|
CTheScripts::MissionCleanUp.RemoveEntityFromList(ScriptParams[0], CLEANUP_OBJECT);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
case COMMAND_ADD_SCORE:
|
case COMMAND_ADD_SCORE:
|
||||||
|
@ -4697,7 +4729,7 @@ int8 CRunningScript::ProcessCommands200To299(int32 command)
|
||||||
ScriptParams[0] = CPools::GetPedPool()->GetIndex(pPed);
|
ScriptParams[0] = CPools::GetPedPool()->GetIndex(pPed);
|
||||||
StoreParameters(&m_nIp, 1);
|
StoreParameters(&m_nIp, 1);
|
||||||
if (m_bIsMissionScript)
|
if (m_bIsMissionScript)
|
||||||
CTheScripts::MissionCleanup.AddEntityToList(ScriptParams[0], CLEANUP_CHAR);
|
CTheScripts::MissionCleanUp.AddEntityToList(ScriptParams[0], CLEANUP_CHAR);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
case COMMAND_WARP_PLAYER_FROM_CAR_TO_COORD:
|
case COMMAND_WARP_PLAYER_FROM_CAR_TO_COORD:
|
||||||
|
@ -4747,81 +4779,6 @@ int8 CRunningScript::ProcessCommands200To299(int32 command)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void CRunningScript::Save(uint8*& buf)
|
|
||||||
{
|
|
||||||
#ifdef COMPATIBLE_SAVES
|
|
||||||
SkipSaveBuf(buf, 8);
|
|
||||||
for (int i = 0; i < 8; i++)
|
|
||||||
WriteSaveBuf<char>(buf, m_abScriptName[i]);
|
|
||||||
WriteSaveBuf<uint32>(buf, m_nIp);
|
|
||||||
#ifdef CHECK_STRUCT_SIZES
|
|
||||||
static_assert(MAX_STACK_DEPTH == 6, "Compatibility loss: MAX_STACK_DEPTH != 6");
|
|
||||||
#endif
|
|
||||||
for (int i = 0; i < MAX_STACK_DEPTH; i++)
|
|
||||||
WriteSaveBuf<uint32>(buf, m_anStack[i]);
|
|
||||||
WriteSaveBuf<uint16>(buf, m_nStackPointer);
|
|
||||||
SkipSaveBuf(buf, 2);
|
|
||||||
#ifdef CHECK_STRUCT_SIZES
|
|
||||||
static_assert(NUM_LOCAL_VARS + NUM_TIMERS == 18, "Compatibility loss: NUM_LOCAL_VARS + NUM_TIMERS != 18");
|
|
||||||
#endif
|
|
||||||
for (int i = 0; i < NUM_LOCAL_VARS + NUM_TIMERS; i++)
|
|
||||||
WriteSaveBuf<int32>(buf, m_anLocalVariables[i]);
|
|
||||||
WriteSaveBuf<bool>(buf, m_bIsActive);
|
|
||||||
WriteSaveBuf<bool>(buf, m_bCondResult);
|
|
||||||
WriteSaveBuf<bool>(buf, m_bIsMissionScript);
|
|
||||||
WriteSaveBuf<bool>(buf, m_bSkipWakeTime);
|
|
||||||
WriteSaveBuf<uint32>(buf, m_nWakeTime);
|
|
||||||
WriteSaveBuf<uint16>(buf, m_nAndOrState);
|
|
||||||
WriteSaveBuf<bool>(buf, m_bNotFlag);
|
|
||||||
WriteSaveBuf<bool>(buf, m_bDeatharrestEnabled);
|
|
||||||
WriteSaveBuf<bool>(buf, m_bDeatharrestExecuted);
|
|
||||||
WriteSaveBuf<bool>(buf, m_bMissionFlag);
|
|
||||||
SkipSaveBuf(buf, 2);
|
|
||||||
#else
|
|
||||||
WriteSaveBuf(buf, *this);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
void CRunningScript::Load(uint8*& buf)
|
|
||||||
{
|
|
||||||
#ifdef COMPATIBLE_SAVES
|
|
||||||
SkipSaveBuf(buf, 8);
|
|
||||||
for (int i = 0; i < 8; i++)
|
|
||||||
m_abScriptName[i] = ReadSaveBuf<char>(buf);
|
|
||||||
m_nIp = ReadSaveBuf<uint32>(buf);
|
|
||||||
#ifdef CHECK_STRUCT_SIZES
|
|
||||||
static_assert(MAX_STACK_DEPTH == 6, "Compatibility loss: MAX_STACK_DEPTH != 6");
|
|
||||||
#endif
|
|
||||||
for (int i = 0; i < MAX_STACK_DEPTH; i++)
|
|
||||||
m_anStack[i] = ReadSaveBuf<uint32>(buf);
|
|
||||||
m_nStackPointer = ReadSaveBuf<uint16>(buf);
|
|
||||||
SkipSaveBuf(buf, 2);
|
|
||||||
#ifdef CHECK_STRUCT_SIZES
|
|
||||||
static_assert(NUM_LOCAL_VARS + NUM_TIMERS == 18, "Compatibility loss: NUM_LOCAL_VARS + NUM_TIMERS != 18");
|
|
||||||
#endif
|
|
||||||
for (int i = 0; i < NUM_LOCAL_VARS + NUM_TIMERS; i++)
|
|
||||||
m_anLocalVariables[i] = ReadSaveBuf<int32>(buf);
|
|
||||||
m_bIsActive = ReadSaveBuf<bool>(buf);
|
|
||||||
m_bCondResult = ReadSaveBuf<bool>(buf);
|
|
||||||
m_bIsMissionScript = ReadSaveBuf<bool>(buf);
|
|
||||||
m_bSkipWakeTime = ReadSaveBuf<bool>(buf);
|
|
||||||
m_nWakeTime = ReadSaveBuf<uint32>(buf);
|
|
||||||
m_nAndOrState = ReadSaveBuf<uint16>(buf);
|
|
||||||
m_bNotFlag = ReadSaveBuf<bool>(buf);
|
|
||||||
m_bDeatharrestEnabled = ReadSaveBuf<bool>(buf);
|
|
||||||
m_bDeatharrestExecuted = ReadSaveBuf<bool>(buf);
|
|
||||||
m_bMissionFlag = ReadSaveBuf<bool>(buf);
|
|
||||||
SkipSaveBuf(buf, 2);
|
|
||||||
#else
|
|
||||||
CRunningScript* n = next;
|
|
||||||
CRunningScript* p = prev;
|
|
||||||
*this = ReadSaveBuf<CRunningScript>(buf);
|
|
||||||
next = n;
|
|
||||||
prev = p;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef MISSION_REPLAY
|
#ifdef MISSION_REPLAY
|
||||||
|
|
||||||
bool CRunningScript::CanAllowMissionReplay()
|
bool CRunningScript::CanAllowMissionReplay()
|
||||||
|
@ -4856,7 +4813,7 @@ void RetryMission(int type, int unk)
|
||||||
else if (type == 2) {
|
else if (type == 2) {
|
||||||
doingMissionRetry = false;
|
doingMissionRetry = false;
|
||||||
AllowMissionReplay = 6;
|
AllowMissionReplay = 6;
|
||||||
CTheScripts::MissionCleanup.Process();
|
CTheScripts::MissionCleanUp.Process();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,26 +21,31 @@ extern int32 ScriptParams[32];
|
||||||
void FlushLog();
|
void FlushLog();
|
||||||
#define script_assert(_Expression) FlushLog(); assert(_Expression);
|
#define script_assert(_Expression) FlushLog(); assert(_Expression);
|
||||||
|
|
||||||
#define PICKUP_PLACEMENT_OFFSET 0.5f
|
#define PICKUP_PLACEMENT_OFFSET (0.5f)
|
||||||
#define PED_FIND_Z_OFFSET 5.0f
|
#define PED_FIND_Z_OFFSET (5.0f)
|
||||||
#define COP_PED_FIND_Z_OFFSET 10.0f
|
#define COP_PED_FIND_Z_OFFSET (10.0f)
|
||||||
|
|
||||||
#define SPHERE_MARKER_R 252
|
#define UPSIDEDOWN_UP_THRESHOLD (-0.97f)
|
||||||
#define SPHERE_MARKER_G 138
|
#define UPSIDEDOWN_MOVE_SPEED_THRESHOLD (0.01f)
|
||||||
#define SPHERE_MARKER_B 242
|
#define UPSIDEDOWN_TURN_SPEED_THRESHOLD (0.02f)
|
||||||
#define SPHERE_MARKER_A 228
|
#define UPSIDEDOWN_TIMER_THRESHOLD (1000)
|
||||||
|
|
||||||
|
#define SPHERE_MARKER_R (252)
|
||||||
|
#define SPHERE_MARKER_G (138)
|
||||||
|
#define SPHERE_MARKER_B (242)
|
||||||
|
#define SPHERE_MARKER_A (228)
|
||||||
#define SPHERE_MARKER_PULSE_PERIOD 2048
|
#define SPHERE_MARKER_PULSE_PERIOD 2048
|
||||||
#define SPHERE_MARKER_PULSE_FRACTION 0.1f
|
#define SPHERE_MARKER_PULSE_FRACTION 0.1f
|
||||||
|
|
||||||
#ifdef USE_PRECISE_MEASUREMENT_CONVERTION
|
#ifdef USE_PRECISE_MEASUREMENT_CONVERTION
|
||||||
#define METERS_IN_FOOT 0.3048f
|
#define METERS_IN_FOOT (0.3048f)
|
||||||
#define FEET_IN_METER 3.28084f
|
#define FEET_IN_METER (3.28084f)
|
||||||
#else
|
#else
|
||||||
#define METERS_IN_FOOT 0.3f
|
#define METERS_IN_FOOT (0.3f)
|
||||||
#define FEET_IN_METER 3.33f
|
#define FEET_IN_METER (3.33f)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define KEY_LENGTH_IN_SCRIPT 8
|
#define KEY_LENGTH_IN_SCRIPT (8)
|
||||||
|
|
||||||
//#define GTA_SCRIPT_COLLECTIVE
|
//#define GTA_SCRIPT_COLLECTIVE
|
||||||
|
|
||||||
|
@ -96,7 +101,7 @@ struct intro_text_line
|
||||||
m_bBackground = false;
|
m_bBackground = false;
|
||||||
m_bBackgroundOnly = false;
|
m_bBackgroundOnly = false;
|
||||||
m_fWrapX = 182.0f;
|
m_fWrapX = 182.0f;
|
||||||
m_fCenterSize = 640.0f;
|
m_fCenterSize = DEFAULT_SCREEN_WIDTH;
|
||||||
m_sBackgroundColor = CRGBA(128, 128, 128, 128);
|
m_sBackgroundColor = CRGBA(128, 128, 128, 128);
|
||||||
m_bTextProportional = true;
|
m_bTextProportional = true;
|
||||||
m_bTextBeforeFade = false;
|
m_bTextBeforeFade = false;
|
||||||
|
@ -149,10 +154,10 @@ enum {
|
||||||
|
|
||||||
class CMissionCleanup
|
class CMissionCleanup
|
||||||
{
|
{
|
||||||
|
public:
|
||||||
cleanup_entity_struct m_sEntities[MAX_CLEANUP];
|
cleanup_entity_struct m_sEntities[MAX_CLEANUP];
|
||||||
uint8 m_nCount;
|
uint8 m_nCount;
|
||||||
|
|
||||||
public:
|
|
||||||
CMissionCleanup();
|
CMissionCleanup();
|
||||||
|
|
||||||
void Init();
|
void Init();
|
||||||
|
@ -161,10 +166,9 @@ public:
|
||||||
void RemoveEntityFromList(int32, uint8);
|
void RemoveEntityFromList(int32, uint8);
|
||||||
void Process();
|
void Process();
|
||||||
void CheckIfCollisionHasLoadedForMissionObjects();
|
void CheckIfCollisionHasLoadedForMissionObjects();
|
||||||
CPhysical* DoesThisEntityWaitForCollision(int i);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct CUpsideDownCarCheckEntry
|
struct upsidedown_car_data
|
||||||
{
|
{
|
||||||
int32 m_nVehicleIndex;
|
int32 m_nVehicleIndex;
|
||||||
uint32 m_nUpsideDownTimer;
|
uint32 m_nUpsideDownTimer;
|
||||||
|
@ -172,11 +176,12 @@ struct CUpsideDownCarCheckEntry
|
||||||
|
|
||||||
class CUpsideDownCarCheck
|
class CUpsideDownCarCheck
|
||||||
{
|
{
|
||||||
CUpsideDownCarCheckEntry m_sCars[MAX_UPSIDEDOWN_CAR_CHECKS];
|
upsidedown_car_data m_sCars[MAX_UPSIDEDOWN_CAR_CHECKS];
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void Init();
|
void Init();
|
||||||
bool IsCarUpsideDown(int32);
|
bool IsCarUpsideDown(int32);
|
||||||
|
bool IsCarUpsideDown(CVehicle*);
|
||||||
void UpdateTimers();
|
void UpdateTimers();
|
||||||
bool AreAnyCarsUpsideDown();
|
bool AreAnyCarsUpsideDown();
|
||||||
void AddCarToCheck(int32);
|
void AddCarToCheck(int32);
|
||||||
|
@ -194,7 +199,7 @@ struct stuck_car_data
|
||||||
bool m_bStuck;
|
bool m_bStuck;
|
||||||
|
|
||||||
stuck_car_data() { }
|
stuck_car_data() { }
|
||||||
inline void Reset();
|
void Reset();
|
||||||
};
|
};
|
||||||
|
|
||||||
class CStuckCarCheck
|
class CStuckCarCheck
|
||||||
|
@ -273,6 +278,7 @@ enum {
|
||||||
|
|
||||||
class CTheScripts
|
class CTheScripts
|
||||||
{
|
{
|
||||||
|
public:
|
||||||
static uint8 ScriptSpace[SIZE_SCRIPT_SPACE];
|
static uint8 ScriptSpace[SIZE_SCRIPT_SPACE];
|
||||||
static CRunningScript ScriptsArray[MAX_NUM_SCRIPTS];
|
static CRunningScript ScriptsArray[MAX_NUM_SCRIPTS];
|
||||||
static intro_text_line IntroTextLines[MAX_NUM_INTRO_TEXT_LINES];
|
static intro_text_line IntroTextLines[MAX_NUM_INTRO_TEXT_LINES];
|
||||||
|
@ -286,7 +292,7 @@ class CTheScripts
|
||||||
static CStoredLine aStoredLines[MAX_NUM_STORED_LINES];
|
static CStoredLine aStoredLines[MAX_NUM_STORED_LINES];
|
||||||
static bool DbgFlag;
|
static bool DbgFlag;
|
||||||
static uint32 OnAMissionFlag;
|
static uint32 OnAMissionFlag;
|
||||||
static CMissionCleanup MissionCleanup;
|
static CMissionCleanup MissionCleanUp;
|
||||||
static CStuckCarCheck StuckCars;
|
static CStuckCarCheck StuckCars;
|
||||||
static CUpsideDownCarCheck UpsideDownCars;
|
static CUpsideDownCarCheck UpsideDownCars;
|
||||||
static int32 StoreVehicleIndex;
|
static int32 StoreVehicleIndex;
|
||||||
|
@ -319,11 +325,10 @@ class CTheScripts
|
||||||
static int16 CardStack[CARDS_IN_STACK];
|
static int16 CardStack[CARDS_IN_STACK];
|
||||||
static int16 CardStackPosition;
|
static int16 CardStackPosition;
|
||||||
#endif
|
#endif
|
||||||
public:
|
|
||||||
static bool bPlayerIsInTheStatium;
|
static bool bPlayerIsInTheStatium;
|
||||||
static uint8 RiotIntensity;
|
static uint8 RiotIntensity;
|
||||||
static bool bPlayerHasMetDebbieHarry;
|
static bool bPlayerHasMetDebbieHarry;
|
||||||
public:
|
|
||||||
static void Init();
|
static void Init();
|
||||||
static void Process();
|
static void Process();
|
||||||
|
|
||||||
|
@ -377,8 +382,6 @@ public:
|
||||||
return Read4BytesFromScript(&tmp);
|
return Read4BytesFromScript(&tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
static CRunningScript* StartNewScript(uint32);
|
static CRunningScript* StartNewScript(uint32);
|
||||||
|
|
||||||
static void CleanUpThisVehicle(CVehicle*);
|
static void CleanUpThisVehicle(CVehicle*);
|
||||||
|
@ -436,18 +439,11 @@ public:
|
||||||
static void SetObjectiveForAllPedsInCollective(int, eObjective);
|
static void SetObjectiveForAllPedsInCollective(int, eObjective);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
friend class CRunningScript;
|
|
||||||
friend class CHud;
|
|
||||||
friend void CMissionCleanup::Process();
|
|
||||||
friend class CColStore;
|
|
||||||
#ifdef FIX_BUGS
|
|
||||||
friend void RetryMission(int, int);
|
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
MAX_STACK_DEPTH = 6, // 4 PS2
|
MAX_STACK_DEPTH = 6,
|
||||||
NUM_LOCAL_VARS = 16,
|
NUM_LOCAL_VARS = 16,
|
||||||
NUM_TIMERS = 2
|
NUM_TIMERS = 2
|
||||||
};
|
};
|
||||||
|
@ -474,6 +470,7 @@ class CRunningScript
|
||||||
ORS_8
|
ORS_8
|
||||||
};
|
};
|
||||||
|
|
||||||
|
public:
|
||||||
CRunningScript* next;
|
CRunningScript* next;
|
||||||
CRunningScript* prev;
|
CRunningScript* prev;
|
||||||
char m_abScriptName[8];
|
char m_abScriptName[8];
|
||||||
|
@ -512,7 +509,6 @@ public:
|
||||||
|
|
||||||
static const uint32 nSaveStructSize;
|
static const uint32 nSaveStructSize;
|
||||||
|
|
||||||
private:
|
|
||||||
void CollectParameters(uint32*, int16);
|
void CollectParameters(uint32*, int16);
|
||||||
int32 CollectNextParameterWithoutIncreasingPC(uint32);
|
int32 CollectNextParameterWithoutIncreasingPC(uint32);
|
||||||
int32* GetPointerToScriptVariable(uint32*, int16);
|
int32* GetPointerToScriptVariable(uint32*, int16);
|
||||||
|
@ -580,7 +576,6 @@ private:
|
||||||
|
|
||||||
static bool ThisIsAValidRandomCop(int32 mi, bool cop, bool swat, bool fbi, bool army, bool miami);
|
static bool ThisIsAValidRandomCop(int32 mi, bool cop, bool swat, bool fbi, bool army, bool miami);
|
||||||
|
|
||||||
friend class CTheScripts;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef USE_DEBUG_SCRIPT_LOADER
|
#ifdef USE_DEBUG_SCRIPT_LOADER
|
||||||
|
|
|
@ -1048,7 +1048,7 @@ int8 CRunningScript::ProcessCommands400To499(int32 command)
|
||||||
CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]);
|
CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]);
|
||||||
CTheScripts::CleanUpThisPed(pPed);
|
CTheScripts::CleanUpThisPed(pPed);
|
||||||
if (m_bIsMissionScript)
|
if (m_bIsMissionScript)
|
||||||
CTheScripts::MissionCleanup.RemoveEntityFromList(ScriptParams[0], CLEANUP_CHAR);
|
CTheScripts::MissionCleanUp.RemoveEntityFromList(ScriptParams[0], CLEANUP_CHAR);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
case COMMAND_MARK_CAR_AS_NO_LONGER_NEEDED:
|
case COMMAND_MARK_CAR_AS_NO_LONGER_NEEDED:
|
||||||
|
@ -1057,7 +1057,7 @@ int8 CRunningScript::ProcessCommands400To499(int32 command)
|
||||||
CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]);
|
CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]);
|
||||||
CTheScripts::CleanUpThisVehicle(pVehicle);
|
CTheScripts::CleanUpThisVehicle(pVehicle);
|
||||||
if (m_bIsMissionScript)
|
if (m_bIsMissionScript)
|
||||||
CTheScripts::MissionCleanup.RemoveEntityFromList(ScriptParams[0], CLEANUP_CAR);
|
CTheScripts::MissionCleanUp.RemoveEntityFromList(ScriptParams[0], CLEANUP_CAR);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
case COMMAND_MARK_OBJECT_AS_NO_LONGER_NEEDED:
|
case COMMAND_MARK_OBJECT_AS_NO_LONGER_NEEDED:
|
||||||
|
@ -1066,7 +1066,7 @@ int8 CRunningScript::ProcessCommands400To499(int32 command)
|
||||||
CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]);
|
CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]);
|
||||||
CTheScripts::CleanUpThisObject(pObject);
|
CTheScripts::CleanUpThisObject(pObject);
|
||||||
if (m_bIsMissionScript)
|
if (m_bIsMissionScript)
|
||||||
CTheScripts::MissionCleanup.RemoveEntityFromList(ScriptParams[0], CLEANUP_OBJECT);
|
CTheScripts::MissionCleanUp.RemoveEntityFromList(ScriptParams[0], CLEANUP_OBJECT);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
case COMMAND_DONT_REMOVE_CHAR:
|
case COMMAND_DONT_REMOVE_CHAR:
|
||||||
|
@ -1074,7 +1074,7 @@ int8 CRunningScript::ProcessCommands400To499(int32 command)
|
||||||
CollectParameters(&m_nIp, 1);
|
CollectParameters(&m_nIp, 1);
|
||||||
CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]);
|
CPed* pPed = CPools::GetPedPool()->GetAt(ScriptParams[0]);
|
||||||
script_assert(pPed);
|
script_assert(pPed);
|
||||||
CTheScripts::MissionCleanup.RemoveEntityFromList(ScriptParams[0], CLEANUP_CHAR);
|
CTheScripts::MissionCleanUp.RemoveEntityFromList(ScriptParams[0], CLEANUP_CHAR);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
case COMMAND_DONT_REMOVE_CAR:
|
case COMMAND_DONT_REMOVE_CAR:
|
||||||
|
@ -1082,7 +1082,7 @@ int8 CRunningScript::ProcessCommands400To499(int32 command)
|
||||||
CollectParameters(&m_nIp, 1);
|
CollectParameters(&m_nIp, 1);
|
||||||
CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]);
|
CVehicle* pVehicle = CPools::GetVehiclePool()->GetAt(ScriptParams[0]);
|
||||||
script_assert(pVehicle);
|
script_assert(pVehicle);
|
||||||
CTheScripts::MissionCleanup.RemoveEntityFromList(ScriptParams[0], CLEANUP_CAR);
|
CTheScripts::MissionCleanUp.RemoveEntityFromList(ScriptParams[0], CLEANUP_CAR);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
case COMMAND_DONT_REMOVE_OBJECT:
|
case COMMAND_DONT_REMOVE_OBJECT:
|
||||||
|
@ -1090,7 +1090,7 @@ int8 CRunningScript::ProcessCommands400To499(int32 command)
|
||||||
CollectParameters(&m_nIp, 1);
|
CollectParameters(&m_nIp, 1);
|
||||||
CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]);
|
CObject* pObject = CPools::GetObjectPool()->GetAt(ScriptParams[0]);
|
||||||
script_assert(pObject);
|
script_assert(pObject);
|
||||||
CTheScripts::MissionCleanup.RemoveEntityFromList(ScriptParams[0], CLEANUP_OBJECT);
|
CTheScripts::MissionCleanUp.RemoveEntityFromList(ScriptParams[0], CLEANUP_OBJECT);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
case COMMAND_CREATE_CHAR_AS_PASSENGER:
|
case COMMAND_CREATE_CHAR_AS_PASSENGER:
|
||||||
|
@ -1157,7 +1157,7 @@ int8 CRunningScript::ProcessCommands400To499(int32 command)
|
||||||
ScriptParams[0] = CPools::GetPedPool()->GetIndex(pPed);
|
ScriptParams[0] = CPools::GetPedPool()->GetIndex(pPed);
|
||||||
StoreParameters(&m_nIp, 1);
|
StoreParameters(&m_nIp, 1);
|
||||||
if (m_bIsMissionScript)
|
if (m_bIsMissionScript)
|
||||||
CTheScripts::MissionCleanup.AddEntityToList(ScriptParams[0], CLEANUP_CHAR);
|
CTheScripts::MissionCleanUp.AddEntityToList(ScriptParams[0], CLEANUP_CHAR);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
case COMMAND_SET_CHAR_OBJ_KILL_CHAR_ON_FOOT:
|
case COMMAND_SET_CHAR_OBJ_KILL_CHAR_ON_FOOT:
|
||||||
|
|
|
@ -325,11 +325,11 @@ int8 CRunningScript::ProcessCommands500To599(int32 command)
|
||||||
CollectParameters(&m_nIp, 1);
|
CollectParameters(&m_nIp, 1);
|
||||||
UpdateCompareFlag(CGarages::HasCarBeenDroppedOffYet(ScriptParams[0]));
|
UpdateCompareFlag(CGarages::HasCarBeenDroppedOffYet(ScriptParams[0]));
|
||||||
return 0;
|
return 0;
|
||||||
|
/*
|
||||||
case COMMAND_SET_FREE_BOMBS:
|
case COMMAND_SET_FREE_BOMBS:
|
||||||
CollectParameters(&m_nIp, 1);
|
CollectParameters(&m_nIp, 1);
|
||||||
CGarages::SetFreeBombs(ScriptParams[0] != 0);
|
CGarages::SetFreeBombs(ScriptParams[0] != 0);
|
||||||
return 0;
|
return 0;
|
||||||
#ifdef GTA_PS2
|
|
||||||
case COMMAND_SET_POWERPOINT:
|
case COMMAND_SET_POWERPOINT:
|
||||||
{
|
{
|
||||||
CollectParameters(&m_nIp, 7);
|
CollectParameters(&m_nIp, 7);
|
||||||
|
@ -363,8 +363,6 @@ int8 CRunningScript::ProcessCommands500To599(int32 command)
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif // GTA_PS2
|
|
||||||
/*
|
|
||||||
case COMMAND_SET_ALL_TAXI_LIGHTS:
|
case COMMAND_SET_ALL_TAXI_LIGHTS:
|
||||||
CollectParameters(&m_nIp, 1);
|
CollectParameters(&m_nIp, 1);
|
||||||
CAutomobile::SetAllTaxiLights(ScriptParams[0] != 0);
|
CAutomobile::SetAllTaxiLights(ScriptParams[0] != 0);
|
||||||
|
@ -1279,7 +1277,7 @@ int8 CRunningScript::ProcessCommands600To699(int32 command)
|
||||||
ScriptParams[0] = CPools::GetObjectPool()->GetIndex(pObj);
|
ScriptParams[0] = CPools::GetObjectPool()->GetIndex(pObj);
|
||||||
StoreParameters(&m_nIp, 1);
|
StoreParameters(&m_nIp, 1);
|
||||||
if (m_bIsMissionScript)
|
if (m_bIsMissionScript)
|
||||||
CTheScripts::MissionCleanup.AddEntityToList(ScriptParams[0], CLEANUP_OBJECT);
|
CTheScripts::MissionCleanUp.AddEntityToList(ScriptParams[0], CLEANUP_OBJECT);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
|
@ -1834,7 +1832,7 @@ int8 CRunningScript::ProcessCommands700To799(int32 command)
|
||||||
pPed->bRespondsToThreats = false;
|
pPed->bRespondsToThreats = false;
|
||||||
++CPopulation::ms_nTotalMissionPeds;
|
++CPopulation::ms_nTotalMissionPeds;
|
||||||
if (m_bIsMissionScript)
|
if (m_bIsMissionScript)
|
||||||
CTheScripts::MissionCleanup.AddEntityToList(ped_handle, CLEANUP_CHAR);
|
CTheScripts::MissionCleanUp.AddEntityToList(ped_handle, CLEANUP_CHAR);
|
||||||
}
|
}
|
||||||
ScriptParams[0] = ped_handle;
|
ScriptParams[0] = ped_handle;
|
||||||
StoreParameters(&m_nIp, 1);
|
StoreParameters(&m_nIp, 1);
|
||||||
|
@ -1889,7 +1887,7 @@ int8 CRunningScript::ProcessCommands700To799(int32 command)
|
||||||
pPed->bRespondsToThreats = false;
|
pPed->bRespondsToThreats = false;
|
||||||
++CPopulation::ms_nTotalMissionPeds;
|
++CPopulation::ms_nTotalMissionPeds;
|
||||||
if (m_bIsMissionScript)
|
if (m_bIsMissionScript)
|
||||||
CTheScripts::MissionCleanup.AddEntityToList(ped_handle, CLEANUP_CHAR);
|
CTheScripts::MissionCleanUp.AddEntityToList(ped_handle, CLEANUP_CHAR);
|
||||||
}
|
}
|
||||||
ScriptParams[0] = ped_handle;
|
ScriptParams[0] = ped_handle;
|
||||||
StoreParameters(&m_nIp, 1);
|
StoreParameters(&m_nIp, 1);
|
||||||
|
|
|
@ -155,7 +155,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command)
|
||||||
++CCarCtrl::NumMissionCars;
|
++CCarCtrl::NumMissionCars;
|
||||||
--CCarCtrl::NumRandomCars;
|
--CCarCtrl::NumRandomCars;
|
||||||
if (m_bIsMissionScript)
|
if (m_bIsMissionScript)
|
||||||
CTheScripts::MissionCleanup.AddEntityToList(handle, CLEANUP_CAR);
|
CTheScripts::MissionCleanUp.AddEntityToList(handle, CLEANUP_CAR);
|
||||||
}
|
}
|
||||||
ScriptParams[0] = handle;
|
ScriptParams[0] = handle;
|
||||||
StoreParameters(&m_nIp, 1);
|
StoreParameters(&m_nIp, 1);
|
||||||
|
@ -188,7 +188,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command)
|
||||||
++CCarCtrl::NumMissionCars;
|
++CCarCtrl::NumMissionCars;
|
||||||
--CCarCtrl::NumRandomCars;
|
--CCarCtrl::NumRandomCars;
|
||||||
if (m_bIsMissionScript)
|
if (m_bIsMissionScript)
|
||||||
CTheScripts::MissionCleanup.AddEntityToList(handle, CLEANUP_CAR);
|
CTheScripts::MissionCleanUp.AddEntityToList(handle, CLEANUP_CAR);
|
||||||
}
|
}
|
||||||
ScriptParams[0] = handle;
|
ScriptParams[0] = handle;
|
||||||
StoreParameters(&m_nIp, 1);
|
StoreParameters(&m_nIp, 1);
|
||||||
|
@ -609,7 +609,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (m_bIsMissionScript)
|
if (m_bIsMissionScript)
|
||||||
CTheScripts::MissionCleanup.RemoveEntityFromList(ScriptParams[0], CLEANUP_CHAR);
|
CTheScripts::MissionCleanUp.RemoveEntityFromList(ScriptParams[0], CLEANUP_CHAR);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
case COMMAND_SET_CHAR_STAY_IN_SAME_PLACE:
|
case COMMAND_SET_CHAR_STAY_IN_SAME_PLACE:
|
||||||
|
@ -1056,7 +1056,7 @@ int8 CRunningScript::ProcessCommands800To899(int32 command)
|
||||||
ScriptParams[0] = CPools::GetPedPool()->GetIndex(ped);
|
ScriptParams[0] = CPools::GetPedPool()->GetIndex(ped);
|
||||||
StoreParameters(&m_nIp, 1);
|
StoreParameters(&m_nIp, 1);
|
||||||
if (m_bIsMissionScript)
|
if (m_bIsMissionScript)
|
||||||
CTheScripts::MissionCleanup.AddEntityToList(ScriptParams[0], CLEANUP_CHAR);
|
CTheScripts::MissionCleanUp.AddEntityToList(ScriptParams[0], CLEANUP_CHAR);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
case COMMAND_SET_CHAR_OBJ_STEAL_ANY_CAR:
|
case COMMAND_SET_CHAR_OBJ_STEAL_ANY_CAR:
|
||||||
|
|
|
@ -2251,6 +2251,80 @@ VALIDATESAVEBUF(size)
|
||||||
|
|
||||||
#undef SCRIPT_DATA_SIZE
|
#undef SCRIPT_DATA_SIZE
|
||||||
|
|
||||||
|
void CRunningScript::Save(uint8*& buf)
|
||||||
|
{
|
||||||
|
#ifdef COMPATIBLE_SAVES
|
||||||
|
SkipSaveBuf(buf, 8);
|
||||||
|
for (int i = 0; i < 8; i++)
|
||||||
|
WriteSaveBuf<char>(buf, m_abScriptName[i]);
|
||||||
|
WriteSaveBuf<uint32>(buf, m_nIp);
|
||||||
|
#ifdef CHECK_STRUCT_SIZES
|
||||||
|
static_assert(MAX_STACK_DEPTH == 6, "Compatibility loss: MAX_STACK_DEPTH != 6");
|
||||||
|
#endif
|
||||||
|
for (int i = 0; i < MAX_STACK_DEPTH; i++)
|
||||||
|
WriteSaveBuf<uint32>(buf, m_anStack[i]);
|
||||||
|
WriteSaveBuf<uint16>(buf, m_nStackPointer);
|
||||||
|
SkipSaveBuf(buf, 2);
|
||||||
|
#ifdef CHECK_STRUCT_SIZES
|
||||||
|
static_assert(NUM_LOCAL_VARS + NUM_TIMERS == 18, "Compatibility loss: NUM_LOCAL_VARS + NUM_TIMERS != 18");
|
||||||
|
#endif
|
||||||
|
for (int i = 0; i < NUM_LOCAL_VARS + NUM_TIMERS; i++)
|
||||||
|
WriteSaveBuf<int32>(buf, m_anLocalVariables[i]);
|
||||||
|
WriteSaveBuf<bool>(buf, m_bIsActive);
|
||||||
|
WriteSaveBuf<bool>(buf, m_bCondResult);
|
||||||
|
WriteSaveBuf<bool>(buf, m_bIsMissionScript);
|
||||||
|
WriteSaveBuf<bool>(buf, m_bSkipWakeTime);
|
||||||
|
WriteSaveBuf<uint32>(buf, m_nWakeTime);
|
||||||
|
WriteSaveBuf<uint16>(buf, m_nAndOrState);
|
||||||
|
WriteSaveBuf<bool>(buf, m_bNotFlag);
|
||||||
|
WriteSaveBuf<bool>(buf, m_bDeatharrestEnabled);
|
||||||
|
WriteSaveBuf<bool>(buf, m_bDeatharrestExecuted);
|
||||||
|
WriteSaveBuf<bool>(buf, m_bMissionFlag);
|
||||||
|
SkipSaveBuf(buf, 2);
|
||||||
|
#else
|
||||||
|
WriteSaveBuf(buf, *this);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void CRunningScript::Load(uint8*& buf)
|
||||||
|
{
|
||||||
|
#ifdef COMPATIBLE_SAVES
|
||||||
|
SkipSaveBuf(buf, 8);
|
||||||
|
for (int i = 0; i < 8; i++)
|
||||||
|
m_abScriptName[i] = ReadSaveBuf<char>(buf);
|
||||||
|
m_nIp = ReadSaveBuf<uint32>(buf);
|
||||||
|
#ifdef CHECK_STRUCT_SIZES
|
||||||
|
static_assert(MAX_STACK_DEPTH == 6, "Compatibility loss: MAX_STACK_DEPTH != 6");
|
||||||
|
#endif
|
||||||
|
for (int i = 0; i < MAX_STACK_DEPTH; i++)
|
||||||
|
m_anStack[i] = ReadSaveBuf<uint32>(buf);
|
||||||
|
m_nStackPointer = ReadSaveBuf<uint16>(buf);
|
||||||
|
SkipSaveBuf(buf, 2);
|
||||||
|
#ifdef CHECK_STRUCT_SIZES
|
||||||
|
static_assert(NUM_LOCAL_VARS + NUM_TIMERS == 18, "Compatibility loss: NUM_LOCAL_VARS + NUM_TIMERS != 18");
|
||||||
|
#endif
|
||||||
|
for (int i = 0; i < NUM_LOCAL_VARS + NUM_TIMERS; i++)
|
||||||
|
m_anLocalVariables[i] = ReadSaveBuf<int32>(buf);
|
||||||
|
m_bIsActive = ReadSaveBuf<bool>(buf);
|
||||||
|
m_bCondResult = ReadSaveBuf<bool>(buf);
|
||||||
|
m_bIsMissionScript = ReadSaveBuf<bool>(buf);
|
||||||
|
m_bSkipWakeTime = ReadSaveBuf<bool>(buf);
|
||||||
|
m_nWakeTime = ReadSaveBuf<uint32>(buf);
|
||||||
|
m_nAndOrState = ReadSaveBuf<uint16>(buf);
|
||||||
|
m_bNotFlag = ReadSaveBuf<bool>(buf);
|
||||||
|
m_bDeatharrestEnabled = ReadSaveBuf<bool>(buf);
|
||||||
|
m_bDeatharrestExecuted = ReadSaveBuf<bool>(buf);
|
||||||
|
m_bMissionFlag = ReadSaveBuf<bool>(buf);
|
||||||
|
SkipSaveBuf(buf, 2);
|
||||||
|
#else
|
||||||
|
CRunningScript* n = next;
|
||||||
|
CRunningScript* p = prev;
|
||||||
|
*this = ReadSaveBuf<CRunningScript>(buf);
|
||||||
|
next = n;
|
||||||
|
prev = p;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
void CTheScripts::ClearSpaceForMissionEntity(const CVector& pos, CEntity* pEntity)
|
void CTheScripts::ClearSpaceForMissionEntity(const CVector& pos, CEntity* pEntity)
|
||||||
{
|
{
|
||||||
static CColPoint aTempColPoints[MAX_COLLISION_POINTS];
|
static CColPoint aTempColPoints[MAX_COLLISION_POINTS];
|
||||||
|
|
|
@ -703,7 +703,7 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command)
|
||||||
ScriptParams[0] = CPools::GetVehiclePool()->GetIndex(pVehicle);
|
ScriptParams[0] = CPools::GetVehiclePool()->GetIndex(pVehicle);
|
||||||
StoreParameters(&m_nIp, 1);
|
StoreParameters(&m_nIp, 1);
|
||||||
if (m_bIsMissionScript)
|
if (m_bIsMissionScript)
|
||||||
CTheScripts::MissionCleanup.AddEntityToList(ScriptParams[0], CLEANUP_CAR);
|
CTheScripts::MissionCleanUp.AddEntityToList(ScriptParams[0], CLEANUP_CAR);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
case COMMAND_START_BOAT_FOAM_ANIMATION:
|
case COMMAND_START_BOAT_FOAM_ANIMATION:
|
||||||
|
@ -1272,7 +1272,7 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command)
|
||||||
pPed->bRespondsToThreats = false;
|
pPed->bRespondsToThreats = false;
|
||||||
++CPopulation::ms_nTotalMissionPeds;
|
++CPopulation::ms_nTotalMissionPeds;
|
||||||
if (m_bIsMissionScript)
|
if (m_bIsMissionScript)
|
||||||
CTheScripts::MissionCleanup.AddEntityToList(ped_handle, CLEANUP_CHAR);
|
CTheScripts::MissionCleanUp.AddEntityToList(ped_handle, CLEANUP_CHAR);
|
||||||
}
|
}
|
||||||
ScriptParams[0] = ped_handle;
|
ScriptParams[0] = ped_handle;
|
||||||
StoreParameters(&m_nIp, 1);
|
StoreParameters(&m_nIp, 1);
|
||||||
|
@ -1320,7 +1320,7 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command)
|
||||||
pPed->bRespondsToThreats = false;
|
pPed->bRespondsToThreats = false;
|
||||||
++CPopulation::ms_nTotalMissionPeds;
|
++CPopulation::ms_nTotalMissionPeds;
|
||||||
if (m_bIsMissionScript)
|
if (m_bIsMissionScript)
|
||||||
CTheScripts::MissionCleanup.AddEntityToList(ped_handle, CLEANUP_CHAR);
|
CTheScripts::MissionCleanUp.AddEntityToList(ped_handle, CLEANUP_CHAR);
|
||||||
}
|
}
|
||||||
ScriptParams[0] = ped_handle;
|
ScriptParams[0] = ped_handle;
|
||||||
StoreParameters(&m_nIp, 1);
|
StoreParameters(&m_nIp, 1);
|
||||||
|
|
|
@ -1201,7 +1201,7 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command)
|
||||||
ScriptParams[0] = CPools::GetPedPool()->GetIndex(pPed);
|
ScriptParams[0] = CPools::GetPedPool()->GetIndex(pPed);
|
||||||
StoreParameters(&m_nIp, 1);
|
StoreParameters(&m_nIp, 1);
|
||||||
if (m_bIsMissionScript)
|
if (m_bIsMissionScript)
|
||||||
CTheScripts::MissionCleanup.AddEntityToList(ScriptParams[0], CLEANUP_CHAR);
|
CTheScripts::MissionCleanUp.AddEntityToList(ScriptParams[0], CLEANUP_CHAR);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
case COMMAND_CREATE_RANDOM_CHAR_AS_PASSENGER:
|
case COMMAND_CREATE_RANDOM_CHAR_AS_PASSENGER:
|
||||||
|
@ -1231,7 +1231,7 @@ int8 CRunningScript::ProcessCommands1300To1399(int32 command)
|
||||||
ScriptParams[0] = CPools::GetPedPool()->GetIndex(pPed);
|
ScriptParams[0] = CPools::GetPedPool()->GetIndex(pPed);
|
||||||
StoreParameters(&m_nIp, 1);
|
StoreParameters(&m_nIp, 1);
|
||||||
if (m_bIsMissionScript)
|
if (m_bIsMissionScript)
|
||||||
CTheScripts::MissionCleanup.AddEntityToList(ScriptParams[0], CLEANUP_CHAR);
|
CTheScripts::MissionCleanUp.AddEntityToList(ScriptParams[0], CLEANUP_CHAR);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
case COMMAND_SET_CHAR_IGNORE_THREATS_BEHIND_OBJECTS:
|
case COMMAND_SET_CHAR_IGNORE_THREATS_BEHIND_OBJECTS:
|
||||||
|
|
|
@ -283,7 +283,7 @@ int8 CRunningScript::ProcessCommands1400To1499(int32 command)
|
||||||
pPed->bRespondsToThreats = false;
|
pPed->bRespondsToThreats = false;
|
||||||
++CPopulation::ms_nTotalMissionPeds;
|
++CPopulation::ms_nTotalMissionPeds;
|
||||||
if (m_bIsMissionScript)
|
if (m_bIsMissionScript)
|
||||||
CTheScripts::MissionCleanup.AddEntityToList(ped_handle, CLEANUP_CHAR);
|
CTheScripts::MissionCleanUp.AddEntityToList(ped_handle, CLEANUP_CHAR);
|
||||||
}
|
}
|
||||||
ScriptParams[0] = ped_handle;
|
ScriptParams[0] = ped_handle;
|
||||||
StoreParameters(&m_nIp, 1);
|
StoreParameters(&m_nIp, 1);
|
||||||
|
|
|
@ -338,6 +338,11 @@ static_assert(false, "SUPPORT_XBOX_SCRIPT and SUPPORT_MOBILE_SCRIPT are mutually
|
||||||
#define USE_BASIC_SCRIPT_DEBUG_OUTPUT
|
#define USE_BASIC_SCRIPT_DEBUG_OUTPUT
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef MASTER
|
||||||
|
#undef USE_ADVANCED_SCRIPT_DEBUG_OUTPUT
|
||||||
|
#undef USE_BASIC_SCRIPT_DEBUG_OUTPUT
|
||||||
|
#endif
|
||||||
|
|
||||||
// Replay
|
// Replay
|
||||||
//#define DONT_FIX_REPLAY_BUGS // keeps various bugs in CReplay, some of which are fairly cool!
|
//#define DONT_FIX_REPLAY_BUGS // keeps various bugs in CReplay, some of which are fairly cool!
|
||||||
//#define USE_BETA_REPLAY_MODE // adds another replay mode, a few seconds slomo (caution: buggy!)
|
//#define USE_BETA_REPLAY_MODE // adds another replay mode, a few seconds slomo (caution: buggy!)
|
||||||
|
|
Loading…
Reference in a new issue