commit
11d071a032
@ -87,6 +87,9 @@ enum Config {
|
|||||||
NUM_FIRES = 40,
|
NUM_FIRES = 40,
|
||||||
|
|
||||||
NUMPEDROUTES = 200,
|
NUMPEDROUTES = 200,
|
||||||
|
|
||||||
|
NUMVISIBLEENTITIES = 2000,
|
||||||
|
NUMINVISIBLEENTITIES = 150,
|
||||||
};
|
};
|
||||||
|
|
||||||
// We'll use this once we're ready to become independent of the game
|
// We'll use this once we're ready to become independent of the game
|
||||||
|
@ -40,9 +40,9 @@ struct EntityInfo
|
|||||||
CLinkList<EntityInfo> &gSortedVehiclesAndPeds = *(CLinkList<EntityInfo>*)0x629AC0;
|
CLinkList<EntityInfo> &gSortedVehiclesAndPeds = *(CLinkList<EntityInfo>*)0x629AC0;
|
||||||
|
|
||||||
int32 &CRenderer::ms_nNoOfVisibleEntities = *(int32*)0x940730;
|
int32 &CRenderer::ms_nNoOfVisibleEntities = *(int32*)0x940730;
|
||||||
CEntity **CRenderer::ms_aVisibleEntityPtrs = (CEntity**)0x6E9920;
|
CEntity *(&CRenderer::ms_aVisibleEntityPtrs)[NUMVISIBLEENTITIES] = *(CEntity * (*)[NUMVISIBLEENTITIES]) * (uintptr*)0x6E9920;
|
||||||
|
CEntity *(&CRenderer::ms_aInVisibleEntityPtrs)[NUMINVISIBLEENTITIES] = *(CEntity * (*)[NUMINVISIBLEENTITIES]) * (uintptr*)0x880B50;
|
||||||
int32 &CRenderer::ms_nNoOfInVisibleEntities = *(int32*)0x8F1B78;
|
int32 &CRenderer::ms_nNoOfInVisibleEntities = *(int32*)0x8F1B78;
|
||||||
CEntity **CRenderer::ms_aInVisibleEntityPtrs = (CEntity**)0x880B50;
|
|
||||||
|
|
||||||
CVector &CRenderer::ms_vecCameraPosition = *(CVector*)0x8E2C3C;
|
CVector &CRenderer::ms_vecCameraPosition = *(CVector*)0x8E2C3C;
|
||||||
CVehicle *&CRenderer::m_pFirstPersonVehicle = *(CVehicle**)0x885B80;
|
CVehicle *&CRenderer::m_pFirstPersonVehicle = *(CVehicle**)0x885B80;
|
||||||
@ -73,9 +73,9 @@ CRenderer::PreRender(void)
|
|||||||
for(i = 0; i < ms_nNoOfInVisibleEntities; i++)
|
for(i = 0; i < ms_nNoOfInVisibleEntities; i++)
|
||||||
ms_aInVisibleEntityPtrs[i]->PreRender();
|
ms_aInVisibleEntityPtrs[i]->PreRender();
|
||||||
|
|
||||||
for(node = CVisibilityPlugins::m_alphaEntityList.tail.prev;
|
for(node = CVisibilityPlugins::m_alphaEntityList.head.next;
|
||||||
node != &CVisibilityPlugins::m_alphaEntityList.head;
|
node != &CVisibilityPlugins::m_alphaEntityList.tail;
|
||||||
node = node->prev)
|
node = node->next)
|
||||||
((CEntity*)node->item.entity)->PreRender();
|
((CEntity*)node->item.entity)->PreRender();
|
||||||
|
|
||||||
CHeli::SpecialHeliPreRender();
|
CHeli::SpecialHeliPreRender();
|
||||||
@ -983,7 +983,7 @@ CRenderer::ScanSectorList(CPtrList *lists)
|
|||||||
dy = ms_vecCameraPosition.y - ent->GetPosition().y;
|
dy = ms_vecCameraPosition.y - ent->GetPosition().y;
|
||||||
if(dx > -65.0f && dx < 65.0f &&
|
if(dx > -65.0f && dx < 65.0f &&
|
||||||
dy > -65.0f && dy < 65.0f &&
|
dy > -65.0f && dy < 65.0f &&
|
||||||
ms_nNoOfInVisibleEntities < 150)
|
ms_nNoOfInVisibleEntities < NUMINVISIBLEENTITIES - 1)
|
||||||
ms_aInVisibleEntityPtrs[ms_nNoOfInVisibleEntities++] = ent;
|
ms_aInVisibleEntityPtrs[ms_nNoOfInVisibleEntities++] = ent;
|
||||||
break;
|
break;
|
||||||
case VIS_STREAMME:
|
case VIS_STREAMME:
|
||||||
@ -1033,7 +1033,7 @@ CRenderer::ScanSectorList_Priority(CPtrList *lists)
|
|||||||
dy = ms_vecCameraPosition.y - ent->GetPosition().y;
|
dy = ms_vecCameraPosition.y - ent->GetPosition().y;
|
||||||
if(dx > -65.0f && dx < 65.0f &&
|
if(dx > -65.0f && dx < 65.0f &&
|
||||||
dy > -65.0f && dy < 65.0f &&
|
dy > -65.0f && dy < 65.0f &&
|
||||||
ms_nNoOfInVisibleEntities < 150)
|
ms_nNoOfInVisibleEntities < NUMINVISIBLEENTITIES - 1)
|
||||||
ms_aInVisibleEntityPtrs[ms_nNoOfInVisibleEntities++] = ent;
|
ms_aInVisibleEntityPtrs[ms_nNoOfInVisibleEntities++] = ent;
|
||||||
break;
|
break;
|
||||||
case VIS_STREAMME:
|
case VIS_STREAMME:
|
||||||
@ -1078,7 +1078,7 @@ CRenderer::ScanSectorList_Subway(CPtrList *lists)
|
|||||||
dy = ms_vecCameraPosition.y - ent->GetPosition().y;
|
dy = ms_vecCameraPosition.y - ent->GetPosition().y;
|
||||||
if(dx > -65.0f && dx < 65.0f &&
|
if(dx > -65.0f && dx < 65.0f &&
|
||||||
dy > -65.0f && dy < 65.0f &&
|
dy > -65.0f && dy < 65.0f &&
|
||||||
ms_nNoOfInVisibleEntities < 150)
|
ms_nNoOfInVisibleEntities < NUMINVISIBLEENTITIES - 1)
|
||||||
ms_aInVisibleEntityPtrs[ms_nNoOfInVisibleEntities++] = ent;
|
ms_aInVisibleEntityPtrs[ms_nNoOfInVisibleEntities++] = ent;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1160,8 +1160,12 @@ CRenderer::IsEntityCullZoneVisible(CEntity *ent)
|
|||||||
return IsVehicleCullZoneVisible(ent);
|
return IsVehicleCullZoneVisible(ent);
|
||||||
case ENTITY_TYPE_PED:
|
case ENTITY_TYPE_PED:
|
||||||
ped = (CPed*)ent;
|
ped = (CPed*)ent;
|
||||||
if(ped->bInVehicle)
|
if (ped->bInVehicle) {
|
||||||
return ped->m_pMyVehicle && IsVehicleCullZoneVisible(ped->m_pMyVehicle);
|
if (ped->m_pMyVehicle)
|
||||||
|
return IsVehicleCullZoneVisible(ped->m_pMyVehicle);
|
||||||
|
else
|
||||||
|
return true;
|
||||||
|
}
|
||||||
return !(ped->m_pCurSurface && ped->m_pCurSurface->bZoneCulled2);
|
return !(ped->m_pCurSurface && ped->m_pCurSurface->bZoneCulled2);
|
||||||
case ENTITY_TYPE_OBJECT:
|
case ENTITY_TYPE_OBJECT:
|
||||||
obj = (CObject*)ent;
|
obj = (CObject*)ent;
|
||||||
|
@ -19,9 +19,9 @@ class CPtrList;
|
|||||||
class CRenderer
|
class CRenderer
|
||||||
{
|
{
|
||||||
static int32 &ms_nNoOfVisibleEntities;
|
static int32 &ms_nNoOfVisibleEntities;
|
||||||
static CEntity **ms_aVisibleEntityPtrs; // [2000];
|
static CEntity *(&ms_aVisibleEntityPtrs)[NUMVISIBLEENTITIES];
|
||||||
static int32 &ms_nNoOfInVisibleEntities;
|
static int32 &ms_nNoOfInVisibleEntities;
|
||||||
static CEntity **ms_aInVisibleEntityPtrs; // [150];
|
static CEntity *(&ms_aInVisibleEntityPtrs)[NUMINVISIBLEENTITIES];
|
||||||
|
|
||||||
static CVector &ms_vecCameraPosition;
|
static CVector &ms_vecCameraPosition;
|
||||||
static CVehicle *&m_pFirstPersonVehicle;
|
static CVehicle *&m_pFirstPersonVehicle;
|
||||||
|
Loading…
Reference in New Issue
Block a user