mirror of
https://github.com/halpz/re3.git
synced 2025-07-23 20:09:43 +00:00
Merge branch 'miami' of https://github.com/GTAmodding/re3 into miami
This commit is contained in:
@ -20,3 +20,25 @@ CBuilding::ReplaceWithNewModel(int32 id)
|
||||
if(m_level == LEVEL_NONE || m_level == CGame::currLevel)
|
||||
CStreaming::RequestModel(id, STREAMFLAGS_DONT_REMOVE);
|
||||
}
|
||||
|
||||
bool
|
||||
IsBuildingPointerValid(CBuilding* pBuilding)
|
||||
{
|
||||
if (!pBuilding)
|
||||
return false;
|
||||
if (pBuilding->GetIsATreadable()) {
|
||||
int index = CPools::GetTreadablePool()->GetJustIndex((CTreadable*)pBuilding);
|
||||
#ifdef FIX_BUGS
|
||||
return index >= 0 && index < CPools::GetTreadablePool()->GetSize();
|
||||
#else
|
||||
return index >= 0 && index <= CPools::GetTreadablePool()->GetSize();
|
||||
#endif
|
||||
} else {
|
||||
int index = CPools::GetBuildingPool()->GetJustIndex(pBuilding);
|
||||
#ifdef FIX_BUGS
|
||||
return index >= 0 && index < CPools::GetBuildingPool()->GetSize();
|
||||
#else
|
||||
return index >= 0 && index <= CPools::GetBuildingPool()->GetSize();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
@ -16,3 +16,5 @@ public:
|
||||
|
||||
virtual bool GetIsATreadable(void) { return false; }
|
||||
};
|
||||
|
||||
bool IsBuildingPointerValid(CBuilding*);
|
||||
|
@ -50,3 +50,18 @@ CDummy::Remove(void)
|
||||
m_entryInfoList.DeleteNode(node);
|
||||
}
|
||||
}
|
||||
|
||||
bool
|
||||
IsDummyPointerValid(CDummy* pDummy)
|
||||
{
|
||||
if (!pDummy)
|
||||
return false;
|
||||
int index = CPools::GetDummyPool()->GetJustIndex(pDummy);
|
||||
#ifdef FIX_BUGS
|
||||
if (index < 0 || index >= CPools::GetDummyPool()->GetSize())
|
||||
#else
|
||||
if (index < 0 || index > CPools::GetDummyPool()->GetSize())
|
||||
#endif
|
||||
return false;
|
||||
return pDummy->m_entryInfoList.first;
|
||||
}
|
||||
|
@ -15,3 +15,5 @@ public:
|
||||
static void *operator new(size_t);
|
||||
static void operator delete(void*, size_t);
|
||||
};
|
||||
|
||||
bool IsDummyPointerValid(CDummy* pDummy);
|
||||
|
@ -28,6 +28,8 @@
|
||||
#include "Bones.h"
|
||||
#include "Debug.h"
|
||||
#include "Renderer.h"
|
||||
#include "Ped.h"
|
||||
#include "Dummy.h"
|
||||
|
||||
int gBuildings;
|
||||
|
||||
@ -1028,3 +1030,18 @@ CEntity::LoadEntityFlags(uint8*& buf)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
bool IsEntityPointerValid(CEntity* pEntity)
|
||||
{
|
||||
if (!pEntity)
|
||||
return false;
|
||||
switch (pEntity->GetType()) {
|
||||
case ENTITY_TYPE_NOTHING: return false;
|
||||
case ENTITY_TYPE_BUILDING: return IsBuildingPointerValid((CBuilding*)pEntity);
|
||||
case ENTITY_TYPE_VEHICLE: return IsVehiclePointerValid((CVehicle*)pEntity);
|
||||
case ENTITY_TYPE_PED: return IsPedPointerValid((CPed*)pEntity);
|
||||
case ENTITY_TYPE_OBJECT: return IsObjectPointerValid((CObject*)pEntity);
|
||||
case ENTITY_TYPE_DUMMY: return IsDummyPointerValid((CDummy*)pEntity);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@ -180,3 +180,5 @@ public:
|
||||
|
||||
static void AddSteamsFromGround(CPtrList& list);
|
||||
};
|
||||
|
||||
bool IsEntityPointerValid(CEntity*);
|
||||
|
Reference in New Issue
Block a user