1
0
Fork 0
mirror of https://git.rip/DMCA_FUCKER/re3.git synced 2024-11-06 01:55:58 +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
while(CWorld::GetSectorX(Source.x) > 75.0f)
while(CWorld::GetSectorX(Source.x) > NUMSECTORS_X-5.0f)
Source.x -= 1.0f;
while(CWorld::GetSectorX(Source.x) < 5.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;
while(CWorld::GetSectorY(Source.y) < 5.0f)
Source.y += 1.0f;
@ -4018,11 +4018,11 @@ CCam::Process_Debug(const CVector&, float, float, float)
}
// stay inside sectors
while(CWorld::GetSectorX(Source.x) > 75.0f)
while(CWorld::GetSectorX(Source.x) > NUMSECTORS_X-5.0f)
Source.x -= 1.0f;
while(CWorld::GetSectorX(Source.x) < 5.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;
while(CWorld::GetSectorY(Source.y) < 5.0f)
Source.y += 1.0f;
@ -4099,11 +4099,11 @@ CCam::Process_Editor(const CVector&, float, float, float)
}
// stay inside sectors
while(CWorld::GetSectorX(Source.x) > 75.0f)
while(CWorld::GetSectorX(Source.x) > NUMSECTORS_X-5.0f)
Source.x -= 1.0f;
while(CWorld::GetSectorX(Source.x) < 5.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;
while(CWorld::GetSectorY(Source.y) < 5.0f)
Source.y += 1.0f;

View file

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

View file

@ -213,3 +213,10 @@ public:
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 "ModelIndices.h"
#include "Timer.h"
#include "Streaming.h"
#include "Entity.h"
#include "Object.h"
#include "World.h"
@ -623,10 +624,15 @@ CEntity::SetupBigBuilding(void)
m_level = CTheZones::GetLevelFromPosition(&GetPosition());
if(mi->m_lodDistances[0] <= 2000.0f)
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;
else if(m_level == LEVEL_GENERIC)
printf("%s isn't in a level\n", mi->GetModelName());
// else if(m_level == LEVEL_GENERIC)
// printf("%s isn't in a level\n", mi->GetModelName());
}
float WindTabel[] = {