1
0
Fork 0
mirror of https://git.rip/DMCA_FUCKER/re3.git synced 2024-11-10 20:29:15 +00:00

Merge remote-tracking branch 'origin/lcs' into lcs

* origin/lcs:
  cam sector fix
  streaming fixes
This commit is contained in:
Sergeanur 2021-01-09 13:24:26 +02:00
commit b484638bb9
4 changed files with 33 additions and 23 deletions

View file

@ -3947,11 +3947,11 @@ CCam::Process_Debug(const CVector&, float, float, float)
} }
// stay inside sectors // stay inside sectors
while(CWorld::GetSectorX(Source.x) > 75.0f) while(CWorld::GetSectorX(Source.x) > NUMSECTORS_X-5.0f)
Source.x -= 1.0f; Source.x -= 1.0f;
while(CWorld::GetSectorX(Source.x) < 5.0f) while(CWorld::GetSectorX(Source.x) < 5.0f)
Source.x += 1.0f; Source.x += 1.0f;
while(CWorld::GetSectorY(Source.y) > 75.0f) while(CWorld::GetSectorY(Source.y) > NUMSECTORS_X-5.0f)
Source.y -= 1.0f; Source.y -= 1.0f;
while(CWorld::GetSectorY(Source.y) < 5.0f) while(CWorld::GetSectorY(Source.y) < 5.0f)
Source.y += 1.0f; Source.y += 1.0f;
@ -4018,11 +4018,11 @@ CCam::Process_Debug(const CVector&, float, float, float)
} }
// stay inside sectors // stay inside sectors
while(CWorld::GetSectorX(Source.x) > 75.0f) while(CWorld::GetSectorX(Source.x) > NUMSECTORS_X-5.0f)
Source.x -= 1.0f; Source.x -= 1.0f;
while(CWorld::GetSectorX(Source.x) < 5.0f) while(CWorld::GetSectorX(Source.x) < 5.0f)
Source.x += 1.0f; Source.x += 1.0f;
while(CWorld::GetSectorY(Source.y) > 75.0f) while(CWorld::GetSectorY(Source.y) > NUMSECTORS_X-5.0f)
Source.y -= 1.0f; Source.y -= 1.0f;
while(CWorld::GetSectorY(Source.y) < 5.0f) while(CWorld::GetSectorY(Source.y) < 5.0f)
Source.y += 1.0f; Source.y += 1.0f;
@ -4099,11 +4099,11 @@ CCam::Process_Editor(const CVector&, float, float, float)
} }
// stay inside sectors // stay inside sectors
while(CWorld::GetSectorX(Source.x) > 75.0f) while(CWorld::GetSectorX(Source.x) > NUMSECTORS_X-5.0f)
Source.x -= 1.0f; Source.x -= 1.0f;
while(CWorld::GetSectorX(Source.x) < 5.0f) while(CWorld::GetSectorX(Source.x) < 5.0f)
Source.x += 1.0f; Source.x += 1.0f;
while(CWorld::GetSectorY(Source.y) > 75.0f) while(CWorld::GetSectorY(Source.y) > NUMSECTORS_X-5.0f)
Source.y -= 1.0f; Source.y -= 1.0f;
while(CWorld::GetSectorY(Source.y) < 5.0f) while(CWorld::GetSectorY(Source.y) < 5.0f)
Source.y += 1.0f; Source.y += 1.0f;

View file

