mirror of
https://github.com/GTAmodding/re3.git
synced 2025-07-06 11:04:09 +00:00
implemented most of streamed collisions and big buildings
This commit is contained in:
parent
84c9484e55
commit
b44df26d3e
41 changed files with 1346 additions and 95 deletions
|
@ -27,6 +27,7 @@
|
|||
#include "Zones.h"
|
||||
#include "Bones.h"
|
||||
#include "Debug.h"
|
||||
#include "Renderer.h"
|
||||
|
||||
int gBuildings;
|
||||
|
||||
|
@ -51,6 +52,9 @@ CEntity::CEntity(void)
|
|||
bRenderScorched = false;
|
||||
bHasBlip = false;
|
||||
bIsBIGBuilding = false;
|
||||
#ifdef MIAMI
|
||||
bStreamBIGBuilding = false;
|
||||
#endif
|
||||
bRenderDamaged = false;
|
||||
|
||||
bBulletProof = false;
|
||||
|
@ -59,8 +63,10 @@ CEntity::CEntity(void)
|
|||
bMeleeProof = false;
|
||||
bOnlyDamagedByPlayer = false;
|
||||
bStreamingDontDelete = false;
|
||||
#ifdef GTA_ZONECULL
|
||||
bZoneCulled = false;
|
||||
bZoneCulled2 = false;
|
||||
#endif
|
||||
|
||||
bRemoveFromWorld = false;
|
||||
bHasHitWall = false;
|
||||
|
@ -147,6 +153,17 @@ 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)
|
||||
{
|
||||
|
@ -331,6 +348,11 @@ CEntity::SetupBigBuilding(void)
|
|||
bStreamingDontDelete = true;
|
||||
bUsesCollision = false;
|
||||
m_level = CTheZones::GetLevelFromPosition(GetPosition());
|
||||
#ifdef MIAMI
|
||||
if(mi->m_lodDistances[0] <= 2000.0f)
|
||||
bStreamBIGBuilding = true;
|
||||
// TODO: the stuff down there isn't right yet
|
||||
#endif
|
||||
if(m_level == LEVEL_NONE){
|
||||
if(mi->GetTxdSlot() != CTxdStore::FindTxdSlot("generic")){
|
||||
mi->SetTexDictionary("generic");
|
||||
|
@ -953,8 +975,10 @@ 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<uint32>(buf, tmp);
|
||||
|
||||
|
@ -1006,8 +1030,10 @@ 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<uint32>(buf);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue