mirror of
https://github.com/GTAmodding/re3.git
synced 2024-11-29 16:03:43 +00:00
some lcs stuff
This commit is contained in:
parent
bec8f6b86c
commit
69d30f2204
5 changed files with 157 additions and 28 deletions
|
@ -33,6 +33,7 @@ public:
|
||||||
static void RequestCollision(const CVector2D &pos);
|
static void RequestCollision(const CVector2D &pos);
|
||||||
static void EnsureCollisionIsInMemory(const CVector2D &pos);
|
static void EnsureCollisionIsInMemory(const CVector2D &pos);
|
||||||
static bool HasCollisionLoaded(const CVector2D &pos);
|
static bool HasCollisionLoaded(const CVector2D &pos);
|
||||||
|
static bool HasCollisionLoaded(eLevelName level) { return true; }; // TODO
|
||||||
|
|
||||||
static ColDef *GetSlot(int slot) {
|
static ColDef *GetSlot(int slot) {
|
||||||
assert(slot >= 0);
|
assert(slot >= 0);
|
||||||
|
|
|
@ -1659,11 +1659,13 @@ const uint32 CRunningScript::nSaveStructSize =
|
||||||
sizeof(CRunningScript);
|
sizeof(CRunningScript);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// done(LCS)
|
||||||
CMissionCleanup::CMissionCleanup()
|
CMissionCleanup::CMissionCleanup()
|
||||||
{
|
{
|
||||||
Init();
|
Init();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// done(LCS)
|
||||||
void CMissionCleanup::Init()
|
void CMissionCleanup::Init()
|
||||||
{
|
{
|
||||||
m_nCount = 0;
|
m_nCount = 0;
|
||||||
|
@ -1673,6 +1675,7 @@ void CMissionCleanup::Init()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// done(LCS)
|
||||||
cleanup_entity_struct* CMissionCleanup::FindFree()
|
cleanup_entity_struct* CMissionCleanup::FindFree()
|
||||||
{
|
{
|
||||||
for (int i = 0; i < MAX_CLEANUP; i++){
|
for (int i = 0; i < MAX_CLEANUP; i++){
|
||||||
|
@ -1683,7 +1686,8 @@ cleanup_entity_struct* CMissionCleanup::FindFree()
|
||||||
return nil;
|
return nil;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void SleepThisPed(cleanup_entity_struct* pCleanup, CPed* pPed)
|
// done(LCS)
|
||||||
|
void SleepThisPed(cleanup_entity_struct* pCleanup, CPed* pPed)
|
||||||
{
|
{
|
||||||
printf("*** SLEEPING PED %i %i\n", pCleanup->id, pPed->GetModelIndex());
|
printf("*** SLEEPING PED %i %i\n", pCleanup->id, pPed->GetModelIndex());
|
||||||
if (!pPed->GetIsStatic())
|
if (!pPed->GetIsStatic())
|
||||||
|
@ -1691,7 +1695,8 @@ static void SleepThisPed(cleanup_entity_struct* pCleanup, CPed* pPed)
|
||||||
pPed->bIsStaticWaitingForCollision = true;
|
pPed->bIsStaticWaitingForCollision = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void WakeThisPed(cleanup_entity_struct* pCleanup, CPed* pPed)
|
// done(LCS)
|
||||||
|
void WakeThisPed(cleanup_entity_struct* pCleanup, CPed* pPed)
|
||||||
{
|
{
|
||||||
printf("*** WAKING UP PED %i %i\n", pCleanup->id, pPed->GetModelIndex());
|
printf("*** WAKING UP PED %i %i\n", pCleanup->id, pPed->GetModelIndex());
|
||||||
pPed->bIsStaticWaitingForCollision = false;
|
pPed->bIsStaticWaitingForCollision = false;
|
||||||
|
@ -1700,6 +1705,42 @@ static void WakeThisPed(cleanup_entity_struct* pCleanup, CPed* pPed)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// done(LCS)
|
||||||
|
void SleepThisVehicle(cleanup_entity_struct* pCleanup, CVehicle* pVehicle)
|
||||||
|
{
|
||||||
|
printf("*** SLEEPING VEHICLE %i %i\n", pCleanup->id, pVehicle->GetModelIndex());
|
||||||
|
if (!pVehicle->GetIsStatic())
|
||||||
|
pVehicle->RemoveFromMovingList();
|
||||||
|
pVehicle->bIsStaticWaitingForCollision = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// done(LCS)
|
||||||
|
void WakeThisVehicle(cleanup_entity_struct* pCleanup, CVehicle* pVehicle)
|
||||||
|
{
|
||||||
|
printf("*** WAKING UP VEHICLE %i %i\n", pCleanup->id, pVehicle->GetModelIndex());
|
||||||
|
pVehicle->bIsStaticWaitingForCollision = false;
|
||||||
|
if (!pVehicle->bIsStatic)
|
||||||
|
pVehicle->AddToMovingList();
|
||||||
|
}
|
||||||
|
|
||||||
|
// done(LCS)
|
||||||
|
void SleepThisObject(cleanup_entity_struct* pCleanup, CObject* pObject)
|
||||||
|
{
|
||||||
|
if (!pObject->GetIsStatic())
|
||||||
|
pObject->RemoveFromMovingList();
|
||||||
|
pObject->bIsStaticWaitingForCollision = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// done(LCS)
|
||||||
|
void WakeThisObject(cleanup_entity_struct* pCleanup, CObject* pObject)
|
||||||
|
{
|
||||||
|
pObject->bIsStaticWaitingForCollision = false;
|
||||||
|
if (!pObject->bIsStatic)
|
||||||
|
pObject->AddToMovingList();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// done(LCS)
|
||||||
void CMissionCleanup::AddEntityToList(int32 id, uint8 type)
|
void CMissionCleanup::AddEntityToList(int32 id, uint8 type)
|
||||||
{
|
{
|
||||||
cleanup_entity_struct* pNew = FindFree();
|
cleanup_entity_struct* pNew = FindFree();
|
||||||
|
@ -1710,6 +1751,7 @@ void CMissionCleanup::AddEntityToList(int32 id, uint8 type)
|
||||||
m_nCount++;
|
m_nCount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// done(LCS)
|
||||||
static void PossiblyWakeThisEntity(CPhysical* pEntity, bool ifColLoaded = false)
|
static void PossiblyWakeThisEntity(CPhysical* pEntity, bool ifColLoaded = false)
|
||||||
{
|
{
|
||||||
if (!pEntity->bIsStaticWaitingForCollision)
|
if (!pEntity->bIsStaticWaitingForCollision)
|
||||||
|
@ -1721,6 +1763,7 @@ static void PossiblyWakeThisEntity(CPhysical* pEntity, bool ifColLoaded = false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// done(LCS)
|
||||||
void CMissionCleanup::RemoveEntityFromList(int32 id, uint8 type)
|
void CMissionCleanup::RemoveEntityFromList(int32 id, uint8 type)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < MAX_CLEANUP; i++){
|
for (int i = 0; i < MAX_CLEANUP; i++){
|
||||||
|
@ -1757,37 +1800,102 @@ void CMissionCleanup::RemoveEntityFromList(int32 id, uint8 type)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// done(LCS)
|
||||||
void CMissionCleanup::CheckIfCollisionHasLoadedForMissionObjects()
|
void CMissionCleanup::CheckIfCollisionHasLoadedForMissionObjects()
|
||||||
{
|
{
|
||||||
for (int i = 0; i < MAX_CLEANUP; i++) {
|
for (int i = 0; i < MAX_CLEANUP; i++) {
|
||||||
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);
|
eLevelName level = CTheZones::GetLevelFromPosition(&pVehicle->GetPosition());
|
||||||
break;
|
if (level == LEVEL_GENERIC)
|
||||||
|
level = CGame::currLevel;
|
||||||
|
if (!CColStore::HasCollisionLoaded(level)) {
|
||||||
|
if (!pVehicle->bIsStaticWaitingForCollision) {
|
||||||
|
if (!pVehicle->IsHeli() && !pVehicle->IsPlane() && pVehicle->GetVehicleAppearance() == VEHICLE_APPEARANCE_HELI &&
|
||||||
|
pVehicle->GetVehicleAppearance() == VEHICLE_APPEARANCE_BOAT && pVehicle->GetVehicleAppearance() == VEHICLE_APPEARANCE_PLANE) {
|
||||||
|
SleepThisVehicle(&m_sEntities[i], pVehicle);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (pVehicle->bIsStaticWaitingForCollision)
|
||||||
|
WakeThisVehicle(&m_sEntities[i], pVehicle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case CLEANUP_OBJECT:
|
||||||
|
CObject* pObject = CPools::GetObjectPool()->GetAt(m_sEntities[i].id);
|
||||||
|
if (pObject) {
|
||||||
|
eLevelName level = CTheZones::GetLevelFromPosition(&pObject->GetPosition());
|
||||||
|
if (level == LEVEL_GENERIC)
|
||||||
|
level = CGame::currLevel;
|
||||||
|
if (!CColStore::HasCollisionLoaded(level)) {
|
||||||
|
if (!pObject->bIsStaticWaitingForCollision) {
|
||||||
|
SleepThisObject(&m_sEntities[i], pObject);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (pObject->bIsStaticWaitingForCollision)
|
||||||
|
WakeThisObject(&m_sEntities[i], pObject);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (int i = 0; i < MAX_CLEANUP; i++) {
|
||||||
|
switch (m_sEntities[i].type) {
|
||||||
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);
|
eLevelName level = CTheZones::GetLevelFromPosition(&pPed->GetPosition());
|
||||||
break;
|
if (level == LEVEL_GENERIC)
|
||||||
|
level = CGame::currLevel;
|
||||||
|
if (!pPed->bIsStaticWaitingForCollision) {
|
||||||
|
if (pPed->bInVehicle) {
|
||||||
|
if (pPed->m_pMyVehicle->GetIsStatic()) {
|
||||||
|
SleepThisPed(&m_sEntities[i], pPed);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!CColStore::HasCollisionLoaded(level)) {
|
||||||
|
if (pPed->bInVehicle && pPed->m_pMyVehicle->GetIsStatic() ||
|
||||||
|
pPed->m_attachedTo && pPed->m_attachedTo->GetIsStatic())
|
||||||
|
SleepThisPed(&m_sEntities[i], pPed);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (!pPed->bInVehicle) {
|
||||||
|
if (CColStore::HasCollisionLoaded(level)) {
|
||||||
|
if (!(pPed->bInVehicle && pPed->m_pMyVehicle->GetIsStatic() ||
|
||||||
|
pPed->m_attachedTo && pPed->m_attachedTo->GetIsStatic()))
|
||||||
|
WakeThisPed(&m_sEntities[i], pPed);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (!pPed->m_pMyVehicle->GetIsStatic()) {
|
||||||
|
WakeThisPed(&m_sEntities[i], pPed);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (CColStore::HasCollisionLoaded(level)) {
|
||||||
|
if (!(pPed->bInVehicle && pPed->m_pMyVehicle->GetIsStatic() ||
|
||||||
|
pPed->m_attachedTo && pPed->m_attachedTo->GetIsStatic()))
|
||||||
|
WakeThisPed(&m_sEntities[i], pPed);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
case CLEANUP_OBJECT:
|
|
||||||
{
|
|
||||||
CObject* o = CPools::GetObjectPool()->GetAt(m_sEntities[i].id);
|
|
||||||
if (o)
|
|
||||||
PossiblyWakeThisEntity(o, true);
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
default:
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO(LCS)
|
||||||
CPhysical* CMissionCleanup::DoesThisEntityWaitForCollision(int i)
|
CPhysical* CMissionCleanup::DoesThisEntityWaitForCollision(int i)
|
||||||
{
|
{
|
||||||
if (m_sEntities[i].type == CLEANUP_CAR) {
|
if (m_sEntities[i].type == CLEANUP_CAR) {
|
||||||
|
@ -1803,6 +1911,7 @@ CPhysical* CMissionCleanup::DoesThisEntityWaitForCollision(int i)
|
||||||
return nil;
|
return nil;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// done(LCS) except TODO
|
||||||
void CMissionCleanup::Process()
|
void CMissionCleanup::Process()
|
||||||
{
|
{
|
||||||
CPopulation::m_AllRandomPedsThisType = -1;
|
CPopulation::m_AllRandomPedsThisType = -1;
|
||||||
|
@ -1810,6 +1919,8 @@ void CMissionCleanup::Process()
|
||||||
CCarCtrl::CarDensityMultiplier = 1.0f;
|
CCarCtrl::CarDensityMultiplier = 1.0f;
|
||||||
CPed::nThreatReactionRangeMultiplier = 1;
|
CPed::nThreatReactionRangeMultiplier = 1;
|
||||||
CPed::nEnterCarRangeMultiplier = 1;
|
CPed::nEnterCarRangeMultiplier = 1;
|
||||||
|
for (int i = 0; i < MAX_ALLOWED_COLLISIONS; i++)
|
||||||
|
CTheScripts::AllowedCollision[i] = 0;
|
||||||
FindPlayerPed()->m_pWanted->m_fCrimeSensitivity = 1.0f;
|
FindPlayerPed()->m_pWanted->m_fCrimeSensitivity = 1.0f;
|
||||||
CRoadBlocks::ClearScriptRoadBlocks();
|
CRoadBlocks::ClearScriptRoadBlocks();
|
||||||
CRouteNode::Initialise();
|
CRouteNode::Initialise();
|
||||||
|
@ -1817,20 +1928,19 @@ void CMissionCleanup::Process()
|
||||||
TheCamera.Restore();
|
TheCamera.Restore();
|
||||||
TheCamera.SetWideScreenOff();
|
TheCamera.SetWideScreenOff();
|
||||||
CSpecialFX::bLiftCam = false;
|
CSpecialFX::bLiftCam = false;
|
||||||
CSpecialFX::bVideoCam = false;
|
// TODO(LCS): CHud::m_ClockEventWarningMinutes = 0;
|
||||||
CTimeCycle::StopExtraColour(0);
|
// TODO(LCS): CHud::m_ClockEventFlashTimer = 0;
|
||||||
|
CTimeCycle::StopExtraColour(0); // TODO: thiscall
|
||||||
for (int i = 0; i < MISSION_AUDIO_SLOTS; i++)
|
for (int i = 0; i < MISSION_AUDIO_SLOTS; i++)
|
||||||
DMAudio.ClearMissionAudio(i);
|
DMAudio.ClearMissionAudio(i);
|
||||||
CWeather::ReleaseWeather();
|
CWeather::ReleaseWeather();
|
||||||
for (int i = 0; i < NUM_OF_SPECIAL_CHARS; i++)
|
for (int i = 0; i < NUM_OF_SPECIAL_CHARS; i++)
|
||||||
CStreaming::SetMissionDoesntRequireSpecialChar(i);
|
CStreaming::SetMissionDoesntRequireSpecialChar(i);
|
||||||
for (int i = 0; i < NUM_OF_CUTSCENE_OBJECTS; i++)
|
|
||||||
CStreaming::SetMissionDoesntRequireModel(MI_CUTOBJ01 + i);
|
|
||||||
CStreaming::ms_disableStreaming = false;
|
CStreaming::ms_disableStreaming = false;
|
||||||
|
if (CHud::m_ItemToFlash != ITEM_ARMOUR && CHud::m_ItemToFlash != ITEM_HEALTH)
|
||||||
CHud::m_ItemToFlash = -1;
|
CHud::m_ItemToFlash = -1;
|
||||||
CHud::SetHelpMessage(nil, false);
|
CHud::SetHelpMessage(nil, false); // nil, false, false, true TODO(LCS)
|
||||||
CUserDisplay::OnscnTimer.m_bDisabled = false;
|
CUserDisplay::OnscnTimer.m_bDisabled = false;
|
||||||
CTheScripts::RemoveScriptTextureDictionary();
|
|
||||||
CWorld::Players[0].m_pPed->m_pWanted->m_bIgnoredByCops = false;
|
CWorld::Players[0].m_pPed->m_pWanted->m_bIgnoredByCops = false;
|
||||||
CWorld::Players[0].m_pPed->m_pWanted->m_bIgnoredByEveryone = false;
|
CWorld::Players[0].m_pPed->m_pWanted->m_bIgnoredByEveryone = false;
|
||||||
CWorld::Players[0].MakePlayerSafe(false);
|
CWorld::Players[0].MakePlayerSafe(false);
|
||||||
|
@ -1838,10 +1948,11 @@ void CMissionCleanup::Process()
|
||||||
CWorld::Players[0].m_pPed->m_nDrunkCountdown = 0;
|
CWorld::Players[0].m_pPed->m_nDrunkCountdown = 0;
|
||||||
CPad::GetPad(0)->SetDrunkInputDelay(0);
|
CPad::GetPad(0)->SetDrunkInputDelay(0);
|
||||||
CWorld::Players[0].m_bDriveByAllowed = true;
|
CWorld::Players[0].m_bDriveByAllowed = true;
|
||||||
|
CPad::GetPad(0)->unk_B4 = 1.0f;
|
||||||
|
CPad::GetPad(0)->unk_B8 = 0.5f;
|
||||||
DMAudio.ShutUpPlayerTalking(0);
|
DMAudio.ShutUpPlayerTalking(0);
|
||||||
CVehicle::bDisableRemoteDetonation = false;
|
CVehicle::bDisableRemoteDetonation = false;
|
||||||
CVehicle::bDisableRemoteDetonationOnContact = false;
|
CVehicle::bDisableRemoteDetonationOnContact = false;
|
||||||
CGameLogic::ClearShortCut();
|
|
||||||
CTheScripts::RiotIntensity = 0;
|
CTheScripts::RiotIntensity = 0;
|
||||||
CTheScripts::StoreVehicleIndex = -1;
|
CTheScripts::StoreVehicleIndex = -1;
|
||||||
CTheScripts::StoreVehicleWasRandom = true;
|
CTheScripts::StoreVehicleWasRandom = true;
|
||||||
|
@ -1879,12 +1990,17 @@ void CMissionCleanup::Process()
|
||||||
m_sEntities[i].type = CLEANUP_UNUSED;
|
m_sEntities[i].type = CLEANUP_UNUSED;
|
||||||
m_nCount--;
|
m_nCount--;
|
||||||
}
|
}
|
||||||
|
for (int i = 1; i < NUMSTREAMINFO; i++) {
|
||||||
|
if (CStreaming::IsScriptOwnedModel(i))
|
||||||
|
CStreaming::SetMissionDoesntRequireModel(i);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* NB: CUpsideDownCarCheck is not used by actual script at all
|
/* NB: CUpsideDownCarCheck is not used by actual script at all
|
||||||
* It has a weird usage: AreAnyCarsUpsideDown would fail any mission
|
* It has a weird usage: AreAnyCarsUpsideDown would fail any mission
|
||||||
* just like death or arrest. */
|
* just like death or arrest. */
|
||||||
|
|
||||||
|
// done(LCS) except TODO
|
||||||
void CUpsideDownCarCheck::Init()
|
void CUpsideDownCarCheck::Init()
|
||||||
{
|
{
|
||||||
for (int i = 0; i < MAX_UPSIDEDOWN_CAR_CHECKS; i++){
|
for (int i = 0; i < MAX_UPSIDEDOWN_CAR_CHECKS; i++){
|
||||||
|
@ -1893,6 +2009,7 @@ void CUpsideDownCarCheck::Init()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// done(LCS)
|
||||||
bool CUpsideDownCarCheck::IsCarUpsideDown(int32 id)
|
bool CUpsideDownCarCheck::IsCarUpsideDown(int32 id)
|
||||||
{
|
{
|
||||||
CVehicle* v = CPools::GetVehiclePool()->GetAt(id);
|
CVehicle* v = CPools::GetVehiclePool()->GetAt(id);
|
||||||
|
@ -1901,6 +2018,7 @@ bool CUpsideDownCarCheck::IsCarUpsideDown(int32 id)
|
||||||
v->GetTurnSpeed().Magnitude() < 0.02f;
|
v->GetTurnSpeed().Magnitude() < 0.02f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// done(LCS)
|
||||||
void CUpsideDownCarCheck::UpdateTimers()
|
void CUpsideDownCarCheck::UpdateTimers()
|
||||||
{
|
{
|
||||||
uint32 timeStep = CTimer::GetTimeStepInMilliseconds();
|
uint32 timeStep = CTimer::GetTimeStepInMilliseconds();
|
||||||
|
@ -1918,6 +2036,7 @@ void CUpsideDownCarCheck::UpdateTimers()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// done(LCS)
|
||||||
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++){
|
||||||
|
@ -1927,6 +2046,7 @@ bool CUpsideDownCarCheck::AreAnyCarsUpsideDown()
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// done(LCS)
|
||||||
void CUpsideDownCarCheck::AddCarToCheck(int32 id)
|
void CUpsideDownCarCheck::AddCarToCheck(int32 id)
|
||||||
{
|
{
|
||||||
uint16 index = 0;
|
uint16 index = 0;
|
||||||
|
@ -1938,6 +2058,7 @@ void CUpsideDownCarCheck::AddCarToCheck(int32 id)
|
||||||
m_sCars[index].m_nUpsideDownTimer = 0;
|
m_sCars[index].m_nUpsideDownTimer = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// done(LCS)
|
||||||
void CUpsideDownCarCheck::RemoveCarFromCheck(int32 id)
|
void CUpsideDownCarCheck::RemoveCarFromCheck(int32 id)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < MAX_UPSIDEDOWN_CAR_CHECKS; i++){
|
for (int i = 0; i < MAX_UPSIDEDOWN_CAR_CHECKS; i++){
|
||||||
|
@ -1948,6 +2069,7 @@ void CUpsideDownCarCheck::RemoveCarFromCheck(int32 id)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// done(LCS)
|
||||||
bool CUpsideDownCarCheck::HasCarBeenUpsideDownForAWhile(int32 id)
|
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++){
|
||||||
|
|
|
@ -267,7 +267,8 @@ enum {
|
||||||
MAX_NUM_MISSION_SCRIPTS = 120,
|
MAX_NUM_MISSION_SCRIPTS = 120,
|
||||||
MAX_NUM_BUILDING_SWAPS = 25,
|
MAX_NUM_BUILDING_SWAPS = 25,
|
||||||
MAX_NUM_INVISIBILITY_SETTINGS = 20,
|
MAX_NUM_INVISIBILITY_SETTINGS = 20,
|
||||||
MAX_NUM_STORED_LINES = 1024
|
MAX_NUM_STORED_LINES = 1024,
|
||||||
|
MAX_ALLOWED_COLLISIONS = 2
|
||||||
};
|
};
|
||||||
|
|
||||||
class CTheScripts
|
class CTheScripts
|
||||||
|
@ -317,6 +318,8 @@ class CTheScripts
|
||||||
#define CARDS_IN_STACK (CARDS_IN_DECK * MAX_DECKS)
|
#define CARDS_IN_STACK (CARDS_IN_DECK * MAX_DECKS)
|
||||||
static int16 CardStack[CARDS_IN_STACK];
|
static int16 CardStack[CARDS_IN_STACK];
|
||||||
static int16 CardStackPosition;
|
static int16 CardStackPosition;
|
||||||
|
|
||||||
|
static int AllowedCollision[MAX_ALLOWED_COLLISIONS];
|
||||||
#endif
|
#endif
|
||||||
public:
|
public:
|
||||||
static bool bPlayerIsInTheStatium;
|
static bool bPlayerIsInTheStatium;
|
||||||
|
|
|
@ -164,6 +164,8 @@ public:
|
||||||
int32 LastTimeTouched;
|
int32 LastTimeTouched;
|
||||||
int32 AverageWeapon;
|
int32 AverageWeapon;
|
||||||
int32 AverageEntries;
|
int32 AverageEntries;
|
||||||
|
float unk_B4;
|
||||||
|
float unk_B8;
|
||||||
|
|
||||||
#ifdef DETECT_PAD_INPUT_SWITCH
|
#ifdef DETECT_PAD_INPUT_SWITCH
|
||||||
static bool IsAffectedByController;
|
static bool IsAffectedByController;
|
||||||
|
|
|
@ -123,6 +123,7 @@ public:
|
||||||
static bool HasColLoaded(int32 id) { return HasModelLoaded(id+STREAM_OFFSET_COL); }
|
static bool HasColLoaded(int32 id) { return HasModelLoaded(id+STREAM_OFFSET_COL); }
|
||||||
static bool HasAnimLoaded(int32 id) { return HasModelLoaded(id+STREAM_OFFSET_ANIM); }
|
static bool HasAnimLoaded(int32 id) { return HasModelLoaded(id+STREAM_OFFSET_ANIM); }
|
||||||
static bool CanRemoveModel(int32 id) { return (ms_aInfoForModel[id].m_flags & STREAMFLAGS_CANT_REMOVE) == 0; }
|
static bool CanRemoveModel(int32 id) { return (ms_aInfoForModel[id].m_flags & STREAMFLAGS_CANT_REMOVE) == 0; }
|
||||||
|
static bool IsScriptOwnedModel(int32 id) { return (ms_aInfoForModel[id].m_flags & STREAMFLAGS_SCRIPTOWNED) == 0; }
|
||||||
static bool CanRemoveTxd(int32 id) { return CanRemoveModel(id+STREAM_OFFSET_TXD); }
|
static bool CanRemoveTxd(int32 id) { return CanRemoveModel(id+STREAM_OFFSET_TXD); }
|
||||||
static bool CanRemoveCol(int32 id) { return CanRemoveModel(id+STREAM_OFFSET_COL); }
|
static bool CanRemoveCol(int32 id) { return CanRemoveModel(id+STREAM_OFFSET_COL); }
|
||||||
static bool CanRemoveAnim(int32 id) { return CanRemoveModel(id+STREAM_OFFSET_ANIM); }
|
static bool CanRemoveAnim(int32 id) { return CanRemoveModel(id+STREAM_OFFSET_ANIM); }
|
||||||
|
|
Loading…
Reference in a new issue