From 0163a7bc4678be0817885929e10700196d0bb6e9 Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Tue, 5 May 2020 18:13:46 +0300 Subject: [PATCH 1/4] Remove ColStore --- src/core/ColStore.cpp | 231 ------------------------------------------ src/core/ColStore.h | 43 -------- 2 files changed, 274 deletions(-) delete mode 100644 src/core/ColStore.cpp delete mode 100644 src/core/ColStore.h diff --git a/src/core/ColStore.cpp b/src/core/ColStore.cpp deleted file mode 100644 index 0c3356c5..00000000 --- a/src/core/ColStore.cpp +++ /dev/null @@ -1,231 +0,0 @@ -#include "common.h" -#ifdef MIAMI - -#include "templates.h" -#include "General.h" -#include "ModelInfo.h" -#include "Streaming.h" -#include "FileLoader.h" -#include "Script.h" -#include "Timer.h" -#include "Camera.h" -#include "Frontend.h" -#include "ColStore.h" - -CPool *CColStore::ms_pColPool; - -void -CColStore::Initialise(void) -{ - if(ms_pColPool == nil) - ms_pColPool = new CPool(COLSTORESIZE, "CollisionFiles"); - AddColSlot("generic"); // slot 0. not streamed -} - -void -CColStore::Shutdown(void) -{ - int i; - for(i = 0; i < COLSTORESIZE; i++) - RemoveColSlot(i); - if(ms_pColPool) - delete ms_pColPool; - ms_pColPool = nil; -} - -int -CColStore::AddColSlot(const char *name) -{ - ColDef *def = ms_pColPool->New(); - assert(def); - def->isLoaded = false; - def->a = 0; - def->bounds.left = 1000000.0f; - def->bounds.top = 1000000.0f; - def->bounds.right = -1000000.0f; - def->bounds.bottom = -1000000.0f; - def->minIndex = INT16_MAX; - def->maxIndex = INT16_MIN; - strcpy(def->name, name); - return ms_pColPool->GetJustIndex(def); -} - -void -CColStore::RemoveColSlot(int slot) -{ - if(GetSlot(slot)){ - if(GetSlot(slot)->isLoaded) - RemoveCol(slot); - ms_pColPool->Delete(GetSlot(slot)); - } -} - -int -CColStore::FindColSlot(const char *name) -{ - ColDef *def; - int size = ms_pColPool->GetSize(); - for(int i = 0; i < size; i++){ - def = GetSlot(i); - if(def && !CGeneral::faststricmp(def->name, name)) - return i; - } - return -1; -} - -char* -CColStore::GetColName(int32 slot) -{ - return GetSlot(slot)->name; -} - -CRect& -CColStore::GetBoundingBox(int32 slot) -{ - return GetSlot(slot)->bounds; -} - -void -CColStore::IncludeModelIndex(int32 slot, int32 modelIndex) -{ - ColDef *def = GetSlot(slot); - if(modelIndex < def->minIndex) - def->minIndex = modelIndex; - if(modelIndex > def->maxIndex) - def->maxIndex = modelIndex; -} - -bool -CColStore::LoadCol(int32 slot, uint8 *buffer, int32 bufsize) -{ - bool success; - ColDef *def = GetSlot(slot); - if(def->minIndex > def->maxIndex) - success = CFileLoader::LoadCollisionFileFirstTime(buffer, bufsize, slot); - else - success = CFileLoader::LoadCollisionFile(buffer, bufsize, slot); - if(success) - def->isLoaded = true; - else - debug("Failed to load Collision\n"); - return success; -} - -void -CColStore::RemoveCol(int32 slot) -{ - int id; - GetSlot(slot)->isLoaded = false; - for(id = 0; id < MODELINFOSIZE; id++){ - CBaseModelInfo *mi = CModelInfo::GetModelInfo(id); - if(mi){ - CColModel *col = mi->GetColModel(); - if(col && col->level == slot) - col->RemoveCollisionVolumes(); - } - } -} - -void -CColStore::LoadAllCollision(void) -{ - int i; - for(i = 1; i < COLSTORESIZE; i++) - if(GetSlot(i)) - CStreaming::RequestCol(i, 0); - CStreaming::LoadAllRequestedModels(false); -} - -void -CColStore::RemoveAllCollision(void) -{ - int i; - for(i = 1; i < COLSTORESIZE; i++) - if(GetSlot(i)) - if(CStreaming::CanRemoveCol(i)) - CStreaming::RemoveCol(i); -} - -static bool bLoadAtSecondPosition; -static CVector2D secondPosition; - -void -CColStore::AddCollisionNeededAtPosn(const CVector2D &pos) -{ - bLoadAtSecondPosition = true; - secondPosition = pos; -} - -void -CColStore::LoadCollision(const CVector2D &pos) -{ - int i; - - if(CStreaming::ms_disableStreaming) - return; - - for(i = 1; i < COLSTORESIZE; i++){ - if(GetSlot(i) == nil) - continue; - - bool wantThisOne = false; - - if(GetBoundingBox(i).IsPointInside(pos) || - bLoadAtSecondPosition && GetBoundingBox(i).IsPointInside(secondPosition, -119.0f) || - CGeneral::faststrcmp(GetColName(i), "yacht") == 0){ - wantThisOne = true; - }else{ - // TODO: check mission cleanup list - } - - if(wantThisOne) - CStreaming::RequestCol(i, STREAMFLAGS_PRIORITY); - else - CStreaming::RemoveCol(i); - } - bLoadAtSecondPosition = false; -} - -void -CColStore::RequestCollision(const CVector2D &pos) -{ - int i; - - for(i = 1; i < COLSTORESIZE; i++) - if(GetSlot(i) && GetBoundingBox(i).IsPointInside(pos, -115.0f)) - CStreaming::RequestCol(i, STREAMFLAGS_PRIORITY); -} - -void -CColStore::EnsureCollisionIsInMemory(const CVector2D &pos) -{ - int i; - - if(CStreaming::ms_disableStreaming) - return; - - for(i = 1; i < COLSTORESIZE; i++) - if(GetSlot(i) && GetBoundingBox(i).IsPointInside(pos, -110.0f) && - !CStreaming::HasColLoaded(i)){ - CStreaming::RequestCol(i, 0); - if(TheCamera.GetScreenFadeStatus() == FADE_0) - FrontEndMenuManager.MessageScreen("LOADCOL", false); - CTimer::Suspend(); - CStreaming::LoadAllRequestedModels(false); - CTimer::Resume(); - } -} - -bool -CColStore::HasCollisionLoaded(const CVector2D &pos) -{ - int i; - - for(i = 1; i < COLSTORESIZE; i++) - if(GetSlot(i) && GetBoundingBox(i).IsPointInside(pos, -110.0f) && - !GetSlot(i)->isLoaded) - return false; - return true; -} - -#endif diff --git a/src/core/ColStore.h b/src/core/ColStore.h deleted file mode 100644 index 0d686ffd..00000000 --- a/src/core/ColStore.h +++ /dev/null @@ -1,43 +0,0 @@ -#pragma once - -#include "templates.h" - -struct ColDef { // made up name - int32 a; - bool isLoaded; - CRect bounds; - char name[20]; - int16 minIndex; - int16 maxIndex; -}; - -class CColStore -{ - static CPool *ms_pColPool; - -public: - static void Initialise(void); - static void Shutdown(void); - static int AddColSlot(const char *name); - static void RemoveColSlot(int32 slot); - static int FindColSlot(const char *name); - static char *GetColName(int32 slot); - static CRect &GetBoundingBox(int32 slot); - static void IncludeModelIndex(int32 slot, int32 modelIndex); - static bool LoadCol(int32 storeID, uint8 *buffer, int32 bufsize); - static void RemoveCol(int32 slot); - static void AddCollisionNeededAtPosn(const CVector2D &pos); - static void LoadAllCollision(void); - static void RemoveAllCollision(void); - static void LoadCollision(const CVector2D &pos); - static void RequestCollision(const CVector2D &pos); - static void EnsureCollisionIsInMemory(const CVector2D &pos); - static bool HasCollisionLoaded(const CVector2D &pos); - - static ColDef *GetSlot(int slot) { - assert(slot >= 0); - assert(ms_pColPool); - assert(slot < ms_pColPool->GetSize()); - return ms_pColPool->GetSlot(slot); - } -}; From 1eb817de7713ea95bbbcbd7543ffce61ced8ffec Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Tue, 5 May 2020 18:32:46 +0300 Subject: [PATCH 2/4] Remove GTA_TRAIN, GTA_BRIDGE, GTA_ZONECULL --- src/control/Bridge.cpp | 14 -------------- src/control/CarCtrl.cpp | 8 ++------ src/control/PathFind.cpp | 2 -- src/control/TrafficLights.cpp | 4 ---- src/core/Camera.cpp | 6 ------ src/core/Game.cpp | 6 ------ src/core/Streaming.cpp | 6 ------ src/core/ZoneCull.cpp | 16 +--------------- src/core/config.h | 6 ------ src/entities/Entity.cpp | 17 ----------------- src/entities/Entity.h | 3 --- src/peds/CopPed.cpp | 2 +- src/render/Renderer.cpp | 12 ------------ src/render/Renderer.h | 2 -- src/vehicles/Train.cpp | 26 -------------------------- 15 files changed, 4 insertions(+), 126 deletions(-) diff --git a/src/control/Bridge.cpp b/src/control/Bridge.cpp index 1e63cf30..e873062b 100644 --- a/src/control/Bridge.cpp +++ b/src/control/Bridge.cpp @@ -23,7 +23,6 @@ uint32 CBridge::TimeOfBridgeBecomingOperational; void CBridge::Init() { -#ifdef GTA_BRIDGE FindBridgeEntities(); OldLift = -1.0f; if (pLiftPart && pWeight) @@ -36,12 +35,10 @@ void CBridge::Init() ThePaths.SetLinksBridgeLights(-330.0, -230.0, -700.0, -588.0, true); } -#endif } void CBridge::Update() { -#ifdef GTA_BRIDGE if (!pLiftPart || !pWeight) return; @@ -116,21 +113,15 @@ void CBridge::Update() ThePaths.SetLinksBridgeLights(-330.0, -230.0, -700.0, -588.0, true); else if (State == STATE_LIFT_PART_IS_DOWN && OldState == STATE_LIFT_PART_MOVING_DOWN) ThePaths.SetLinksBridgeLights(-330.0, -230.0, -700.0, -588.0, false); -#endif } bool CBridge::ShouldLightsBeFlashing() { -#ifdef GTA_BRIDGE return State != STATE_LIFT_PART_IS_DOWN; -#else - return false; -#endif } void CBridge::FindBridgeEntities() { -#ifdef GTA_BRIDGE pWeight = nil; pLiftRoad = nil; pLiftPart = nil; @@ -147,17 +138,12 @@ void CBridge::FindBridgeEntities() pWeight = entry; } } -#endif } bool CBridge::ThisIsABridgeObjectMovingUp(int index) { -#ifdef GTA_BRIDGE if (index != MI_BRIDGEROADSEGMENT && index != MI_BRIDGELIFT) return false; return State == STATE_LIFT_PART_ABOUT_TO_MOVE_UP || State == STATE_LIFT_PART_MOVING_UP; -#else - return false; -#endif } diff --git a/src/control/CarCtrl.cpp b/src/control/CarCtrl.cpp index db6139b9..9b2bd4f0 100644 --- a/src/control/CarCtrl.cpp +++ b/src/control/CarCtrl.cpp @@ -696,7 +696,7 @@ CCarCtrl::PossiblyRemoveVehicle(CVehicle* pVehicle) if (pVehicle->bExtendedRange) threshold *= 1.5f; if (distanceToPlayer > threshold && !CGarages::IsPointWithinHideOutGarage(pVehicle->GetPosition())){ - if (pVehicle->GetIsOnScreenAndNotCulled()){ + if (pVehicle->GetIsOnScreen() && CRenderer::IsEntityCullZoneVisible(pVehicle)) { pVehicle->bFadeOut = true; }else{ CWorld::Remove(pVehicle); @@ -722,7 +722,7 @@ CCarCtrl::PossiblyRemoveVehicle(CVehicle* pVehicle) if (pVehicle->GetStatus() != STATUS_WRECKED || pVehicle->m_nTimeOfDeath == 0) return; if (CTimer::GetTimeInMilliseconds() > pVehicle->m_nTimeOfDeath + 60000 && - !pVehicle->GetIsOnScreenAndNotCulled()){ + !(pVehicle->GetIsOnScreen() && CRenderer::IsEntityCullZoneVisible(pVehicle)) ){ if ((pVehicle->GetPosition() - vecPlayerPos).MagnitudeSqr() > SQR(7.5f)){ if (!CGarages::IsPointWithinHideOutGarage(pVehicle->GetPosition())){ CWorld::Remove(pVehicle); @@ -2741,11 +2741,7 @@ bool CCarCtrl::ThisRoadObjectCouldMove(int16 mi) bool CCarCtrl::MapCouldMoveInThisArea(float x, float y) { -#ifdef GTA_BRIDGE // actually they forgot that in VC... // bridge moves up and down return x > -342.0f && x < -219.0f && y > -677.0f && y < -580.0f; -#else - return false; -#endif } diff --git a/src/control/PathFind.cpp b/src/control/PathFind.cpp index c278cf35..ee15b82f 100644 --- a/src/control/PathFind.cpp +++ b/src/control/PathFind.cpp @@ -975,7 +975,6 @@ CPathFind::RemoveBadStartNode(CVector pos, CPathNode **nodes, int16 *n) } } -#ifdef GTA_BRIDGE void CPathFind::SetLinksBridgeLights(float x1, float x2, float y1, float y2, bool enable) { @@ -987,7 +986,6 @@ CPathFind::SetLinksBridgeLights(float x1, float x2, float y1, float y2, bool ena m_carPathLinks[i].bBridgeLights = enable; } } -#endif void CPathFind::SwitchOffNodeAndNeighbours(int32 nodeId, bool disable) diff --git a/src/control/TrafficLights.cpp b/src/control/TrafficLights.cpp index f2dd6814..b2f0900e 100644 --- a/src/control/TrafficLights.cpp +++ b/src/control/TrafficLights.cpp @@ -273,12 +273,8 @@ CTrafficLights::ShouldCarStopForLight(CVehicle *vehicle, bool alwaysStop) bool CTrafficLights::ShouldCarStopForBridge(CVehicle *vehicle) { -#ifdef GTA_BRIDGE return ThePaths.m_carPathLinks[vehicle->AutoPilot.m_nNextPathNodeInfo].bBridgeLights && !ThePaths.m_carPathLinks[vehicle->AutoPilot.m_nCurrentPathNodeInfo].bBridgeLights; -#else - return false; -#endif } int diff --git a/src/core/Camera.cpp b/src/core/Camera.cpp index 3f4684e7..9b178f35 100644 --- a/src/core/Camera.cpp +++ b/src/core/Camera.cpp @@ -633,11 +633,7 @@ CCamera::CamControl(void) m_bInitialNodeFound = false; m_bInitialNoNodeStaticsSet = false; } -#ifdef GTA_TRAIN Process_Train_Camera_Control(); -#else - assert(0 && "this can't happen"); -#endif }else{ if(((CVehicle*)pTargetEntity)->IsBoat()) boatTarget = true; @@ -2711,7 +2707,6 @@ CCamera::DontProcessObbeCinemaCamera(void) bDidWeProcessAnyCinemaCam = false; } -#ifdef GTA_TRAIN void CCamera::LoadTrainCamNodes(char const *name) { @@ -2889,7 +2884,6 @@ CCamera::Process_Train_Camera_Control(void) } } } -#endif void diff --git a/src/core/Game.cpp b/src/core/Game.cpp index 27731f8a..d0f412d8 100644 --- a/src/core/Game.cpp +++ b/src/core/Game.cpp @@ -370,9 +370,7 @@ bool CGame::Initialise(const char* datFile) LoadingScreen("Loading the Game", "Position dynamic objects", nil); CWorld::RepositionCertainDynamicObjects(); LoadingScreen("Loading the Game", "Initialise vehicle paths", nil); -#ifdef GTA_ZONECULL CCullZones::ResolveVisibilities(); -#endif CTrain::InitTrains(); CPlane::InitPlanes(); CCredits::Init(); @@ -489,9 +487,7 @@ void CGame::ReInitGameObjectVariables(void) CSpecialFX::Init(); CWaterCannons::Init(); CParticle::ReloadConfig(); -#ifdef GTA_ZONECULL CCullZones::ResolveVisibilities(); -#endif if ( !FrontEndMenuManager.m_bWantToLoad ) { @@ -524,9 +520,7 @@ void CGame::ReloadIPLs(void) CCranes::InitCranes(); CGarages::Init(); CWorld::RepositionCertainDynamicObjects(); -#ifdef GTA_ZONECULL CCullZones::ResolveVisibilities(); -#endif CRenderer::SortBIGBuildings(); CTimer::Update(); } diff --git a/src/core/Streaming.cpp b/src/core/Streaming.cpp index 978e0bb8..da9e7d33 100644 --- a/src/core/Streaming.cpp +++ b/src/core/Streaming.cpp @@ -1982,9 +1982,7 @@ CStreaming::ProcessEntitiesInSectorList(CPtrList &list, float x, float y, float if(xmin < pos.x && pos.x < xmax && ymin < pos.y && pos.y < ymax && (CVector2D(x, y) - pos).MagnitudeSqr() < lodDistSq) -#ifdef GTA_ZONECULL if(CRenderer::IsEntityCullZoneVisible(e)) -#endif RequestModel(e->GetModelIndex(), 0); } } @@ -2008,9 +2006,7 @@ CStreaming::ProcessEntitiesInSectorList(CPtrList &list) (!e->IsObject() || ((CObject*)e)->ObjectCreatedBy != TEMP_OBJECT)){ CTimeModelInfo *mi = (CTimeModelInfo*)CModelInfo::GetModelInfo(e->GetModelIndex()); if (mi->GetModelType() != MITYPE_TIME || CClock::GetIsTimeInRange(mi->GetTimeOn(), mi->GetTimeOff())) -#ifdef GTA_ZONECULL if(CRenderer::IsEntityCullZoneVisible(e)) -#endif RequestModel(e->GetModelIndex(), 0); } } @@ -2434,9 +2430,7 @@ CStreaming::LoadScene(const CVector &pos) RemoveModel(si - ms_aInfoForModel); } CRenderer::m_loadingPriority = false; -#ifdef GTA_ZONECULL CCullZones::ForceCullZoneCoors(pos); -#endif DeleteAllRwObjects(); AddModelsToRequestList(pos); CRadar::StreamRadarSections(pos); diff --git a/src/core/ZoneCull.cpp b/src/core/ZoneCull.cpp index 1e9c00f0..780c180e 100644 --- a/src/core/ZoneCull.cpp +++ b/src/core/ZoneCull.cpp @@ -38,7 +38,6 @@ CCullZones::Init(void) CurrentFlags_Camera = 0; CurrentFlags_Player = 0; bCurrentSubwayIsInvisible = false; -#ifdef GTA_ZONECULL NumCullZones = 0; OldCullZone = -1; EntityIndicesUsed = 0; @@ -47,10 +46,8 @@ CCullZones::Init(void) aPointersToBigBuildingsForBuildings[i] = -1; for(i = 0; i < NUMTREADABLES; i++) aPointersToBigBuildingsForTreadables[i] = -1; -#endif } -#ifdef GTA_ZONECULL bool CCullZone::TestLine(CVector vec1, CVector vec2) { CColPoint colPoint; @@ -216,7 +213,6 @@ CCullZones::DoVisibilityTestCullZone(int zoneId, bool doIt) } } } -#endif void CCullZones::Update(void) @@ -229,10 +225,8 @@ CCullZones::Update(void) switch(CTimer::GetFrameCounter() & 7){ case 0: case 4: -#ifdef GTA_ZONECULL /* Update Cull zone */ ForceCullZoneCoors(TheCamera.GetGameCamPosition()); -#endif break; case 2: @@ -256,7 +250,6 @@ CCullZones::Update(void) void CCullZones::ForceCullZoneCoors(CVector coors) { -#ifdef GTA_ZONECULL int32 z; z = FindCullZoneForCoors(coors); if(z != OldCullZone){ @@ -266,10 +259,8 @@ CCullZones::ForceCullZoneCoors(CVector coors) aZones[z].DoStuffEnteringZone(); OldCullZone = z; } -#endif } -#ifdef GTA_ZONECULL int32 CCullZones::FindCullZoneForCoors(CVector coors) { @@ -282,7 +273,6 @@ CCullZones::FindCullZoneForCoors(CVector coors) return i; return -1; } -#endif int32 CCullZones::FindAttributesForCoors(CVector coors, int32 *wantedLevel) @@ -360,7 +350,6 @@ CCullZones::AddCullZone(CVector const &position, CAttributeZone *attrib; CVector v; -#ifdef GTA_ZONECULL if((flag & ATTRZONE_NOTCULLZONE) == 0){ cull = &aZones[NumCullZones++]; v = position; @@ -383,7 +372,6 @@ CCullZones::AddCullZone(CVector const &position, cull->m_groupIndexCount[2] = 0; cull->m_indexStart = 0; } -#endif if(flag & ~ATTRZONE_NOTCULLZONE){ attrib = &aAttributeZones[NumAttributeZones++]; attrib->minx = minx; @@ -398,7 +386,6 @@ CCullZones::AddCullZone(CVector const &position, } -#ifdef GTA_ZONECULL void CCullZone::DoStuffLeavingZone(void) { @@ -573,5 +560,4 @@ CCullZones::DoWeHaveMoreThanXOccurencesOfSet(int32 count, uint16 *set) } } return false; -} -#endif \ No newline at end of file +} \ No newline at end of file diff --git a/src/core/config.h b/src/core/config.h index 0bbc883e..7c1fab5b 100644 --- a/src/core/config.h +++ b/src/core/config.h @@ -143,12 +143,6 @@ enum Config { //#define GTA_PS2 //#define GTA_XBOX -#ifndef MIAMI -#define GTA_TRAIN // This game has trains -#define GTA_BRIDGE // This game has the bridge -#define GTA_ZONECULL // This game culls by zones -#endif - // This enables things from the PS2 version on PC #define GTA_PS2_STUFF diff --git a/src/entities/Entity.cpp b/src/entities/Entity.cpp index 7bacd421..e2b91552 100644 --- a/src/entities/Entity.cpp +++ b/src/entities/Entity.cpp @@ -60,10 +60,8 @@ CEntity::CEntity(void) bMeleeProof = false; bOnlyDamagedByPlayer = false; bStreamingDontDelete = false; -#ifdef GTA_ZONECULL bZoneCulled = false; bZoneCulled2 = false; -#endif bRemoveFromWorld = false; bHasHitWall = false; @@ -150,17 +148,6 @@ CEntity::GetIsOnScreenComplex(void) return TheCamera.IsBoxVisible(boundBox, &TheCamera.GetCameraMatrix()); } -bool -CEntity::GetIsOnScreenAndNotCulled(void) -{ -#ifdef GTA_ZONECULL - return GetIsOnScreen() && CRenderer::IsEntityCullZoneVisible(this); -#else - return GetIsOnScreen(); -#endif -} - - void CEntity::Add(void) { @@ -967,10 +954,8 @@ CEntity::SaveEntityFlags(uint8*& buf) if (bMeleeProof) tmp |= BIT(27); if (bOnlyDamagedByPlayer) tmp |= BIT(28); if (bStreamingDontDelete) tmp |= BIT(29); -#ifdef GTA_ZONECULL if (bZoneCulled) tmp |= BIT(30); if (bZoneCulled2) tmp |= BIT(31); -#endif WriteSaveBuf(buf, tmp); @@ -1022,10 +1007,8 @@ CEntity::LoadEntityFlags(uint8*& buf) bMeleeProof = !!(tmp & BIT(27)); bOnlyDamagedByPlayer = !!(tmp & BIT(28)); bStreamingDontDelete = !!(tmp & BIT(29)); -#ifdef GTA_ZONECULL bZoneCulled = !!(tmp & BIT(30)); bZoneCulled2 = !!(tmp & BIT(31)); -#endif tmp = ReadSaveBuf(buf); diff --git a/src/entities/Entity.h b/src/entities/Entity.h index 17353f97..7b1d4c07 100644 --- a/src/entities/Entity.h +++ b/src/entities/Entity.h @@ -68,10 +68,8 @@ public: uint32 bMeleeProof : 1; uint32 bOnlyDamagedByPlayer : 1; uint32 bStreamingDontDelete : 1; // Dont let the streaming remove this -#ifdef GTA_ZONECULL uint32 bZoneCulled : 1; uint32 bZoneCulled2 : 1; // only treadables+10m -#endif // flagsD uint32 bRemoveFromWorld : 1; // remove this entity next time it should be processed @@ -148,7 +146,6 @@ public: bool GetIsTouching(CVector const ¢er, float r); bool GetIsOnScreen(void); bool GetIsOnScreenComplex(void); - bool GetIsOnScreenAndNotCulled(void); bool IsVisible(void) { return m_rwObject && bIsVisible && GetIsOnScreen(); } bool IsVisibleComplex(void) { return m_rwObject && bIsVisible && GetIsOnScreenComplex(); } int16 GetModelIndex(void) const { return m_modelIndex; } diff --git a/src/peds/CopPed.cpp b/src/peds/CopPed.cpp index 72c89df2..99e8c1ae 100644 --- a/src/peds/CopPed.cpp +++ b/src/peds/CopPed.cpp @@ -709,7 +709,7 @@ CCopPed::ProcessControl(void) return; bool dontShoot = false; - if (GetIsOnScreenAndNotCulled()) { + if (GetIsOnScreen() && CRenderer::IsEntityCullZoneVisible(this)) { if (((CTimer::GetFrameCounter() + m_randomSeed) & 0x1F) == 17) { CEntity *foundBuilding = nil; CColPoint foundCol; diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index 107a4235..0c5e8fae 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -972,9 +972,7 @@ CRenderer::ScanSectorList(CPtrList *lists) continue; // already seen ent->m_scanCode = CWorld::GetCurrentScanCode(); -#ifdef GTA_ZONECULL if(IsEntityCullZoneVisible(ent)) -#endif switch(SetupEntityVisibility(ent)){ case VIS_VISIBLE: ms_aVisibleEntityPtrs[ms_nNoOfVisibleEntities++] = ent; @@ -997,14 +995,12 @@ CRenderer::ScanSectorList(CPtrList *lists) CStreaming::RequestModel(ent->GetModelIndex(), 0); break; } -#ifdef GTA_ZONECULL else if(ent->IsBuilding() && ((CBuilding*)ent)->GetIsATreadable()){ if(!CStreaming::ms_disableStreaming) if(SetupEntityVisibility(ent) == VIS_STREAMME) if(!m_loadingPriority || CStreaming::ms_numModelsRequested < 10) CStreaming::RequestModel(ent->GetModelIndex(), 0); } -#endif } } } @@ -1026,9 +1022,7 @@ CRenderer::ScanSectorList_Priority(CPtrList *lists) continue; // already seen ent->m_scanCode = CWorld::GetCurrentScanCode(); -#ifdef GTA_ZONECULL if(IsEntityCullZoneVisible(ent)) -#endif switch(SetupEntityVisibility(ent)){ case VIS_VISIBLE: ms_aVisibleEntityPtrs[ms_nNoOfVisibleEntities++] = ent; @@ -1053,13 +1047,11 @@ CRenderer::ScanSectorList_Priority(CPtrList *lists) } break; } -#ifdef GTA_ZONECULL else if(ent->IsBuilding() && ((CBuilding*)ent)->GetIsATreadable()){ if(!CStreaming::ms_disableStreaming) if(SetupEntityVisibility(ent) == VIS_STREAMME) CStreaming::RequestModel(ent->GetModelIndex(), 0); } -#endif } } } @@ -1112,9 +1104,7 @@ CRenderer::ScanSectorList_RequestModels(CPtrList *lists) if(ent->m_scanCode == CWorld::GetCurrentScanCode()) continue; // already seen ent->m_scanCode = CWorld::GetCurrentScanCode(); -#ifdef GTA_ZONECULL if(IsEntityCullZoneVisible(ent)) -#endif if(ShouldModelBeStreamed(ent)) CStreaming::RequestModel(ent->GetModelIndex(), 0); } @@ -1160,7 +1150,6 @@ CRenderer::ShouldModelBeStreamed(CEntity *ent) return dist - FADE_DISTANCE - STREAM_DISTANCE < mi->GetLargestLodDistance(); } -#ifdef GTA_ZONECULL bool CRenderer::IsEntityCullZoneVisible(CEntity *ent) { @@ -1203,7 +1192,6 @@ CRenderer::IsVehicleCullZoneVisible(CEntity *ent) return !(v->m_pCurGroundEntity && v->m_pCurGroundEntity->bZoneCulled2); return true; } -#endif void CRenderer::RemoveVehiclePedLights(CEntity *ent, bool reset) diff --git a/src/render/Renderer.h b/src/render/Renderer.h index e28995c3..362741e3 100644 --- a/src/render/Renderer.h +++ b/src/render/Renderer.h @@ -64,10 +64,8 @@ public: static void SortBIGBuildingsForSectorList(CPtrList *list); static bool ShouldModelBeStreamed(CEntity *ent); -#ifdef GTA_ZONECULL static bool IsEntityCullZoneVisible(CEntity *ent); static bool IsVehicleCullZoneVisible(CEntity *ent); -#endif static void RemoveVehiclePedLights(CEntity *ent, bool reset); }; diff --git a/src/vehicles/Train.cpp b/src/vehicles/Train.cpp index fef712e6..7831a0c8 100644 --- a/src/vehicles/Train.cpp +++ b/src/vehicles/Train.cpp @@ -38,7 +38,6 @@ CVector CTrain::aStationCoors_S[4]; CTrain::CTrain(int32 id, uint8 CreatedBy) : CVehicle(CreatedBy) { -#ifdef GTA_TRAIN CVehicleModelInfo *mi = (CVehicleModelInfo*)CModelInfo::GetModelInfo(id); m_vehType = VEHICLE_TYPE_TRAIN; pHandling = mod_HandlingManager.GetHandlingData((eHandlingId)mi->m_handlingId); @@ -61,28 +60,22 @@ CTrain::CTrain(int32 id, uint8 CreatedBy) bUsesCollision = true; SetStatus(STATUS_TRAIN_MOVING); -#else - assert(0 && "No trains in this game"); -#endif } void CTrain::SetModelIndex(uint32 id) { -#ifdef GTA_TRAIN int i; CVehicle::SetModelIndex(id); for(i = 0; i < NUM_TRAIN_NODES; i++) m_aTrainNodes[i] = nil; CClumpModelInfo::FillFrameArray(GetClump(), m_aTrainNodes); -#endif } void CTrain::ProcessControl(void) { -#ifdef GTA_TRAIN if(gbModelViewer || m_isFarAway && (CTimer::GetFrameCounter() + m_nWagonId) & 0xF) return; @@ -285,13 +278,11 @@ CTrain::ProcessControl(void) TrainHitStuff(s->m_lists[ENTITYLIST_PEDS_OVERLAP]); } } -#endif GTA_TRAIN } void CTrain::PreRender(void) { -#ifdef GTA_TRAIN CVehicleModelInfo *mi = (CVehicleModelInfo*)CModelInfo::GetModelInfo(GetModelIndex()); if(m_bIsFirstWagon){ @@ -351,21 +342,17 @@ CTrain::PreRender(void) CCoronas::TYPE_NORMAL, CCoronas::FLARE_NONE, CCoronas::REFLECTION_ON, CCoronas::LOSCHECK_OFF, CCoronas::STREAK_ON, 0.0f); } -#endif } void CTrain::Render(void) { -#ifdef GTA_TRAIN CEntity::Render(); -#endif } void CTrain::TrainHitStuff(CPtrList &list) { -#ifdef GTA_TRAIN CPtrNode *node; CPhysical *phys; @@ -374,13 +361,11 @@ CTrain::TrainHitStuff(CPtrList &list) if(phys != this && Abs(this->GetPosition().z - phys->GetPosition().z) < 1.5f) phys->bHitByTrain = true; } -#endif } void CTrain::AddPassenger(CPed *ped) { -#ifdef GTA_TRAIN int i = ped->m_vehEnterType; if((i == TRAIN_POS_LEFT_ENTRY || i == TRAIN_POS_MID_ENTRY || i == TRAIN_POS_RIGHT_ENTRY) && pPassengers[i] == nil){ pPassengers[i] = ped; @@ -393,13 +378,11 @@ CTrain::AddPassenger(CPed *ped) return; } } -#endif } void CTrain::OpenTrainDoor(float ratio) { -#ifdef GTA_TRAIN if(m_rwObject == nil) return; @@ -424,7 +407,6 @@ CTrain::OpenTrainDoor(float ratio) doorL.UpdateRW(); doorR.UpdateRW(); -#endif } @@ -432,7 +414,6 @@ CTrain::OpenTrainDoor(float ratio) void CTrain::InitTrains(void) { -#ifdef GTA_TRAIN int i, j; CTrain *train; @@ -499,25 +480,21 @@ CTrain::InitTrains(void) for(j = 0; pTrackNodes_S[j].t < StationDist_S[i]; j++); aStationCoors_S[i] = pTrackNodes_S[j].p; } -#endif } void CTrain::Shutdown(void) { -#ifdef GTA_TRAIN delete[] pTrackNodes; delete[] pTrackNodes_S; pTrackNodes = nil; pTrackNodes_S = nil; -#endif } void CTrain::ReadAndInterpretTrackFile(char *filename, CTrainNode **nodes, int16 *numNodes, int32 numStations, float *stationDists, float *totalLength, float *totalDuration, CTrainInterpolationLine *interpLines, bool rightRail) { -#ifdef GTA_TRAIN bool readingFile = false; int bp, lp; int i, tmp; @@ -639,7 +616,6 @@ CTrain::ReadAndInterpretTrackFile(char *filename, CTrainNode **nodes, int16 *num // end interpLines[j].time = *totalDuration; -#endif } void @@ -651,7 +627,6 @@ ProcessTrainAnnouncements(void) void CTrain::UpdateTrains(void) { -#ifdef GTA_TRAIN int i, j; uint32 time; float t, deltaT; @@ -715,5 +690,4 @@ CTrain::UpdateTrains(void) // time offset for each train time += 0x40000/4; } -#endif } From 52907088f931ac73c0cf4cae23b60d936e76e560 Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Tue, 5 May 2020 20:40:27 +0300 Subject: [PATCH 3/4] Fix build status and don't add random files into the project --- README.md | 2 +- premake5.lua | 50 ++++++++++++++++++++++++++++---------------------- 2 files changed, 29 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 2affcc96..cffdbd1d 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # re3 -[![Build status](https://ci.appveyor.com/api/projects/status/hyiwgegks122h8jg?svg=true)](https://ci.appveyor.com/project/aap/re3/branch/master) +[![Build status](https://ci.appveyor.com/api/projects/status/hyiwgegks122h8jg/branch/master?svg=true)](https://ci.appveyor.com/project/aap/re3/branch/master) | Platform | Debug | Release | |------------------|-------------|-------------| diff --git a/premake5.lua b/premake5.lua index 1c313a10..2bedf552 100644 --- a/premake5.lua +++ b/premake5.lua @@ -103,6 +103,10 @@ project "librw" filter {} end +local function addSrcFiles( prefix ) + return prefix .. "/*cpp", prefix .. "/*.h", prefix .. "/*.c", prefix .. "/*.ico", prefix .. "/*.aps", prefix .. "/*.rc" +end + project "re3" kind "WindowedApp" targetname "re3" @@ -112,27 +116,29 @@ project "re3" linkoptions "/SAFESEH:NO" - files { "src/*.*" } - files { "src/animation/*.*" } - files { "src/audio/*.*" } - files { "src/control/*.*" } - files { "src/core/*.*" } - files { "src/entities/*.*" } - files { "src/math/*.*" } - files { "src/modelinfo/*.*" } - files { "src/objects/*.*" } - files { "src/peds/*.*" } - files { "src/render/*.*" } - files { "src/rw/*.*" } - files { "src/save/*.*" } - files { "src/skel/*.*" } - files { "src/skel/win/*.*" } - files { "src/skel/glfw/*.*" } - files { "src/text/*.*" } - files { "src/vehicles/*.*" } - files { "src/weapons/*.*" } - files { "src/extras/*.*" } - files { "eax/*.*" } + files { addSrcFiles("src") } + files { addSrcFiles("src/animation") } + files { addSrcFiles("src/audio") } + files { addSrcFiles("src/audio/miles") } + files { addSrcFiles("src/audio/openal") } + files { addSrcFiles("src/control") } + files { addSrcFiles("src/core") } + files { addSrcFiles("src/entities") } + files { addSrcFiles("src/math") } + files { addSrcFiles("src/modelinfo") } + files { addSrcFiles("src/objects") } + files { addSrcFiles("src/peds") } + files { addSrcFiles("src/render") } + files { addSrcFiles("src/rw") } + files { addSrcFiles("src/save") } + files { addSrcFiles("src/skel") } + files { addSrcFiles("src/skel/win") } + files { addSrcFiles("src/skel/glfw") } + files { addSrcFiles("src/text") } + files { addSrcFiles("src/vehicles") } + files { addSrcFiles("src/weapons") } + files { addSrcFiles("src/extras") } + files { addSrcFiles("eax") } includedirs { "src" } includedirs { "src/animation" } @@ -173,7 +179,7 @@ project "re3" filter "platforms:*librw*" defines { "LIBRW" } - files { "src/fakerw/*.*" } + files { addSrcFiles("src/fakerw") } includedirs { "src/fakerw" } includedirs { Librw } if(_OPTIONS["with-librw"]) then From 3adf740bd53eac264d3b4515c8de9563a868948b Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Tue, 5 May 2020 20:51:23 +0300 Subject: [PATCH 4/4] Remove audio from premake --- premake5.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/premake5.lua b/premake5.lua index 2bedf552..fbd2e011 100644 --- a/premake5.lua +++ b/premake5.lua @@ -119,8 +119,8 @@ project "re3" files { addSrcFiles("src") } files { addSrcFiles("src/animation") } files { addSrcFiles("src/audio") } - files { addSrcFiles("src/audio/miles") } - files { addSrcFiles("src/audio/openal") } + --files { addSrcFiles("src/audio/miles") } + --files { addSrcFiles("src/audio/openal") } files { addSrcFiles("src/control") } files { addSrcFiles("src/core") } files { addSrcFiles("src/entities") }