2019-05-15 16:52:37 +02:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
class CEntity;
|
|
|
|
|
|
|
|
extern bool gbShowPedRoadGroups;
|
|
|
|
extern bool gbShowCarRoadGroups;
|
|
|
|
extern bool gbShowCollisionPolys;
|
|
|
|
|
|
|
|
extern bool gbDontRenderBuildings;
|
|
|
|
extern bool gbDontRenderBigBuildings;
|
|
|
|
extern bool gbDontRenderPeds;
|
|
|
|
extern bool gbDontRenderObjects;
|
|
|
|
|
|
|
|
class CVehicle;
|
|
|
|
class CPtrList;
|
|
|
|
|
|
|
|
class CRenderer
|
|
|
|
{
|
|
|
|
static int32 &ms_nNoOfVisibleEntities;
|
|
|
|
static CEntity **ms_aVisibleEntityPtrs; // [2000];
|
|
|
|
static int32 &ms_nNoOfInVisibleEntities;
|
|
|
|
static CEntity **ms_aInVisibleEntityPtrs; // [150];
|
|
|
|
|
|
|
|
static CVector &ms_vecCameraPosition;
|
|
|
|
static CVehicle *&m_pFirstPersonVehicle;
|
2019-07-14 12:46:36 +02:00
|
|
|
|
2019-05-15 16:52:37 +02:00
|
|
|
public:
|
2019-07-14 12:46:36 +02:00
|
|
|
static float &ms_lodDistScale; // defined in Frontend.cpp
|
2019-06-27 00:12:58 +02:00
|
|
|
static bool &m_loadingPriority;
|
|
|
|
|
2019-05-15 16:52:37 +02:00
|
|
|
static void Init(void);
|
2019-07-06 12:27:21 +02:00
|
|
|
static void Shutdown(void);
|
2019-05-31 11:44:43 +02:00
|
|
|
static void PreRender(void);
|
2019-05-15 16:52:37 +02:00
|
|
|
|
|
|
|
static void RenderRoads(void);
|
|
|
|
static void RenderFadingInEntities(void);
|
|
|
|
static void RenderEverythingBarRoads(void);
|
|
|
|
static void RenderVehiclesButNotBoats(void);
|
|
|
|
static void RenderBoats(void);
|
|
|
|
static void RenderOneRoad(CEntity *);
|
|
|
|
static void RenderOneNonRoad(CEntity *);
|
|
|
|
static void RenderFirstPersonVehicle(void);
|
|
|
|
|
|
|
|
static int32 SetupEntityVisibility(CEntity *ent);
|
|
|
|
static int32 SetupBigBuildingVisibility(CEntity *ent);
|
|
|
|
|
|
|
|
static void ConstructRenderList(void);
|
|
|
|
static void ScanWorld(void);
|
|
|
|
static void RequestObjectsInFrustum(void);
|
|
|
|
static void ScanSectorPoly(RwV2d *poly, int32 numVertices, void (*scanfunc)(CPtrList *));
|
|
|
|
static void ScanBigBuildingList(CPtrList &list);
|
|
|
|
static void ScanSectorList(CPtrList *lists);
|
|
|
|
static void ScanSectorList_Priority(CPtrList *lists);
|
|
|
|
static void ScanSectorList_Subway(CPtrList *lists);
|
|
|
|
static void ScanSectorList_RequestModels(CPtrList *lists);
|
|
|
|
|
|
|
|
static void SortBIGBuildings(void);
|
|
|
|
static void SortBIGBuildingsForSectorList(CPtrList *list);
|
|
|
|
|
|
|
|
static bool ShouldModelBeStreamed(CEntity *ent);
|
|
|
|
static bool IsEntityCullZoneVisible(CEntity *ent);
|
|
|
|
static bool IsVehicleCullZoneVisible(CEntity *ent);
|
2019-06-12 21:17:02 +02:00
|
|
|
|
|
|
|
static void RemoveVehiclePedLights(CEntity *ent, bool reset);
|
2019-05-15 16:52:37 +02:00
|
|
|
};
|