summaryrefslogtreecommitdiffstats
path: root/src/entities/Entity.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/entities/Entity.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/entities/Entity.h b/src/entities/Entity.h
index 957ee3bf..6f948d49 100644
--- a/src/entities/Entity.h
+++ b/src/entities/Entity.h
@@ -14,6 +14,7 @@ enum eEntityType
ENTITY_TYPE_PED,
ENTITY_TYPE_OBJECT,
ENTITY_TYPE_DUMMY,
+ ENTITY_TYPE_MULTIPLAYER
};
enum eEntityStatus
@@ -26,6 +27,8 @@ enum eEntityStatus
STATUS_WRECKED,
STATUS_TRAIN_MOVING,
STATUS_TRAIN_NOT_MOVING,
+ STATUS_FERRY_MOVING,
+ STATUS_FERRY_NOT_MOVING,
STATUS_HELI,
STATUS_PLANE,
STATUS_PLAYER_REMOTE,
@@ -43,6 +46,7 @@ private:
uint32 m_status : 5;
public:
// flagsA
+ // LCS flagsB 02
uint32 bUsesCollision : 1; // does entity use collision
uint32 bCollisionProcessed : 1; // has object been processed by a ProcessEntityCollision function
uint32 bIsStatic : 1; // is entity static
@@ -50,6 +54,7 @@ public:
uint32 bPedPhysics : 1;
uint32 bIsStuck : 1; // is entity stuck
uint32 bIsInSafePosition : 1; // is entity in a collision free safe position
+ // LCS flagsC
uint32 bUseCollisionRecords : 1;
// flagsB
@@ -60,6 +65,7 @@ public:
uint32 bRenderScorched : 1;
uint32 bHasBlip : 1;
uint32 bIsBIGBuilding : 1; // Set if this entity is a big building
+ // LCS flagsD
uint32 bStreamBIGBuilding : 1; // set when draw dist <= 2000
// flagsC
@@ -70,6 +76,7 @@ public:
uint32 bMeleeProof : 1;
uint32 bOnlyDamagedByPlayer : 1;
uint32 bStreamingDontDelete : 1; // Dont let the streaming remove this
+ // LCS flagsE
uint32 bRemoveFromWorld : 1; // remove this entity next time it should be processed
// flagsD
@@ -80,6 +87,7 @@ public:
uint32 bDrawLast : 1; // draw object last
uint32 bNoBrightHeadLights : 1;
uint32 bDoNotRender : 1; //-- only applies to CObjects apparently
+ // LCS flagsF
uint32 bDistanceFade : 1; // Fade entity because it is far away
// flagsE
@@ -91,6 +99,12 @@ public:
uint32 bUnderwater : 1; // this object is underwater change drawing order
uint32 bHasPreRenderEffects : 1; // Object has a prerender effects attached to it
+ // LCS flagsG
+ uint32 bIsTreeModel : 1;
+ uint32 bIsVehicle : 1; // not sure what exactly these two are for
+ uint32 bIsPed : 1;
+ uint32 bMakeVisible : 1;
+
uint16 m_scanCode;
uint16 m_randomSeed;
int16 m_modelIndex;
@@ -118,6 +132,7 @@ public:
virtual void Add(void);
virtual void Remove(void);
+ virtual bool UpdatesInCutscene(void) { return false; }
virtual void SetModelIndex(uint32 id);
virtual void SetModelIndexNoCreate(uint32 id);
virtual void CreateRwObject(void);
@@ -129,6 +144,7 @@ public:
virtual void Teleport(CVector v) {}
virtual void PreRender(void);
virtual void Render(void);
+ virtual void UpdateAnim(void);
virtual bool SetupLighting(void);
virtual void RemoveLighting(bool);
virtual void FlagToDestroyWhenNextProcessed(void) {}
@@ -138,6 +154,7 @@ public:
bool IsPed(void) { return m_type == ENTITY_TYPE_PED; }
bool IsObject(void) { return m_type == ENTITY_TYPE_OBJECT; }
bool IsDummy(void) { return m_type == ENTITY_TYPE_DUMMY; }
+ bool IsMultiplayer(void) { return m_type == ENTITY_TYPE_MULTIPLAYER; }
RpAtomic *GetAtomic(void) {
assert(RwObjectGetType(m_rwObject) == rpATOMIC);
@@ -148,11 +165,15 @@ public:
return (RpClump*)m_rwObject;
}
+#ifdef VIS_DISTANCE_ALPHA
+ void UpdateDistanceFade(void);
+#endif
void GetBoundCentre(CVUVECTOR &out);
CVector GetBoundCentre(void);
float GetBoundRadius(void);
float GetDistanceFromCentreOfMassToBaseOfModel(void);
bool GetIsTouching(CVUVECTOR const &center, float r);
+ bool GetIsTouching(CEntity *other);
bool GetIsOnScreen(void);
bool GetIsOnScreenComplex(void);
bool IsVisible(void);