TYPES AND ENUMS
enum {FalconCampaignEntity = 0x1, FalconSimEntity
= 0x2,
FalconPersistantEntity = 0x8, FalconSimObjective = 0x20};
FUNCTIONS
FalconEntity(int
type);
FalconEntity(VU_BYTE**
stream);
FalconEntity(FILE*
filePtr);
int
Save(VU_BYTE** stream);
int
Save(FILE* filePtr);
int
SaveSize(void);
virtual
~FalconEntity(void);
int IsCampaign (void)
{return (falconType & FalconCampaignEntity) ? TRUE : FALSE;};
int
IsSim (void)
{return (falconType & FalconSimEntity) ? TRUE : FALSE;};
int
IsSimObjective (void)
{return (falconType & FalconSimObjective) ? TRUE : FALSE;};
int
IsPersistant (void)
{return (falconType & FalconPersistantEntity) ? TRUE : FALSE;};
void
SetTypeFlag (int flag)
{ falconType |= flag; };
void
UnSetTypeFlag (int flag)
{ falconType &= ~flag; };
void
SetFalcFlag (int flag)
{ falconFlags |= flag; MakeFlagsDirty(); };
void
UnSetFalcFlag (int flag)
{ falconFlags &= ~flag; MakeFlagsDirty (); };
int
IsSetFalcFlag (int flag)
{ return falconFlags & flag; };
int
IsPlayer (void)
{ return IsSetFalcFlag(FEC_HASPLAYERS); };
virtual int Wake (void) = 0;
virtual int Sleep (void) = 0;
virtual short GetCampID (void)
{ ShiWarning( "Illegal use of FalconEntity" ); return 0; };
virtual
uchar GetTeam (void)
{ ShiWarning( "Illegal use of FalconEntity" ); return 0; };
virtual
uchar GetCountry (void)
{ ShiWarning( "Illegal use of FalconEntity" ); return 0; };
virtual
uchar GetDomain (void);
virtual
int GetRadarMode (void)
{ return FEC_RADAR_OFF; }
virtual
void SetRadarMode (int)
{};
virtual
void ReturnToSearch (void)
{};
virtual
void SetSearchMode (int)
{};
virtual
int OnGround (void)
{ return FALSE; };
virtual
int IsMissile
(void)
{ return FALSE; };
virtual
int IsBomb (void)
{ return FALSE; };
virtual
int IsGun (void)
{ return FALSE; };
virtual
int IsMover (void)
{ return FALSE; };
virtual
int IsVehicle
(void)
{ return FALSE; };
virtual
int IsStatic
(void)
{ return FALSE; };
virtual
int IsHelicopter
(void)
{ return FALSE; };
virtual
int IsEject (void)
{ return FALSE; };
virtual
int IsAirplane
(void)
{ return FALSE; };
virtual
int IsGroundVehicle
(void)
{ return FALSE; };
virtual
int IsShip (void)
{ return FALSE; };
virtual
int IsWeapon
(void)
{ return FALSE; };
virtual
int IsExploding
(void)
{ return FALSE; };
virtual
int IsDead (void)
{ return FALSE; };
virtual
int IsEmitting
(void)
{ return FALSE; };
virtual
float Vt (void)
{ return 0.0f; };
virtual
float Kias (void)
{ return 0.0f; };
virtual
MoveType GetMovementType (void)
{ return NoMove; };
virtual
int IsUnit
(void)
{ return FALSE; };
virtual
int IsObjective
(void)
{ return FALSE; };
virtual
int IsBattalion
(void)
{ return FALSE; };
virtual
int IsBrigade
(void)
{ return FALSE; };
virtual
int IsFlight (void)
{ return FALSE; };
virtual
int IsSquadron (void)
{ return FALSE; };
virtual
int IsPackage
(void)
{ return FALSE; };
virtual
int IsTeam (void)
{ return FALSE; };
virtual
int IsTaskForce
(void)
{ return FALSE; };
virtual
int IsSPJamming (void)
{ return FALSE; };
virtual
int IsAreaJamming
(void)
{ return FALSE; };
virtual
int HasSPJamming
(void)
{ return FALSE; };
virtual
int HasAreaJamming
(void)
{ return FALSE; };
virtual
float GetRCSFactor (void)
{ return 0.0f; };
virtual
float GetIRFactor (void)
{ return 0.0f; };
virtual
int GetRadarType (void);
virtual
uchar* GetDamageModifiers (void);
void
GetLocation (short* x, short* y);
int
GetAltitude (void)
{ return FloatToInt32(ZPos() * -1.0F); }
void
SetOwner (FalconSessionEntity* session);
void
SetOwner (VU_ID sessionId);
void
DoFullUpdate (void);
//
Dirty Functions
void
ClearDirty (void);
void
MakeDirty (Dirty_Class bits, Dirtyness score);
int
EncodeDirty (unsigned char **stream);
int
DecodeDirty (unsigned char **stream);
static
void DoSimDirtyData (void);
static
void DoCampaignDirtyData (void);
void
MakeFlagsDirty (void);
void
MakeFalconEntityDirty (Dirty_Falcon_Entity bits, Dirtyness score);
int
dirty_classes;
int
dirty_score;
int
calc_dirty_bucket (void);
uchar
falconFlags;
protected:
char
falconType;