diff options
Diffstat (limited to 'src/entities/Entity.h')
-rw-r--r-- | src/entities/Entity.h | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/src/entities/Entity.h b/src/entities/Entity.h index eca462cd..b8f8c80c 100644 --- a/src/entities/Entity.h +++ b/src/entities/Entity.h @@ -59,20 +59,19 @@ public: uint32 bRenderScorched : 1; uint32 bHasBlip : 1; uint32 bIsBIGBuilding : 1; // Set if this entity is a big building - uint32 bRenderDamaged : 1; // use damaged LOD models for objects with applicable damage + uint32 bStreamBIGBuilding : 1; // set when draw dist <= 2000 // flagsC + uint32 bRenderDamaged : 1; // use damaged LOD models for objects with applicable damage uint32 bBulletProof : 1; uint32 bFireProof : 1; uint32 bCollisionProof : 1; uint32 bMeleeProof : 1; uint32 bOnlyDamagedByPlayer : 1; uint32 bStreamingDontDelete : 1; // Dont let the streaming remove this - uint32 bZoneCulled : 1; - uint32 bZoneCulled2 : 1; // only treadables+10m + uint32 bRemoveFromWorld : 1; // remove this entity next time it should be processed // flagsD - uint32 bRemoveFromWorld : 1; // remove this entity next time it should be processed uint32 bHasHitWall : 1; // has collided with a building (changes subsequent collisions) uint32 bImBeingRendered : 1; // don't delete me because I'm being rendered uint32 bTouchingWater : 1; // used by cBuoyancy::ProcessBuoyancy @@ -80,15 +79,22 @@ public: uint32 bDrawLast : 1; // draw object last uint32 bNoBrightHeadLights : 1; uint32 bDoNotRender : 1; + uint32 bDistanceFade : 1; // Fade entity because it is far away // flagsE - uint32 bDistanceFade : 1; // Fade entity because it is far away + uint32 m_flagE1 : 1; uint32 m_flagE2 : 1; + uint32 bOffscreen : 1; // offscreen flag. This can only be trusted when it is set to true + uint32 bIsStaticWaitingForCollision : 1; // this is used by script created entities - they are static until the collision is loaded below them + uint32 m_flagE10 : 1; + uint32 m_flagE20 : 1; + uint32 m_flagE40 : 1; uint16 m_scanCode; uint16 m_randomSeed; int16 m_modelIndex; - uint16 m_level; // int16 + int8 m_level; + int8 m_area; CReference *m_pFirstReference; public: @@ -97,7 +103,7 @@ public: eEntityStatus GetStatus() const { return (eEntityStatus)m_status; } void SetStatus(eEntityStatus status) { m_status = status; } CColModel *GetColModel(void) { return CModelInfo::GetModelInfo(m_modelIndex)->GetColModel(); } - bool IsStatic(void) { return bIsStatic; } + bool IsStatic(void) { return bIsStatic || bIsStaticWaitingForCollision; } #ifdef COMPATIBLE_SAVES void SaveEntityFlags(uint8*& buf); void LoadEntityFlags(uint8*& buf); @@ -149,6 +155,8 @@ public: bool GetIsOnScreenComplex(void); bool IsVisible(void) { return m_rwObject && bIsVisible && GetIsOnScreen(); } bool IsVisibleComplex(void) { return m_rwObject && bIsVisible && GetIsOnScreenComplex(); } +// TODO(MIAMI): + bool IsEntityOccluded(void) { return false; } int16 GetModelIndex(void) const { return m_modelIndex; } void UpdateRwFrame(void); void SetupBigBuilding(void); @@ -172,5 +180,3 @@ public: static void AddSteamsFromGround(CPtrList& list); }; - -VALIDATE_SIZE(CEntity, 0x64); |