@ -1151,12 +1151,9 @@ CStreaming::RemoveModel(int32 id)
void void
CStreaming::RemoveUnusedBuildings(eLevelName level) CStreaming::RemoveUnusedBuildings(eLevelName level)
{ {
if(level != LEVEL_INDUSTRIAL) for(int i = LEVEL_INDUSTRIAL; i < NUM_LEVELS; i++)
RemoveBuildings(LEVEL_INDUSTRIAL); if(level != i)
if(level != LEVEL_COMMERCIAL) RemoveBuildings((eLevelName)i);
RemoveBuildings(LEVEL_COMMERCIAL);
if(level != LEVEL_SUBURBAN)
RemoveBuildings(LEVEL_SUBURBAN);
} }
void void
@ -1279,12 +1276,9 @@ CStreaming::RemoveUnusedBigBuildings(eLevelName level)
{ {
ISLAND_LOADING_IS(LOW) ISLAND_LOADING_IS(LOW)
{ {
if(level != LEVEL_INDUSTRIAL) for(int i = LEVEL_INDUSTRIAL; i < NUM_LEVELS; i++)
RemoveBigBuildings(LEVEL_INDUSTRIAL); if(level != i)
if(level != LEVEL_COMMERCIAL) RemoveBuildings((eLevelName)i);
RemoveBigBuildings(LEVEL_COMMERCIAL);
if(level != LEVEL_SUBURBAN)
RemoveBigBuildings(LEVEL_SUBURBAN);
} }
RemoveIslandsNotUsed(level); RemoveIslandsNotUsed(level);
} }
@ -1324,8 +1318,11 @@ CStreaming::RemoveIslandsNotUsed(eLevelName level)
} }
#ifdef NO_ISLAND_LOADING #ifdef NO_ISLAND_LOADING
if(FrontEndMenuManager.m_PrefsIslandLoading == CMenuManager::ISLAND_LOADING_HIGH) { if(FrontEndMenuManager.m_PrefsIslandLoading == CMenuManager::ISLAND_LOADING_HIGH) {
DeleteIsland(pIslandLODmainlandEntity); DeleteIsland(pIslandLODindustEntity);
DeleteIsland(pIslandLODbeachEntity); DeleteIsland(pIslandLODcomIndEntity);
DeleteIsland(pIslandLODcomSubEntity);
DeleteIsland(pIslandLODsubIndEntity);
DeleteIsland(pIslandLODsubComEntity);
} else } else
#endif #endif
switch(level){ switch(level){

View file

@ -213,3 +213,10 @@ public:
static void PrintStreamingBufferState(); static void PrintStreamingBufferState();
}; };
// LCS(TODO): put them into CStreaming::mspInst
extern int32 islandLODindust;
extern int32 islandLODcomInd;
extern int32 islandLODcomSub;
extern int32 islandLODsubInd;
extern int32 islandLODsubCom;

View file

@ -4,6 +4,7 @@
#include "RwHelper.h" #include "RwHelper.h"
#include "ModelIndices.h" #include "ModelIndices.h"
#include "Timer.h" #include "Timer.h"
#include "Streaming.h"
#include "Entity.h" #include "Entity.h"
#include "Object.h" #include "Object.h"
#include "World.h" #include "World.h"
@ -623,10 +624,15 @@ CEntity::SetupBigBuilding(void)
m_level = CTheZones::GetLevelFromPosition(&GetPosition()); m_level = CTheZones::GetLevelFromPosition(&GetPosition());
if(mi->m_lodDistances[0] <= 2000.0f) if(mi->m_lodDistances[0] <= 2000.0f)
bStreamBIGBuilding = true; bStreamBIGBuilding = true;
if(mi->m_lodDistances[0] > 2500.0f || mi->m_ignoreDrawDist) if(m_modelIndex == islandLODindust ||
m_modelIndex == islandLODcomInd ||
m_modelIndex == islandLODcomSub ||
m_modelIndex == islandLODsubInd ||
m_modelIndex == islandLODsubCom ||
mi->m_lodDistances[0] > 5000.0f || mi->m_ignoreDrawDist)
m_level = LEVEL_GENERIC; m_level = LEVEL_GENERIC;
else if(m_level == LEVEL_GENERIC) // else if(m_level == LEVEL_GENERIC)
printf("%s isn't in a level\n", mi->GetModelName()); // printf("%s isn't in a level\n", mi->GetModelName());
} }
float WindTabel[] = { float WindTabel[] = {