mirror of
https://github.com/halpz/re3.git
synced 2024-12-27 18:25:28 +00:00
script colstore stuff
This commit is contained in:
parent
35bf340401
commit
0b104a59fe
|
@ -249,6 +249,21 @@ void CMissionCleanup::CheckIfCollisionHasLoadedForMissionObject()
|
|||
}
|
||||
}
|
||||
|
||||
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()
|
||||
{
|
||||
CPopulation::m_AllRandomPedsThisType = -1;
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
class CEntity;
|
||||
class CBuilding;
|
||||
class CPhysical;
|
||||
class CVehicle;
|
||||
class CPed;
|
||||
class CObject;
|
||||
|
@ -132,6 +133,7 @@ public:
|
|||
void RemoveEntityFromList(int32, uint8);
|
||||
void Process();
|
||||
void CheckIfCollisionHasLoadedForMissionObject();
|
||||
CPhysical* DoesThisEntityWaitForCollision(int i);
|
||||
};
|
||||
|
||||
struct CUpsideDownCarCheckEntry
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
#include "Timer.h"
|
||||
#include "Camera.h"
|
||||
#include "Frontend.h"
|
||||
#include "Physical.h"
|
||||
#include "ColStore.h"
|
||||
|
||||
CPool<ColDef,ColDef> *CColStore::ms_pColPool;
|
||||
|
@ -174,7 +175,13 @@ CColStore::LoadCollision(const CVector2D &pos)
|
|||
CGeneral::faststrcmp(GetColName(i), "yacht") == 0){
|
||||
wantThisOne = true;
|
||||
}else{
|
||||
// TODO: check mission cleanup list
|
||||
for (int j = 0; j < MAX_CLEANUP; j++) {
|
||||
CPhysical* pEntity = CTheScripts::MissionCleanup.DoesThisEntityWaitForCollision(j);
|
||||
if (pEntity /* !pEntity->bDontLoadCollision && !pEntity->bIsFrozen */) {
|
||||
if (GetBoundingBox(i).IsPointInside(pEntity->GetPosition(), -80.0f))
|
||||
wantThisOne = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(wantThisOne)
|
||||
|
@ -221,7 +228,7 @@ CColStore::HasCollisionLoaded(const CVector2D &pos)
|
|||
int i;
|
||||
|
||||
for(i = 1; i < COLSTORESIZE; i++)
|
||||
if(GetSlot(i) && GetBoundingBox(i).IsPointInside(pos, -110.0f) &&
|
||||
if(GetSlot(i) && GetBoundingBox(i).IsPointInside(pos, -115.0f) &&
|
||||
!GetSlot(i)->isLoaded)
|
||||
return false;
|
||||
return true;
|
||||
|
|
Loading…
Reference in a new issue