FalconSessionEntity

Superclasses

VuEntity


 

VuTargetEntity

VuSessionEntity


 

FalconSessionEntity


 public:

  enum
  {
   _AIR_KILLS_=0,
   _GROUND_KILLS_,
   _NAVAL_KILLS_,
   _STATIC_KILLS_,
   _KILL_CATS_,

   _VS_AI_  = 1,
   _VS_HUMAN_ = 2,
  };

 private:
  _TCHAR   *name;
  _TCHAR   *callSign;
  VU_ID   playerSquadron;
  VU_ID   playerFlight;
  VU_ID playerEntity;
  SquadronClass *playerSquadronPtr;
  FlightClass  *playerFlightPtr;
  VuEntity  *playerEntityPtr;
  float   AceFactor;   // Player Ace Factor
  float   initAceFactor;  // AceFactor at beginning of match
  float   bubbleRatio;  // This session's multiplier for the player bubble size
  ushort   kills[_KILL_CATS_]; // Player kills - can't keep in log book
  ushort   missions;   // Player missions flown
  uchar   country;   // Country or Team player is on
  uchar   aircraftNum;  // Which aircraft in a flight we're using (0-3)
  uchar   pilotSlot;   // Which pilot slot we've been assigned to
  uchar   flyState;   // What we're doing (sitting in UI, waiting to load, flying)
  short   reqCompression;  // Requested compression rate
  ulong   latency;   // Current latency estimate for this session
  uchar   samples;   // # of samples in current latency calculation
  uchar   rating;    // Player rating (averaged)
  uchar   voiceID;   // Player's voice of choice

  uchar   assignedAircraftNum;
  uchar   assignedPilotSlot;
  FlightClass  *assignedPlayerFlightPtr;

 public:
  uchar*   unitDataSendBuffer;  // Unit data the local session is sending to this session
  short   unitDataSendSet;
  long   unitDataSendSize;
  uchar*   unitDataReceiveBuffer; // Unit data the local session is receiving from this session
  short   unitDataReceiveSet;
  uchar   unitDataReceived[FS_MAXBLK/8];
  uchar*   objDataSendBuffer;  // Objective data the local session is sending to this session
  short   objDataSendSet;
  long   objDataSendSize;
  uchar*   objDataReceiveBuffer; // Objective data the local session is receiving from this session
  short   objDataReceiveSet;
  uchar   objDataReceived[FS_MAXBLK/8];

 public:
  // constructors & destructor
  FalconSessionEntity(ulong domainMask, char *callsign);
  FalconSessionEntity(VU_BYTE **stream);
  FalconSessionEntity(FILE *file);
  virtual VU_ERRCODE InsertionCallback(void);
  virtual ~FalconSessionEntity();

  // encoders
  virtual int SaveSize();
  virtual int Save(VU_BYTE **stream);
  virtual int Save(FILE *file);
  void DoFullUpdate(void);

  // accessors
  _TCHAR* GetPlayerName (void)  { return name; }
  _TCHAR* GetPlayerCallsign (void) { return callSign; }
  VU_ID GetPlayerSquadronID (void) { return playerSquadron; }
  VU_ID GetPlayerFlightID (void)  { return playerFlight; }
  VU_ID GetPlayerEntityID (void)  { return playerEntity; }
  VuEntity* GetPlayerEntity (void) { return playerEntityPtr; }
  FlightClass* GetPlayerFlight (void) { return playerFlightPtr; }
  SquadronClass* GetPlayerSquadron (void) { return playerSquadronPtr; }
  float GetAceFactor ()    { return(AceFactor); }
  float GetInitAceFactor ()   { return(initAceFactor); }
  uchar GetTeam (void);
  uchar GetCountry (void)    { return country; }
  uchar GetAircraftNum (void)   { return aircraftNum; }
  uchar GetPilotSlot (void)   { return pilotSlot; }
  uchar GetFlyState (void)   { return flyState; }
  short GetReqCompression (void)  { return reqCompression; }
  float GetBubbleRatio (void)   { return bubbleRatio; }
  ushort GetKill(ushort CAT)   { if(CAT < _KILL_CATS_) return(kills[CAT]); return(0); }
  ushort GetMissions()    { return missions; }
  uchar GetRating()     { return rating; }
  uchar GetVoiceID()     { return voiceID; }
  FalconGameEntity* GetGame (void) { return (FalconGameEntity*) game_; }

  uchar GetAssignedAircraftNum (void)   { return assignedAircraftNum; }
  uchar GetAssignedPilotSlot (void)   { return assignedPilotSlot; }
  FlightClass* GetAssignedPlayerFlight (void) { return assignedPlayerFlightPtr; }

  // setters
  void SetPlayerName (_TCHAR* pname);
  void SetPlayerCallsign (_TCHAR* pcallsign);

  void SetPlayerSquadron (SquadronClass* ent);
  void SetPlayerSquadronID (VU_ID id);
  void SetPlayerFlight (FlightClass* ent);
  void SetPlayerFlightID (VU_ID id);
  void SetPlayerEntity (VuEntity* ent);
  void SetPlayerEntityID (VU_ID id);
  void UpdatePlayer (void);

  void SetAceFactor (float af);
  void SetInitAceFactor (float af);
  void SetCountry (uchar c);
  void SetAircraftNum (uchar an);
  void SetPilotSlot (uchar ps);
  void SetFlyState (uchar fs);
  void SetReqCompression (short rc);
  void SetVuStateAccess (uchar state) { SetVuState(state); }
  void SetBubbleRatio (float ratio) { bubbleRatio = ratio;}
  void SetKill(ushort CAT,ushort kill){ if(CAT < _KILL_CATS_) kills[CAT]=kill; }
  void SetMissions(ushort count)  { missions = count; }
  void SetRating(uchar newrat)  { rating = newrat; }
  void SetVoiceID (uchar v)   { voiceID = v; }

  void SetAssignedAircraftNum (uchar an);
  void SetAssignedPilotSlot (uchar ps);
  void SetAssignedPlayerFlight (FlightClass* ent);

  // Calculate new ace factor
  void SetAceFactorKill(float opponent);
  void SetAceFactorDeath(float opponent);
  // queries
  int InSessionBubble (FalconEntity* ent, float bubble_multiplier = 1.0F);

  // event Handlers
//  virtual VU_ERRCODE Handle(VuEvent *event);
  virtual VU_ERRCODE Handle(VuFullUpdateEvent *event);
//  virtual VU_ERRCODE Handle(VuSessionEvent *event);